石墨
一个Chainlit聊天应用程序,它将LangGraph与Graphiti的MCP(模型上下文协议)服务器集成在一起,以实现跨对话的持久内存。
特性
- ChainLit集成:利用ChainLit进行聊天UI和身份验证
- LangGraph集成:使用LangGraph的状态图进行对话流
- Graphiti集成:连接到Graphiti MCP服务器以获得持久对话记忆
- 多租户技术:每个用户的对话都使用唯一的组ID单独存储
先决条件
- Python 3.12+
- Graphiti MCP服务器正在运行
http://localhost:8000/sse
设置
- 复制环境模板并添加您的OpenAI API密钥:
cp .env.example .env- 编辑
.env并添加您的OpenAI API密钥和身份验证密钥:
OPENAI_API_KEY=your_openai_api_key_here
CHAINLIT_AUTH_SECRET=your_auth_secret_here使用以下命令生成安全身份验证密钥:
uv run chainlit create-secret- 确保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的工具 - 仅存储包含用户消息的对话集(出于效率考虑,不包括助理回复)
- 上下文作为系统消息注入,以提供会话连续性
