AI 会话 MCP
一种对话式 AI 系统,将 OpenAI 的 API 与 Upstash Redis 相集成以进行会话存储,利用机器对话协议 (MCP) 架构。
特征
- 会话管理:使用 Redis 持久存储对话
- 会话 TTL :可配置会话的生存时间
- 对话历史记录:跟踪和管理消息历史记录
- OpenAI 集成:与 OpenAI 聊天模型无缝集成
- 工具执行:支持通过 MCP 工具调用 OpenAI 函数
建筑学
该系统由以下主要组件组成:
- SessionManager :处理 Redis 中的对话存储
- OpenAIClient :管理对 OpenAI 的 API 请求
- ConversationController :处理用户消息并管理对话流程
- MCPToolManager :处理工具注册和执行
会话管理器
SessionManager
类提供了在 Upstash Redis 中存储、检索和管理对话会话的方法。
特征
- 创建具有唯一 ID 的会话
- 列出所有可用的会话
- 获取会话详细信息和对话历史记录
- 向现有会话添加消息
- 会话过期时间与 TTL
使用示例
from app.session_manager import SessionManager
# Initialize session manager
session_manager = SessionManager(
redis_url="your_upstash_redis_url",
redis_token="your_upstash_redis_token",
ttl_days=30 # sessions expire after 30 days
)
# Create a new session
session = session_manager.create_session("My Conversation")
session_id = session["id"]
# Add messages
session_manager.add_message(session_id, "user", "Hello, AI!")
session_manager.add_message(session_id, "assistant", "Hello! How can I help you today?")
# Get session details
session = session_manager.get_session(session_id)
print(f"Session has {len(session['messages'])} messages")
# List all sessions
sessions = session_manager.list_sessions()
for s in sessions:
print(f"- {s['name']} (created at: {s['created_at']})")
设置
- 使用您的凭据在项目根目录中创建一个
.env
文件:
UPSTASH_REDIS_URL=your_upstash_redis_url
UPSTASH_REDIS_TOKEN=your_upstash_redis_token
OPENAI_API_KEY=your_openai_api_key
OPENAI_MODEL=gpt-4o
SESSION_TTL_DAYS=30
- 安装要求:
pip install -r requirements.txt
- 运行应用程序: