统一聊天接口(Chat API)——语义搜索、问答与记忆管理

本章节介绍一个统一的聊天接口,帮助 AI 开发者通过一个接口完成语义搜索、对话问答和记忆添加。接口遵循简单流程:先检索记忆,再与 LLM 对话,最后将当前轮对话写入记忆。提供了流式与非流式调用示例,方便快速集成与使用。

第五章:Chat API

🎯 问题场景: 你是一名AI应用开发者,但不想自己开发一套记忆搜索、问答、记忆添加的流程。

🔧 解决方案: 我们提供了一个统一的聊天接口,用户通过它即可完成语义搜索、对话问答、记忆添加,无需单独调用多个接口。

🔧 执行流程: 执行流程如下:

A[用户查询] --> B[搜索记忆] --> C[LLM聊天] --> D[添加记忆]

具体步骤

步骤1:启动MemOS API服务

首先您需要在.env中配置您的Chat Model List

CHAT_MODEL_LIST=[{"backend": "qwen", "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1", "api_key": "xxx", "model_name_or_path": "qwen2.5-72b-instruct", "support_models": ["qwen2.5-72b-instruct"]}, {"backend": "deepseek", "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1", "api_key": "xxx", "model_name_or_path": "deepseek-r1", "support_models": ["deepseek-r1"]}]
uvicorn memos.api.server_api:app --host 0.0.0.0 --port 8001 --workers 8

步骤2:调用chat api接口

非流式

curl -X POST "http://0.0.0.0:8001/product/chat/complete" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "memos_user_123",
    "readable_cube_ids": ["xxx"],
    "writable_cube_ids": ["xxx"],
    "query": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?",
    "model_name_or_path": "deepseek-r1",
    "add_message_on_answer": true
  }'

流式

curl -N -X POST "http://0.0.0.0:8001/product/chat/stream" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "memos_user_123",
    "readable_cube_ids": ["xxx"],
    "writable_cube_ids": ["xxx"],
    "query": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?",
    "model_name_or_path": "deepseek-r1",
    "add_message_on_answer": true
  }'