Skip to content

chat_router.py

作用

轻量级 FastAPI router,提供 /memory/chat 端点,兼容 AIChat 客户端的对话协议。

router.py(OpenAI 兼容的 /v1/chat/completions 代理)不同,chat_router.py 是简化版本:

  • 单一端点POST /memory/chat
  • 简化请求/响应模型:直接传 message,返回 content
  • 内置对话存储:集成 conversation_store.py,无需 mem0
  • 可选图谱写入:通过 --enable-graph 启用实时 claim 提取和 Neo4j 写入

端点

端点方法说明
/memory/chatPOST对话端点(兼容 AIChat 客户端)
/memory/sessionsGET列出可用的对话日期
/memory/healthGET健康检查

请求/响应格式

请求

json
{
  "session_id": "sess_xxx",
  "message": "你好",
  "model": "gpt-4o-mini"
}

响应

json
{
  "session_id": "sess_xxx",
  "content": "你好呀!",
  "model": "gpt-4o-mini",
  "created": 1709553600
}

系统 Prompt 构建

prompts/ 目录动态拼接:

prompts/
├─ emotion/
│  ├─ base_persona.txt      (基础人设)
│  └─ emotion_system.txt    (情绪系统)
├─ tools/
│  ├─ tool_definitions.txt  (工具定义 + 文件路径速查)
│  └─ FILE_STRUCTURE.md     (文件结构指南)
└─ diary/
   └─ recent_summary.txt    (日记摘要,可选)

工具调用(Function Calling)

内置 4 个工具,LLM 可通过 tool_call 格式调用:

工具说明安全限制
READ读取文件/列出目录workspace 只读
WRITE创建/覆盖文件memory_bench 内部
EDIT精确替换文本memory_bench 内部
SEARCH搜索关键词workspace/memory_bench

工具调用示例

json
{
  "name": "READ",
  "arguments": {
    "path": "memory_bench/server/memory/MEMORY.md"
  }
}

实现模块

与 router.py 的对比

特性chat_router.pyrouter.py
端点/memory/chat/memory/v1/chat/completions
协议简化自定义协议OpenAI 兼容
对话存储conversation_store.pymem0(Qdrant)
适用场景AIChat 客户端、轻量级对话需要记忆检索的复杂场景

魔女の实验室