使用说明

项目简介

本项目 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 服务器的传输协议,实现与客户端的实时通信。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/ImVirtue/RagChatbot_MCPServer.git
    cd RagChatbot_MCPServer
  2. 创建并激活虚拟环境 (推荐):

    python -m venv venv
    source venv/bin/activate  # 或 venv\Scripts\activate (Windows)
  3. 安装依赖:

    pip install -r requirements.txt
  4. 配置环境变量:

    • 创建 '.env' 文件在项目根目录下。
    • 添加 OpenAI API 密钥、发件人邮箱和应用密码等环境变量。例如:
      OPENAI_API_KEY=your_openai_api_key
      MODEL=gpt-4 # 或者你想要使用的模型
      [email protected]
      APP_PASSWORD=your_email_app_password # 邮箱应用专用密码,不是邮箱登录密码
      注意: '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)与服务器建立连接。

基本使用方法

  1. 启动 MCP 服务器: 在终端中,激活虚拟环境后,运行 'mcp_server.py' 文件:

    python mcp_server.py

    服务器默认监听 'http://localhost:8000/sse' 地址。

  2. 运行 LLM 客户端: 运行 'run_llm_with_mcp.py' 文件启动 Streamlit 聊天界面:

    streamlit run run_llm_with_mcp.py

    这将启动一个本地 Streamlit 应用,您可以在浏览器中访问它(通常是 'http://localhost:8501')。

  3. 与聊天机器人交互: 在 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与计算