项目简介
BADR (Bulk Academic Deep Research) 是一个基于 Model Context Protocol (MCP) 实现的后端服务,专门为生物/医学领域的学术综述撰写提供自动化支持。它通过与大型语言模型 (LLM) 客户端协作,实现了文献搜索、原文获取、内容处理与存储、以及基于 RAG (Retrieval Augmented Generation) 的综述框架填充等功能,旨在大幅提高研究人员撰写综述的效率和质量。
主要功能点
- 文献搜索与获取: 支持通过 PubMed 搜索指定关键词的文献,并尝试从 Sci-Hub 或 PMC 获取文献全文。
- 内容处理与存储: 将获取到的文献全文或摘要进行智能分块,利用嵌入模型(默认使用硅基流动的 bge-m3)生成向量嵌入,并将这些向量及其关联的元数据(如标题、DOI、来源)存储在本地的 ChromaDB 向量数据库中。
- 摘要整合与检索: 可以从数据库中提取所有已处理文献的摘要,整合成一个文本供 LLM 参考生成综述框架。
- RAG 文本检索: 根据 LLM 生成的综述框架(或其他参考文本),将其分割成多个查询片段,然后在 ChromaDB 中检索与每个片段最相关的文献内容块,并将检索结果提供给 LLM 用于填充和完善综述。
- MCP 工具化: 所有核心功能都封装为标准的 MCP 工具,供支持 MCP 协议的 LLM 客户端调用。
安装步骤
- 克隆仓库: 打开终端,使用 git 命令克隆项目仓库到你的本地计算机:
git clone https://github.com/XinYu-pumch/BADR.git - 进入目录: 进入克隆下来的 BADR 项目文件夹:
cd BADR - 安装依赖: 安装项目运行所需的 Python 库。请确保你已经安装了 Python 和 pip:
pip install -r requirements.txt - 配置服务器文件: 使用文本编辑器打开 'literature_search_mcp_server_final_decsion.py' 文件,修改以下配置项:
- 'CHROMA_DB_PATH': 设置 ChromaDB 数据库文件的存储路径。这是一个本地文件夹路径,例如 '/path/to/your/chromadb_storage'。
- 'SILICONFLOW_API_KEY': 替换为你从硅基流动平台获取的 API Key。建议将其设置为环境变量 'SILICONFLOW_API_KEY',代码会优先读取环境变量,如果未设置环境变量,则直接替换代码中的 'xxxxxxxxxxxx'。
- 'NCBI_EMAIL' 和 'NCBI_API_KEY' (可选): 填写你的 NCBI 邮箱和 API Key 可以减少访问 PubMed 时被限制的风险。
服务器配置(用于MCP客户端)
BADR MCP 服务器通过标准输入输出 (Stdio) 协议与 MCP 客户端通信。你需要在你的 MCP 客户端(如 chatmcp, langflow)中配置一个新的 MCP 服务器连接,提供启动 BADR 服务器脚本的命令和参数。
以下是配置时通常需要填写的信息及说明:
- Server Name (服务器名称): 给你的 MCP 服务器起一个名字,例如 'LiteratureSearchTool' 或 'BADR_Literature_Server'。
- Type (连接类型): 选择 'stdio',表示通过标准输入输出通信。
- Description (描述): 简要描述此服务器的功能,例如 'Academic Literature Search and RAG'。
- Is Active (是否启用): 勾选或设置为 'true' 以启用此连接。
- Command (启动命令): 这里填写用于启动 Python 脚本的可执行文件路径。通常是你的 Python 解释器的绝对路径。在终端中运行 'which python' 或 'where python' (Windows) 可以找到。例如 '/usr/local/bin/python3'。
- Args (命令参数): 这里填写传递给启动命令的参数,即 BADR 服务器主脚本的绝对路径。例如 '/path/to/your/BADR/literature_search_mcp_server_final_decsion.py'。
请根据你实际的项目安装路径替换上述 '/path/to/your/' 部分。
基本使用方法
- 确保你已完成安装和配置步骤。
- 在你的 MCP 客户端中,添加并启用 BADR MCP 服务器配置。
- 启动你的 MCP 客户端,客户端会自动尝试连接并启动配置好的 BADR 服务器。
- 使用支持 MCP 工具调用的 LLM(如 Gemini 2.5 Pro 等)。
- 通过 LLM 调用 BADR 服务器提供的 MCP 工具来执行文献研究和综述撰写流程:
- 首先调用 'search_literature' 工具,提供关键词、数据库名称、期望结果数量等参数进行文献搜索和数据准备。
- 然后调用 'get_combined_abstracts' 工具获取所有文献的摘要合集,将其提供给 LLM,让 LLM 基于摘要生成综述框架。
- 最后调用 'search_text_from_chromadb' 工具,将 LLM 生成的综述框架作为参考文本,从数据库中检索相关的内容块,并将检索结果提供给 LLM,让 LLM 结合框架和检索到的内容完成最终的综述撰写。
- 根据你的 LLM 客户端和 LLM 的能力,可能需要编写合适的系统提示词或使用 Agent 工作流来编排上述工具的调用。
信息
分类
AI与计算