聊天应用集成服务

一个集成了LangGraph和Graphiti MCP服务器的Chainlit聊天应用,提供跨对话的持久记忆功能。

  • by charlesmcchan
  • Python
  • 云端部署
  • 3 星标
  • 更新于
在 GitHub 查看 charlesmcchan/langgraph-graphiti

使用说明

石墨

一个Chainlit聊天应用程序,它将LangGraph与Graphiti的MCP(模型上下文协议)服务器集成在一起,以实现跨对话的持久内存。

特性

  • ChainLit集成:利用ChainLit进行聊天UI和身份验证
  • LangGraph集成:使用LangGraph的状态图进行对话流
  • Graphiti集成:连接到Graphiti MCP服务器以获得持久对话记忆
  • 多租户技术:每个用户的对话都使用唯一的组ID单独存储

先决条件

  • Python 3.12+
  • Graphiti MCP服务器正在运行 http://localhost:8000/sse

设置

  1. 复制环境模板并添加您的OpenAI API密钥:

    cp .env.example .env
    
  2. 编辑 .env 并添加您的OpenAI API密钥和身份验证密钥:

    OPENAI_API_KEY=your_openai_api_key_here
    CHAINLIT_AUTH_SECRET=your_auth_secret_here
    

    使用以下命令生成安全身份验证密钥:

    uv run chainlit create-secret
    
  3. 确保Graphiti MCP服务器在具有SSE传输的端口8000上运行

跑

启动Chainlit服务器:

uv run chainlit run main.py --port 3000

注意:Graphiti MCP在端口8000上运行,这与默认端口chainlit运行的端口冲突

应用程序将在您的浏览器中打开。系统将提示您使用用户名和密码登录(任何非空值都适用于演示目的)。每个用户的对话和记忆都与其他用户隔离开来。

建筑

认证

  • 用户必须使用用户名和密码进行身份验证
  • 每个用户通过以下方式获得隔离的内存存储 user-{username} 作为组ID
  • 用户之间的记忆和对话历史完全分开

存储器系统

  • 使用带有SSE传输的Graphiti MCP服务器实现持久内存
  • 使用以下命令检索内存 search_memory_nodes 具有用户特定组ID的工具
  • 仅存储包含用户消息的对话集(出于效率考虑,不包括助理回复)
  • 上下文作为系统消息注入,以提供会话连续性

参考