对话AI聊天机器人

一个基于LangGraph和MCP工具的对话AI聊天机器人,集成了Web搜索、股票价格查询等功能,并提供持久化对话管理。

  • by MuhammadDastgeer
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 MuhammadDastgeer/Langgraph-MCP

使用说明

LangGraph MCP聊天机器人

使用LangGraph构建的对话式AI聊天机器人,集成了模型上下文协议(MCP)工具以增强功能。该项目具有一个由LangChain和LangGraph支持的后端,以及一个基于Streamlit的交互式聊天前端。

特性

  • 对话式AI:通过LangChain由OpenAI的GPT模型提供支持。
  • 工具集成:包括内置的网络搜索工具(DuckDuckGo)和股票价格获取工具(Alpha Vantage)。
  • MCP支持:连接到MCP服务器以获取其他工具,如算术运算和费用跟踪。
  • 持续对话:使用SQLite检查指针进行基于线程的聊天历史记录。
  • 流线型前端:用户友好的界面,用于聊天、管理对话线程和可视化工具使用情况。
  • 异步处理:处理异步操作以实现流畅的性能。

先决条件

  • Python 3.8+
  • OpenAI API密钥(在中设置 .env 文件)
  • AlphaVantage API密钥(用于演示的硬编码代码;替换为您自己的密钥)
  • MCP服务器(例如,配置的arith和expense服务器)

安装

  1. 克隆存储库:

    git clone <repository-url>
    cd Langgraph-MCP
    
  2. 安装依赖项:

    pip install -r requirements.txt
    

    (注:创建一个 requirements.txt 依赖关系如下 langgraph, langchain-openai, streamlit, langchain-mcp-adapters, python-dotenv, requests, aiosqlite.)

  3. 设置环境变量: 创建一个 .env 根目录中的文件:

    OPENAI_API_KEY=your_openai_api_key_here
    
  4. 配置MCP服务器: 更新 MultiServerMCPClient 在 langgraph_mcp_backend.py 您的MCP服务器详细信息。

用法

运行后端

导入时后端会自动初始化 langgraph_mcp_backend.py。它使用工具和检查指针设置LangGraph工作流。

运行前端

启动Streamlit应用程序:

streamlit run streamlit_frontend_mcp.py
  • 在浏览器中打开应用程序。
  • 开始新的聊天或加载现有的对话线程。
  • 键入消息并与人工智能交互,人工智能可以使用搜索或获取股票价格等工具。

交互示例

  • 用户:“人工智能的最新消息是什么?”
    • AI使用DuckDuckGo搜索工具。
  • 用户:“获取AAPL的股价。”
    • AI从Alpha Vantage获取数据。

建筑

  • 后端(langgraph_mcp_backend.py):定义LangGraph状态、节点、工具和编译图。处理异步操作和MCP工具加载。
  • 前端(streamlit_frontend_mcp.py):用于UI、消息呈现和流式响应的Streamlit应用程序。管理线程的会话状态和历史记录。
  • 工具:通过LangChain的工具系统集成,包括定制工具和MCP适配器。

配置

  • API密钥:将敏感密钥存储在 .env.
  • MCP服务器:修改不同服务器后端的客户端配置。
  • 数据库:聊天记录存储在 chatbot.db 使用SQLite。

贡献

  1. 分叉存储库。
  2. 创建要素分支。
  3. 进行更改和测试。
  4. 提交拉取请求。

许可证

该项目根据MIT许可证获得许可。看 LICENSE 了解详情。