对话AI客服

一个基于LangGraph和Streamlit构建的对话AI客服,通过Model Context Protocol (MCP)与ClickUp集成,支持自然语言交互、完整的对话历史和工具追踪功能。

  • by notAvailable73
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 notAvailable73/mcp-client

使用说明

MCP客户端

一个使用LangGraph和Streamlit构建的对话式AI聊天机器人,通过模型上下文协议(MCP)与ClickUp集成。此应用程序允许您通过自然语言与ClickUp工作区进行交互,具有完整的对话历史记录和工具跟踪功能。

概述

该项目演示了如何构建一个代理聊天机器人,该机器人:

  • 使用LangGraph通过工具调用编排多步骤对话
  • 通过MCP(模型上下文协议)连接到外部服务(ClickUp)
  • 为聊天交互提供干净的Streamlit UI
  • 通过基于线程的持久性维护对话历史记录
  • 使用LangSmith跟踪所有LLM和工具交互

使用的技术

核心框架

  • LangGraph -用于使用LLM构建有状态、多参与者应用程序的编排框架
  • LangChain -开发由语言模型驱动的应用程序的框架
  • 溪流 -聊天界面的Web UI框架

语言模型

  • Groq -快速LLM推理(使用Llama 4 Scout)
  • 赛博拉斯 -替代LLM提供程序(已注释掉,可以启用)

集成

  • 模型上下文协议(MCP) -将LLM连接到外部工具的标准协议
  • 点击MCP服务器 -提供与ClickUp工作区交互的工具
  • 朗史密斯 -LLM应用程序的可观察性和调试

数据和状态管理

  • SQLite (通过aiosqlite)-持久对话历史存储
  • LangGraph检查点 -会话线程的状态管理

特性

  • 多回合对话:维护多条消息的上下文
  • 基于线程的历史记录:每个对话都已保存,以后可以继续
  • 工具集成:通过MCP动态加载和使用ClickUp工具
  • 实时流媒体:逐令牌流式传输AI响应,以获得更好的用户体验
  • 工具执行可见性:显示在UI中调用工具的时间
  • LangSmith追踪:LLM调用、工具调用及其参数的完全可观察性

先决条件

在设置项目之前,请确保您已经:

安装

1.克隆存储库

git clone https://github.com/notAvailable73/mcp-client.git
cd mcp-client

2.设置Python环境

使用 uv (推荐):

# Install uv if you haven't already
pip install uv

# Create virtual environment and install dependencies
uv sync

3.配置环境变量

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


# LLM API Keys
GROQ_API_KEY=your_groq_api_key_here 

运行应用程序

启动Streamlit应用程序

uv run streamlit run frontend.py

应用程序将在默认浏览器中打开 http://localhost:8501.

你能做什么

运行后,您可以要求聊天机器人:

  • 获取您的工作空间层次结构
  • 检索特定任务
  • 列出工作区成员
  • 获取任务注释
  • 查询列表和空格

关键组件

后端(后端.py)

  • LLM设置:配置Groq/Cerebras语言模型
  • MCP客户端:连接到ClickUp MCP服务器并加载可用工具
  • LangGraph:定义与聊天和工具执行节点的对话流
  • 检查点:将对话状态持久化到SQLite
  • 异步管理:用于处理异步操作的专用事件循环

前端(前端.py)

  • 流线型UI:带有消息历史记录的聊天界面
  • 线程管理:创建新对话或恢复以前的对话
  • 流媒体:实时显示AI响应
  • 工具状态:执行工具时的视觉指示器

配置选项

切换LLM提供程序

编辑 后端.py:

# Use Cerebras instead of Groq
llm = ChatCerebras(
    model="llama-3.3-70b",
    temperature=0.1,
    max_tokens=4096
)

贡献

欢迎投稿!请随时提交拉取请求。

致谢


问题或议题? 欢迎打开问题或联系我们!