https://github.com/c7w/nana
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (4.5%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: c7w
- Language: Python
- Default Branch: main
- Size: 1.48 MB
Statistics
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Nana 项目:论文研究助手

本工具是 Nana 项目的其中一个核心功能,一个旨在简化和自动化科研流程的智能助手。
它能够接收一个论文标题列表,自动在线查找论文的详细信息(如 arXiv ID 和 PDF 链接),然后利用大语言模型(LLM)来生成结构清晰、内容详尽的专业摘要。所有结果都将通过一个现代化的 FastAPI + 原生前端 Web 界面进行展示,支持PDF查看、AI摘要显示和智能聊天功能。
功能特性
- 自动论文信息获取:仅需提供标题,即可自动查找论文的详细信息。
- AI 驱动的论文摘要:利用大语言模型深入阅读 PDF,并根据可配置的模板生成结构化的专业解读。
- 现代化Web界面:基于 FastAPI + 原生HTML/CSS/JS 构建的响应式界面,无需额外依赖。
- PDF在线查看:直接在浏览器中查看论文PDF,支持缩放和导航。
- 智能聊天功能:与PDF进行智能对话,支持上下文记忆和建议问题。
- 三栏布局设计:论文选择、PDF/摘要查看(90vh×90vw)、聊天区域完美分割。
- 动态界面调整:聊天框根据对话内容自动调整高度,提供最佳用户体验。
- Markdown渲染:支持丰富的Markdown格式,包括标题、列表、代码块等。
- 持久化缓存:自动将成功处理的论文及其摘要保存在本地,避免重复工作和开销。
- 灵活配置:通过
config.yaml文件,可以轻松配置 API 密钥和为不同任务选择不同的大语言模型。 - 结构化日志:在终端输出带有颜色和级别的日志,清晰地展示代理的运行状态和每一步操作。
快速开始
请遵循以下步骤在您的本地环境中运行本项目。
环境要求
- Python 3.9 或更高版本
- 一个大语言模型(LLM)提供商的 API 密钥(例如 OpenRouter)
- 现代浏览器(支持ES6+和PDF.js)
- uvicorn(FastAPI应用服务器,已包含在requirements.txt中)
1. 安装
首先,将项目代码克隆到您的本地机器。强烈建议您使用 Python 虚拟环境。
```bash
进入项目目录
cd nana
创建并激活虚拟环境 (推荐)
python -m venv venv
source venv/bin/activate # Windows 用户请使用 venv\Scripts\activate
安装所需依赖
pip install -r requirements.txt ```
2. 配置
本项目使用 config.yaml 文件来管理 API 密钥和模型偏好。为了简化配置,我们提供了一个模板文件。
重命名模板文件: 在
config/目录下, 将config.template.yaml重命名为config.yaml。添加您的 API 密钥: 打开新的
config/config.yaml文件,将文件中的 API 密钥占位符 ("sk-or-v1-YOUR_OPENROUTER_API_KEY") 替换为您自己的密钥。您也可以在该文件中自定义不同代理任务所使用的模型。
使用说明
整个工作流程分为两个主要步骤:首先运行代理来收集和分析论文,然后启动现代化的 FastAPI Web 界面来查阅结果。
第一步:运行研究代理
代理会读取一个输入文件中的论文标题列表,处理它们,并保存结果。
创建输入列表: 在
agents/目录下创建一个名为paper_search_agent.in的文件。如果该文件不存在,代理在首次运行时会自动为您创建一个包含示例内容的文件。添加论文标题: 打开
agents/paper_search_agent.in文件,在其中添加您想要研究的论文标题,每行一个。例如:Toolformer: Language Models Can Teach Themselves to Use Tools ReAct Meets ActRe: When Language Agents Enjoy Training Data Autonomy执行代理: 在项目根目录下运行以下命令:
bash python agents/paper_search_agent.py代理会在终端中打印出详细的日志,并将所有结果保存在storage/paper_search_agent/cache.json文件中。
第二步:通过现代化 Web 界面查看结果
当代理完成数据收集后,您可以启动现代化的 FastAPI Web 界面来查看和交互。
启动 FastAPI 服务: 进入 rev1 目录并启动服务:
bash cd pages/paper_search_agent_rev1 uvicorn main:app --host 0.0.0.0 --port 20002 --reload打开交互界面: 在浏览器中访问
http://localhost:20002,您将看到一个现代化的三栏布局界面:
- **Block 1 - 论文选择区域**:
- 搜索和过滤论文
- 下拉列表选择论文
- 显示论文数量统计
- 刷新按钮
- **Block 2 - 主内容区域 (90vh × 90vw)**:
- **PDF查看器** (60%):直接在线查看论文PDF
- **AI摘要显示** (40%):结构化的论文解读
- 可拖拽调整两个面板的大小比例
- **Block 3 - 智能聊天区域**:
- 与选中的论文进行智能对话
- 支持上下文记忆的多轮对话
- 自动生成的建议问题
- 聊天框根据对话内容自动调整高度
- 丰富的Markdown格式支持
界面特性
- 响应式设计:适配不同屏幕尺寸
- 无刷新体验:选择论文时页面内容无缝更新
- 智能交互:点击建议问题快速开始对话
- 专业外观:现代化的UI设计和流畅的动画效果
- 键盘支持:回车键发送消息,Shift+回车换行
技术架构 (Rev1)
后端架构
- FastAPI:现代化的Python Web框架,提供高性能的API服务
- Pydantic:数据验证和序列化,确保API数据的类型安全
- 服务层设计:
PaperService:论文数据管理和缓存ChatService:聊天功能和LLM集成- 清晰的关注点分离和可维护性
前端架构
- 原生技术栈:HTML5 + CSS3 + 原生JavaScript,无重型框架依赖
- 模块化设计:
app.js:主应用逻辑和状态管理paper-viewer.js:PDF查看器组件chat.js:聊天界面组件resizer.js:可拖拽面板调整组件
- 响应式CSS:自适应布局,支持桌面和移动设备
第三方集成
- PDF.js:Mozilla的PDF渲染引擎,支持在线PDF查看
- Marked.js:高性能Markdown解析和渲染
- MathJax:数学公式渲染支持
数据流
- 用户选择论文 → API获取论文详情 → 更新PDF和摘要显示
- 用户发送聊天消息 → ChatService处理 → LLM生成回复 → Markdown渲染显示
- 所有交互均为异步处理,保证界面流畅性
版本说明
当前版本: Rev1 (FastAPI + 原生前端)
Rev1 是对原版本的重大升级,从 Gradio 迁移到了更加灵活和高性能的 FastAPI + 原生前端架构。主要改进包括:
- 🚀 更高性能:FastAPI 提供更快的API响应速度
- 🎨 更美观的界面:原生CSS设计,完全可定制的用户体验
- 💬 智能聊天功能:与PDF进行自然语言对话,支持上下文记忆
- 📱 更好的响应式设计:适配各种设备屏幕尺寸
- ⚡ 无刷新体验:所有操作都是异步的,页面切换更流畅
- 🔧 更好的可维护性:模块化的代码结构,便于功能扩展
如果您需要使用旧版本的Gradio界面,请运行:
bash
python pages/paper_search_agent/app.py
我们强烈推荐使用Rev1版本以获得最佳的用户体验。
Owner
- Name: Huan-ang Gao
- Login: c7w
- Kind: user
- Location: Beijing, China
- Company: Tsinghua University
- Website: https://c7w.tech
- Twitter: c7wc7w
- Repositories: 6
- Profile: https://github.com/c7w
Junior @ Computer Science and Technology, Tsinghua Univ. && Research Intern @AIR-DISCOVER
GitHub Events
Total
- Watch event: 4
- Push event: 12
- Create event: 2
Last Year
- Watch event: 4
- Push event: 12
- Create event: 2
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| c7w | c****w@f****m | 6 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- PyYAML *
- arxiv *
- colorlog *
- ddgs *
- gradio *
- pandas *
- requests *