聊天机器人客户端

一个连接到MCP服务器的聊天机器人客户端,使用OpenAI API解析用户消息并调用相关工具提供结构化响应。

  • by JPS4321
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 JPS4321/Chatbot_Mcp

使用说明

聊天机器人MCP客户端

此存储库包含一个聊天机器人客户端,该客户端连接到 MCP(模型上下文协议)服务器 超过stdio。 它使用OpenAI的API来解释用户消息,选择MCP服务器公开的工具,并提供结构化、用户友好的响应。


特性

  • 连接到中定义的远程MCP服务器 servers.yaml.

  • 动态加载工具并将用户查询路由到最相关的工具。

  • 保留 会话上下文 (chat_context.json)跨交互:

    • 存储以前的工具参数。
    • 存储最后一个列表输出以支持后续操作,例如 “第一个”.
  • 保持a 聊天记录 (chatbot_log.txt)审计。

  • 支持 顺序引用 (例如。, 第一,第二,#3).

  • 如果没有匹配的工具,则提供回退答案。


需求

  • Python 3.10+
  • OpenAI API密钥

依赖关系列在 requirements.txt,包括:

  • openai
  • python-dotenv
  • prompt_toolkit
  • pyyaml
  • mcp

设置

  1. 克隆仓库

    git clone https://github.com/<your-username>/<your-repo>.git
    cd <your-repo>
    
  2. 创建并激活虚拟环境

    python3 -m venv .venv
    source .venv/bin/activate    # Linux/Mac
    
  3. 安装依赖项

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

    • 创建一个 .env 项目根目录中的文件:

      OPENAI_API_KEY=your_api_key_here
      
    • 您可以从获取API密钥 开放人工智能.

  5. 配置服务器

    • 编辑 servers.yaml 并定义您的MCP服务器,例如:

      servers:
        remote_echo:
          command: "python"
          args: ["path/to/your/server.py"]
          env: {}
      

用法

运行聊天机器人:

python host.py

您应该看到类似于以下内容的输出:

Connected to MCP server: remote_echo
🛠️ Available tools: tool1, tool2, tool3
Commands: tools | context | exit

然后,您可以进行交互:

> what is the top game

机器人将:

  1. 解析您的消息。
  2. 决定调用哪个工具。
  3. 打印分步跟踪。
  4. 返回最终的用户友好答案。

上下文和日志

  • 上下文文件: chat_context.json 存储工具历史记录、最后一个参数和最后一个实体列表。

  • 日志文件: chatbot_log.txt 包含所有交互的原始日志。

要重置上下文,只需删除 chat_context.json 或者重新启动客户端(它会在启动时覆盖文件)。


退出

在任何提示下,键入:

exit

结束会议。