{"id":23974302,"url":"https://github.com/sanbuphy/smartpaper","last_synced_at":"2025-04-23T17:45:53.177Z","repository":{"id":270950815,"uuid":"911921563","full_name":"sanbuphy/SmartPaper","owner":"sanbuphy","description":"A mini assistant to help you read paper quickly","archived":false,"fork":false,"pushed_at":"2025-04-20T09:48:14.000Z","size":5079,"stargazers_count":39,"open_issues_count":4,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-20T10:42:45.959Z","etag":null,"topics":["academic","assistant","chatbot","llm","paper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sanbuphy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-04T07:38:56.000Z","updated_at":"2025-04-20T09:48:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"8fa950de-7692-4ff4-9617-9b90edfc8d19","html_url":"https://github.com/sanbuphy/SmartPaper","commit_stats":null,"previous_names":["sanbuphy/smartpaper"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanbuphy%2FSmartPaper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanbuphy%2FSmartPaper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanbuphy%2FSmartPaper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanbuphy%2FSmartPaper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sanbuphy","download_url":"https://codeload.github.com/sanbuphy/SmartPaper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250484478,"owners_count":21438242,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["academic","assistant","chatbot","llm","paper"],"created_at":"2025-01-07T05:35:04.968Z","updated_at":"2025-04-23T17:45:53.171Z","avatar_url":"https://github.com/sanbuphy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.png\" alt=\"SmartPaper Logo\" width=\"200\"/\u003e\n  \u003cp\u003e\u003cb\u003e智能论文阅读与分析助手\u003c/b\u003e\u003c/p\u003e\n\n  \u003c!-- 项目徽章 --\u003e\n  \u003ca href=\"https://github.com/sanbuphy/SmartPaper/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/sanbuphy/SmartPaper?style=flat-square\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sanbuphy/SmartPaper/network/members\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/sanbuphy/SmartPaper?style=flat-square\" alt=\"Forks\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sanbuphy/SmartPaper/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/sanbuphy/SmartPaper?style=flat-square\" alt=\"Issues\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sanbuphy/SmartPaper/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/sanbuphy/SmartPaper?style=flat-square\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sanbuphy/SmartPaper/pulls\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-pr/sanbuphy/SmartPaper?style=flat-square\" alt=\"Pull Requests\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sanbuphy/SmartPaper/commits\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/sanbuphy/SmartPaper?style=flat-square\" alt=\"Last Commit\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e📑 快速分析论文 | 🧠 多模型支持 | 📊 结构化输出 | 🔌 易于扩展\u003c/b\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#-功能特点\"\u003e功能特点\u003c/a\u003e •\n  \u003ca href=\"#-快速开始\"\u003e快速开始\u003c/a\u003e •\n  \u003ca href=\"#-高级配置\"\u003e高级配置\u003c/a\u003e •\n  \u003ca href=\"#-示例展示\"\u003e示例展示\u003c/a\u003e •\n  \u003ca href=\"#-参与贡献\"\u003e参与贡献\u003c/a\u003e •\n  \u003ca href=\"#-许可证\"\u003e许可证\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 📖 项目简介\n\n**SmartPaper** 是一个领先的智能论文阅读和分析工具，通过集成多种大语言模型 (LLM) 接口，自动分析学术论文内容并生成高质量的结构化报告。无论您是研究人员、学生还是对最新研究感兴趣的专业人士，SmartPaper 都能帮助您更高效地理解和提炼复杂的学术内容。\n\n\u003e **注意**：项目当前处于高速迭代阶段，API 可能会发生变动。架构稳定后将尽量避免核心代码变更。\n\n## ✨ 功能特点\n\n### 📱 多模型支持\n- **国内外主流大模型**：\n  - 文心一言大模型\n  - OpenAI (GPT系列)\n  - Deepseek\n  - SiliconFlow\n  - Kimi (Moonshot)\n  - 豆包 (Doubao)\n  - 智谱AI\n\n### 📄 灵活输入\n- **多种输入方式**：\n  - 单个 PDF 文件分析\n  - PDF 文件夹批量处理\n  - 论文 URL（支持 arXiv 格式自动转换和验证）\n\n### 🧠 智能分析\n- **多种分析模式**：\n  - **单提示词模式**：使用精心设计的提示词模板高效分析\n  - **Agent 模式**：智能对话式深度分析（开发中）\n\n### 🖥️ 用户友好\n- **多种交互方式**：\n  - 命令行工具（标准模式和流式输出模式）\n  - 基于 Streamlit 的直观图形界面\n\n### 📊 结构化输出\n- **多样化输出格式**：\n  - Markdown 格式报告\n  - CSV 格式 (开发中)\n  - 结构化文件夹输出 (开发中)\n\n### 🔌 高度可定制\n- 自定义提示词模板（支持文本和图像分析）\n- 灵活的请求策略与限制保护\n- 可扩展的文档转换器系统（[查看注册指南](docs/register_document_converter.md)）\n\n## 🚀 快速开始\n\n### 1. 安装\n\n#### 方法一：开发模式安装（推荐）\n\n```bash\n# 克隆仓库\ngit clone https://github.com/sanbuphy/SmartPaper.git\ncd SmartPaper\n\n# 开发模式安装\npip install -e .\n```\n\n#### 方法二：从 requirements.txt 安装\n\n```bash\ngit clone https://github.com/sanbuphy/SmartPaper.git\ncd SmartPaper\npip install -r requirements.txt\n```\n\n#### Python 3.10 以下 markitdown 兼容性解决方案\n\n```bash\n# 卸载之前安装的 markitdown\npip uninstall markitdown\ngit clone https://github.com/jingsongliujing/markitdown.git\ncd markitdown\npip install -e packages/markitdown\n```\n\n### 2. 配置\n\n创建并编辑配置文件：\n\n```bash\ncp config/config.yaml.example config/config.yaml\n```\n\n在 `config.yaml` 中配置 API 密钥和其他设置：\n\n```yaml\nopenai_deepseek:\n  api_key: \"your-api-key\"\n  base_url: \"https://api.deepseek.com/v1\"\n  model: \"deepseek-chat\"\n  temperature: 0.7\n  max_tokens: 8192\n```\n\n### 3. 使用\n\n#### 命令行分析论文\n\n```bash\n# 使用默认提示词模板分析指定论文\npython cli_get_prompt_mode_paper.py https://arxiv.org/pdf/2312.12456.pdf\n\n# 指定提示词模板\npython cli_get_prompt_mode_paper.py https://arxiv.org/pdf/2312.12456.pdf -p coolpapaers\n\n# 流式输出模式\npython cli_get_prompt_mode_paper_stream.py https://arxiv.org/pdf/2312.12456.pdf\n```\n\n#### 启动图形界面\n\n```bash\nstreamlit run streamlit.app.py\n```\n\n## 📚 详细文档\n\n### 命令行工具\n\n项目提供两种命令行交互方式：\n\n1. **标准模式** (`cli_get_prompt_mode_paper.py`)\n   - 一次性分析并输出结果\n   - 适合快速分析场景\n\n   ```bash\n   python cli_get_prompt_mode_paper.py [论文URL] --prompt [模板名称]\n   ```\n\n2. **流式模式** (`cli_get_prompt_mode_paper_stream.py`)\n   - 实时显示分析进度和结果\n   - 适合长文档分析\n\n   ```bash\n   python cli_get_prompt_mode_paper_stream.py [论文URL] --prompt [模板名称]\n   ```\n\n### 图形界面使用流程\n\n1. 启动 Streamlit 应用\n2. 在侧边栏选择 LLM 提供商和分析模式\n3. 输入论文 URL 或上传 PDF 文件\n4. 选择提示词模板\n5. 点击\"开始分析\"按钮\n6. 实时查看分析进度和结果\n7. 下载分析报告或进行新的分析\n\n### 提示词模板\n\n| 模板名称 | 描述 |\n|---------|------|\n| `yuanbao` | 类似混元元宝的总结风格，包含研究背景、方法、实验设计和结果分析 |\n| `coolpapaers` | 类似 papers.cool 的分析风格，包含问题定义、相关研究、解决方案、实验和未来方向 |\n| `methodology` | 专注于研究方法论分析 |\n| `results` | 专注于实验结果分析 |\n| `contribution` | 专注于主要贡献分析 |\n| `full_analysis` | 全面深入的分析 |\n| `description_image` | VLM模板：图像内容描述 |\n| `ocr_image` | VLM模板：OCR图像到Markdown的转换 |\n\n## 🔧 高级配置\n\n### 配置文件详解\n\n查看完整配置说明：[配置文件使用说明](docs/config_yaml_guide.md)\n\n主要配置项包括：\n- LLM 提供商设置\n- API 请求参数\n- 请求限制策略\n- 输出格式选项\n- 模板定制选项\n\n### 自定义文档转换器\n\nSmartPaper 支持自定义文档转换器，方便处理各种特定格式的文档。\n详情请参阅：[文档转换器注册指南](docs/register_document_converter.md)\n\n## 📊 示例展示\n\n### 分析报告示例\n\n```markdown\n# 论文分析报告\n\n## 元数据\n- 标题: Transformer-Based Visual Segmentation: A Survey\n- 作者: Zhang et al.\n- URL: https://arxiv.org/pdf/2304.09854.pdf\n- 分析时间: 2024-05-15T14:30:00\n\n## 研究背景\n本文是一篇关于基于Transformer的视觉分割技术的综述论文。视觉分割是计算机视觉中的基本任务，包括语义分割、实例分割和全景分割等。随着Transformer在自然语言处理领域取得突破性进展，研究人员开始将其应用于视觉分割任务，并取得了显著成果。\n\n## 核心方法\n论文系统地回顾了基于Transformer的视觉分割方法，将其分为四类：\n1. **纯Transformer架构**：完全基于自注意力机制的方法\n2. **CNN-Transformer混合架构**：结合CNN和Transformer优势的方法\n3. **轻量级Transformer**：针对资源受限场景的高效实现\n4. **特定任务的创新**：针对特定分割任务的专门设计\n\n## 实验结果\n论文对比了各类方法在主流基准测试上的性能，包括Cityscapes、ADE20K等数据集。结果表明：\n- 纯Transformer模型在高分辨率图像上表现优异\n- 混合架构在平衡精度和效率方面表现良好\n- 轻量级设计在移动设备上取得了实用性能\n\n## 未来方向\n1. 更高效的注意力机制设计\n2. 自监督学习与Transformer分割的结合\n3. 针对特定领域的专用模型优化\n4. 模型可解释性研究\n```\n\n### 图形界面预览\n\n![SmartPaper GUI](docs/assets/smartpaper_gui_preview.png)\n\n## 🧪 测试\n\nSmartPaper 提供完整的测试套件，确保功能正常工作：\n\n```bash\n# 运行所有测试\npython run_tests.py\n\n# 运行特定类别的测试\npython run_tests.py --category core     # 核心功能测试\npython run_tests.py --category tools    # 工具类测试\npython run_tests.py --category integration   # 集成测试\n\n# 运行特定的测试文件\npython run_tests.py --file test_paper_url.py\n\n# 显示详细测试信息\npython run_tests.py --verbose\n```\n\n更多测试相关信息，请参阅 [tests/README.md](tests/README.md)。\n\n## 📅 开发路线图\n\n- [ ] Agent 模式增强\n- [ ] CSV 格式结构化输出\n- [ ] 结构化文件夹输出\n- [ ] 支持更多论文来源和格式\n- [ ] 批量处理优化\n- [ ] 进度可视化改进\n- [ ] 可视化提示词模板编辑器\n- [ ] 跨平台桌面应用支持\n- [ ] 国际化支持\n\n## 🤝 参与贡献\n\n我们非常欢迎和感谢各种形式的贡献！\n\n### 贡献流程\n\n1. Fork 本仓库\n2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`)\n3. 提交您的更改 (`git commit -m 'Add some amazing feature'`)\n4. 推送到分支 (`git push origin feature/amazing-feature`)\n5. 打开一个 Pull Request\n\n### 代码规范\n\n本项目使用 pre-commit 进行代码质量控制：\n\n```bash\n# 安装 pre-commit\npip install pre-commit\npre-commit install\n\n# 首次检查所有文件\npre-commit run --all-files\n```\n\n每次提交代码时，pre-commit 将自动检查修改的文件，确保符合项目代码规范。\n\n### 提交 Issue\n\n- 使用 Issue 模板报告 bug\n- 提出新功能建议\n- 讨论项目的整体方向\n\n## 🌟 贡献者\n\n感谢以下贡献者为项目做出的宝贵贡献：\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/sanbuphy/SmartPaper\"\u003e\n    \u003cimg src=\"https://contrib.rocks/image?repo=sanbuphy/SmartPaper\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n- [散步](https://github.com/sanbuphy) (Datawhale成员)\n- [筱可](https://github.com/li-xiu-qi) (datawhale应用发烧友)\n- [jingsongliujing](https://github.com/jingsongliujing)\n\n## 📜 许可证\n\n本项目采用 [Apache 许可证 2.0](LICENSE) 进行许可。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanbuphy%2Fsmartpaper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanbuphy%2Fsmartpaper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanbuphy%2Fsmartpaper/lists"}