RatakondaMokshagna/Structura-AI
GitHub: RatakondaMokshagna/Structura-AI
这是一个基于大语言模型的学术论文评估工具,能从 PDF 中提取结构化元数据并自动生成多维质量评分和风险分析。
Stars: 0 | Forks: 0
# StructuraAI — 研究评估引擎
**StructuraAI** 是一个基于 Streamlit 构建的 AI 驱动研究论文分析工具。它能够接收任何学术 PDF,利用大语言模型提取结构化信息,并在几秒钟内返回涵盖方法论、结果、风险因素和潜在影响力的综合评估。
## 团队
| 姓名 | 角色 |
|------|------|
| Kundan Ratakonda | 开发者 |
| Mokshagna Ratakonda | 开发者 |
## 在线演示
在此访问在线应用程序:[https://structura-ai.streamlit.app](https://structura-ai.streamlit.app)
无需安装或登录。只需在任何浏览器中打开链接并上传研究论文 PDF 即可开始使用。
## 如何使用该工具
请按照以下步骤使用 StructuraAI 分析研究论文:
**步骤 1 — 打开应用程序**
在浏览器中访问 [https://structura-ai.streamlit.app](https://structura-ai.streamlit.app)。
**步骤 2 — 上传您的论文**
点击 "Browse files" 按钮或将 PDF 文件拖放到上传区域。文件必须为 PDF 格式且小于 200 MB。为了获得最佳效果,请使用结构清晰、包含摘要、方法论、结果和结论等明确章节的学术论文。
**步骤 3 — 等待处理**
上传后,工具会自动提取全文,将其发送给 AI 模型,并计算所有分数和分析。根据论文长度的不同,这通常需要 1 到 3 秒。
**步骤 4 — 查看顶级评分**
仪表板顶部的四个指标卡为您提供了论文质量的即时摘要:置信度、复杂度、成熟度和潜在影响力。这些指标将在下文的“功能说明”部分详细解释。
**步骤 5 — 浏览提取的字段**
向下滚动以查看 AI 从您的论文中提取的九个结构化字段:标题、数据集、评估指标、问题陈述、研究空白、方法论、关键结果、局限性和贡献。模型无法找到的任何字段将显示 "Not Clearly Mentioned"。
**步骤 6 — 分析方法论构成图表**
条形图显示了论文中检测到的不同 ML 模型、评估指标和新颖性信号的数量。较高的条形表示研究在技术上更为严谨。
**步骤 7 — 检查风险与弱点分析**
本节列出了论文中检测到的具体结构性弱点,例如仅使用一个模型、缺少定量结果或未讨论局限性。每个标记都是一个可能影响论文可信度的具体缺口。
**步骤 8 — 阅读执行研究简报**
该简报是用通俗语言总结论文的内容、作用、发现以及贡献。它有助于向非技术受众快速传达论文的价值。
**步骤 9 — 查看诊断信息和原始 JSON**
诊断部分显示了所使用的模型、处理的总 Token 数和处理时间。展开 "Raw JSON Output" 部分可以查看 LLM 返回的原始结构化数据,这些数据可用于下游处理或日志记录。
## 功能说明
### 置信度评分
置信度评分是一个百分比,反映了 AI 从论文中提取信息的完整程度。它的计算方法是将成功填充的字段数除以总字段数(九个)。100% 的分数意味着每个字段——标题、数据集、方法论、结果等——都清晰存在并被提取。较低的分数意味着论文结构不佳、缺少关键部分或文本不可被机器读取(例如 PDF 中的扫描图像)。
置信度评分低于 60% 表明论文可能缺乏标准的学术结构,或者 PDF 质量较差。
### 复杂度评分
复杂度评分衡量研究方法论的技术深度和严谨性。它是由四个信号计算得出的综合评分:
- **模型数量** —— 方法论中引用了多少个不同的 ML 模型(例如 Random Forest、LSTM、XGBoost)。每个额外的模型都会加分,表明这是一项更彻底的比较研究。
- **指标数量** —— 使用了多少个评估指标(例如 RMSE、F1、Accuracy、R2)。使用多个指标表明作者从不同角度评估了他们的结果。
- **数据集规模** —— 所使用的数据集的大小。超过 100,000 条记录的数据集得分高于小型或未知大小的数据集。
- **新颖性信号** —— 在贡献部分是否存在 "novel"、"proposed"、"hybrid" 或 "introduces" 等词汇,表明论文提出了新东西而不是复制现有工作。
复杂度评分高于 70% 表示这是一篇技术上很强的论文。低于 30% 则表明要么是一项基础研究,要么是缺乏方法论透明度的研究。
### 成熟度评分
成熟度评分满分为 5 分,衡量研究的出版准备度或实际可用性。以下每项各得一分:
- 清晰识别的数据集
- 明确的评估指标
- 定量结果(即报告的实际数字)
- 局限性的讨论
- 陈述的研究贡献
5/5 的分数意味着论文完整且结构良好。2/5 或更低的分数表明存在重大缺口,这会在同行评审期间引起质疑。
### 潜在影响力
潜在影响力将复杂度评分和成熟度评分结合为一个单一的定性标签:
- **高潜在影响力** —— 论文在综合评分上超过 120 分,意味着它在技术上既复杂又在结构上完整。它可能会对其领域做出有意义的贡献。
- **中等潜在影响力** —— 论文得分在 70 到 120 之间。它基础扎实,但可能在严谨性或完整性方面存在一两个缺口。
- **有限潜在影响力** —— 论文得分低于 70。它可能是一项初步研究、课程作业提交,或缺乏可发表研究所预期的深度。
### 研究类型分类
该工具根据在问题陈述和方法论中发现的关键词,自动将论文分为四个类别之一:
- **系统综述** —— 论文调查并综合现有文献。
- **预测研究** —— 论文构建或评估一个预测结果的模型。
- **分类研究** —— 论文侧重于将数据分类为类别或标签。
- **应用研究** —— 论文将现有技术应用于新的领域或问题。
### 学习类型分类
此字段识别研究中使用的计算范式:
- **机器学习** —— 在方法论中检测到一个或多个标准 ML 算法(CNN、SVM、Random Forest 等)。
- **分析 / 综述** —— 未检测到标准 ML 模型;论文可能是理论性的、统计性的或文献综述。
### 风险与弱点分析
本节标记了论文中可能损害其可信度或可复现性的具体结构问题。每个标记对应一个具体的缺口:
- **仅使用一个模型** —— 将单个模型与基线进行比较被认为是薄弱的验证。更强的研究会测试多个模型。
- **仅使用一个评估指标** —— 依赖单一指标可能会产生误导。例如,对于不平衡数据集,仅靠准确率是不够的。
- **未讨论局限性** —— 不承认自身缺点的论文被认为在评审者看来可信度较低。
- **无定量结果** —— 如果关键结果部分不包含数字,则主张无法验证。
### 方法论构成图表
此条形图提供了用于计算复杂度评分的三个核心信号——模型、指标和新颖性——的视觉分解。它使人可以一目了然地看出论文在哪些方面具有技术优势,在哪些方面存在不足。
### 执行研究简报
该简报是从四个最重要的提取字段自动生成的论文通俗语言摘要:问题陈述、方法论、关键结果和贡献。它旨在为未阅读论文的读者快速、准确地描绘其内容及重要性。
### 原始 JSON 输出
可展开的原始 JSON 输出面板显示了 LLM 返回的确切结构化数据。这对于希望记录结果、运行批量分析或将提取输出集成到另一个工具或流水线中的开发者非常有用。
### 诊断信息
诊断部分显示三个操作细节:用于提取的 LLM 名称、处理的大致 Token 数(论文长度除以 4)以及总处理时间(以秒为单位)。这提供了分析如何执行的透明度。
## 项目结构
```
structuraai/
├── app.py # Main Streamlit application
├── app/
│ ├── config.py # Settings and environment variables
│ ├── parser.py # PDF text extraction (PyMuPDF)
│ ├── extractor.py # LLM-based structured extraction (Groq)
│ ├── evaluator.py # Confidence score computation
│ ├── intelligence.py # Sophistication, classification, risk, impact, brief
│ ├── comparator.py # Multi-paper comparison utility
│ ├── rate_limiter.py # Session-based request limiting
│ └── schemas.py # Pydantic schema for paper structure
```
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| Frontend | Streamlit |
| LLM Backend | Groq API (llama-3.1-8b-instant) |
| PDF 解析 | PyMuPDF (fitz) |
| 数据验证 | Pydantic |
| 可视化 | Matplotlib |
| 配置管理 | python-dotenv |
## 安装
### 前置条件
- Python 3.9 或更高版本
- 有效的 Groq API 密钥
### 设置
```
# Clone repository
git clone https://github.com/your-username/structuraai.git
cd structuraai
# Install dependencies
pip install -r requirements.txt
# Set environment variables
echo "GROQ_API_KEY=your_groq_api_key_here" > .env
# Run the application
streamlit run app.py
```
## 环境变量
| 变量 | 描述 | 必需 |
|----------|-------------|----------|
| `GROQ_API_KEY` | 用于 LLM 推理的 Groq API 密钥 | 是 |
## 工作原理
1. 用户上传 PDF 格式的研究论文。
2. PyMuPDF 提取所有页面的全文。
3. 前 15,000 个字符连同结构化提取提示一起发送给 Groq LLM。
4. 模型返回包含九个标准化字段的 JSON 对象。
5. 应用程序根据提取的数据计算分数、分类、风险和执行简报。
6. 所有结果显示在简洁的深色主题 Streamlit 仪表板中。
## 限制
- 应用程序仅处理论文的前 15,000 个字符,以保持在 Token 限制内。
- 提取质量取决于源 PDF 的质量和格式。
- 基于会话的速率限制默认设置为每个会话 5 个请求。
- 复杂度评分是基于启发式的,不能替代专家同行评审。
## 许可证
本项目旨在用于学术和研究目的。保留所有作者的所有权利。
标签:AI驱动, DLL 劫持, Kubernetes, NLP, PDF处理, Python, Streamlit, Sysdig, 仪表盘, 元数据提取, 大语言模型, 学术分析, 学术道德, 影响力预测, 数据提取, 文本分析, 文献综述, 无后门, 研究方法论, 研究评估, 科技情报, 科研工具, 结构化数据, 自动化分析, 论文评分, 访问控制, 跨站脚本, 进程保护, 逆向工具