使用说明
项目简介
本项目 RagChatbot MCP服务器 是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在为 RAG (Retrieval-Augmented Generation) 聊天机器人提供上下文信息和功能支持。它通过 MCP 协议向 LLM 客户端暴露工具,例如从 PDF 文档中检索信息并回答问题、发送邮件等。客户端可以通过标准的 MCP 协议与此服务器交互,利用服务器提供的工具增强 LLM 的能力。
主要功能点
- PDF文档问答: 用户可以上传 PDF 文档(预加载了工作场所规则 PDF),然后通过自然语言提问,服务器会从 PDF 中检索相关信息并生成答案。
- 邮件发送: 提供发送电子邮件的功能,允许 LLM 客户端调用此工具发送邮件。
- 工具集成: 通过 MCP 协议将 PDF 问答和邮件发送等功能注册为工具,方便 LLM 客户端发现和调用。
- SSE传输协议: 使用 Server-Sent Events (SSE) 作为 MCP 服务器的传输协议,实现与客户端的实时通信。
安装步骤
-
克隆仓库:
git clone https://github.com/ImVirtue/RagChatbot_MCPServer.git cd RagChatbot_MCPServer -
创建并激活虚拟环境 (推荐):
python -m venv venv source venv/bin/activate # 或 venv\Scripts\activate (Windows) -
安装依赖:
pip install -r requirements.txt -
配置环境变量:
- 创建 '.env' 文件在项目根目录下。
- 添加 OpenAI API 密钥、发件人邮箱和应用密码等环境变量。例如:
注意: 'APP_PASSWORD' 需要在你的邮箱设置中开启 "应用专用密码" 并生成。OPENAI_API_KEY=your_openai_api_key MODEL=gpt-4 # 或者你想要使用的模型 [email protected] APP_PASSWORD=your_email_app_password # 邮箱应用专用密码,不是邮箱登录密码
服务器配置
MCP 客户端需要配置以下信息以连接到 RagChatbot MCP 服务器。这是一个 JSON 格式的配置示例,您需要将其提供给 MCP 客户端程序:
[ { "server_name": "MCP_SERVER", "command": "python", "args": ["mcp_server.py"], "description": "RagChatbot MCP 服务器,提供PDF问答和邮件发送工具" } ]
配置参数说明:
- 'server_name': 服务器的名称,客户端用此名称来标识和引用服务器。这里设置为 "MCP_SERVER"。
- 'command': 启动 MCP 服务器的命令。 这里使用 'python' 命令。
- 'args': 启动命令的参数,以列表形式提供。 这里指定运行 'mcp_server.py' 文件。
- 'description': 服务器的描述信息,方便客户端用户了解服务器的功能。
MCP 客户端程序需要读取这个 JSON 配置文件,并根据配置信息启动和连接 MCP 服务器。 客户端通常会解析 'command' 和 'args' 字段,在本地或远程执行命令来启动 MCP 服务器进程,并通过指定的传输协议(本例中为 SSE,默认端口 8000)与服务器建立连接。
基本使用方法
-
启动 MCP 服务器: 在终端中,激活虚拟环境后,运行 'mcp_server.py' 文件:
python mcp_server.py服务器默认监听 'http://localhost:8000/sse' 地址。
-
运行 LLM 客户端: 运行 'run_llm_with_mcp.py' 文件启动 Streamlit 聊天界面:
streamlit run run_llm_with_mcp.py这将启动一个本地 Streamlit 应用,您可以在浏览器中访问它(通常是 'http://localhost:8501')。
-
与聊天机器人交互: 在 Streamlit 界面中,您可以输入自然语言问题。聊天机器人会尝试理解您的问题,并可能调用 MCP 服务器提供的工具来获取信息或执行操作。例如:
- 询问关于工作场所规则的问题,例如 "What is the policy on vacation?"
- 指示发送邮件,例如 "Send an email to [email protected] with subject 'Meeting Reminder' and body 'Don't forget our meeting tomorrow.'"
注意: 'run_llm_with_mcp.py' 文件是一个使用 MCP 客户端的示例,它连接到本地运行的 MCP 服务器,并使用 OpenAI 模型进行对话和工具调用。 您需要确保 OpenAI API 密钥已正确配置,并且 MCP 服务器已成功启动并运行。
信息
分类
AI与计算