该接口用于向指定会话添加一条或多条消息。如本章的使用示例所示,您既可以在用户与助手的对话进行时实时写入,也可批量导入已有的历史记录,或补充用户的偏好和行为信息。所有添加的消息内容都会被 MemOS 转化为记忆,用于后续对话的召回与参考,从而支持对话历史管理、用户行为记录以及个性化交互。
import os
import requests
import json
# 替换成你的 API Key
os.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"
os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"
data = {
"user_id": "memos_user_123",
"conversation_id": "0610",
"messages": [
{"role": "user", "content": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?"},
{"role": "assistant", "content": "您可以考虑【七天、全季、希尔顿】等等"},
{"role": "user", "content": "我选七天"},
{"role": "assistant", "content": "好的,有其他问题再问我。"}
]
}
headers = {
"Content-Type": "application/json",
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}"
}
url = f"{os.environ['MEMOS_BASE_URL']}/add/message"
res = requests.post(url=url, headers=headers, data=json.dumps(data))
print(f"result: {res.json()}")
# # 请确保已安装MemoS (pip install MemoryOS -U)
from memos.api.client import MemOSClient
# 使用 API Key 初始化客户端
client = MemOSClient(api_key="YOUR_API_KEY")
messages = [
{"role": "user", "content": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?"},
{"role": "assistant", "content": "您可以考虑【七天、全季、希尔顿】等等"},
{"role": "user", "content": "我选七天"},
{"role": "assistant", "content": "好的,有其他问题再问我。"}
]
user_id = "memos_user_123"
conversation_id = "0610"
res = client.add_message(messages=messages, user_id=user_id, conversation_id=conversation_id)
print(f"result: {res}")
curl --request POST \
--url https://memos.memtensor.cn/api/openmem/v1/add/message \
--header 'Authorization: Token YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"user_id": "memos_user_123",
"conversation_id": "0610",
"messages": [
{"role": "user", "content": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?"},
{"role": "assistant", "content": "您可以考虑【七天、全季、希尔顿】等等"},
{"role": "user", "content": "我选七天"},
{"role": "assistant", "content": "好的,有其他问题再问我。"}
]
}'
Token API_key,可在 API 控制台>接口密钥 中查看
与添加消息关联的用户的唯一标识符。
与添加消息关联的会话的唯一标识符。
表示内存内容的消息对象数组。数组中所有消息的总token数上限为8k。
Successful Response
接口状态码,更多内容可查阅错误码列表了解详情。
接口提示信息,如 "消息添加成功"。
你可以在用户每次收到模型回复时,实时调用接口添加消息,随时与 MemOS 同步用户与助手的对话。MemOS将在后端不断根据新的对话,更新用户记忆。
import os
import json
import requests
os.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"
os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"
# headers 和 base URL
headers = {
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}",
"Content-Type": "application/json"
}
BASE_URL = os.environ['MEMOS_BASE_URL']
def add_message(user_id, conversation_id, role, content):
data = {
"user_id": user_id,
"conversation_id": conversation_id,
"messages": [{"role": role, "content": content}]
}
res = requests.post(f"{BASE_URL}/add/message", headers=headers, data=json.dumps(data))
result = res.json()
if result.get('code') == 0:
print(f"✅ 添加成功")
else:
print(f"❌ 添加失败, {result.get('message')}")
# 用户发送消息
add_message("memos_user_123", "memos_conversation_123", "user","""我今天早上跑了5公里,膝盖有点酸""")
# AI 回复消息
add_message("memos_assistant_123", "memos_conversation_123", "assistant","""你今天跑了5公里,膝盖有点酸,说明关节和肌肉还在适应强度。明天建议把距离控制在3公里左右,重点放在充分热身和放松。这样既能维持训练节奏,又能给膝盖恢复的时间。""")
如果你已经构建了 AI 对话应用,MemOS 也支持批量导入已有聊天记录,帮助对话助手记住用户,更个性化地回复。
🍬 小Tips:chat_time 可使用结构化时间或中文文本,主要用于 MemOS 在召回记忆时参考,以提升记忆的准确性。
import os
import json
import requests
os.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"
os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"
# headers 和 base URL
headers = {
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}",
"Content-Type": "application/json"
}
BASE_URL = os.environ['MEMOS_BASE_URL']
# 示例历史对话数据
history_messages = [
# 用户第一天和AI的对话
{"role": "user", "content": "我喜欢吃辣的食物", "chat_time": "2025-09-12 08:00:00"},
{"role": "assistant", "content": "明白啦,我记住了,你喜欢辣味的食物。", "chat_time": "2025-09-12 08:01:00"},
# 用户几天后和AI的对话
{"role": "user", "content": "但我又不太喜欢重油的,比如麻辣火锅、毛血旺之类的", "chat_time": "2025-09-25 12:00:00"},
{"role": "assistant", "content": "你更偏好清爽又带辣味的菜。我可以帮你推荐一些适合你的辣味美食哦~", "chat_time": "2025-09-25 12:01:00"}
]
def add_message(user_id, conversation_id, messages):
data = {
"user_id": user_id,
"conversation_id": conversation_id,
"messages": messages
}
res = requests.post(f"{BASE_URL}/add/message", headers=headers, data=json.dumps(data))
result = res.json()
if result.get('code') == 0:
print(f"✅ 添加成功")
else:
print(f"❌ 添加失败, {result.get('message')}")
# === 使用示例 ===
# 导入历史对话
add_message("memos_user_345", "memos_conversation_345", history_messages)
除了导入对话内容,用户的个人偏好、行为等数据,例如首次启动应用时填写的兴趣问卷信息,同样可以导入 MemOS,作为记忆的一部分。
🍬 小Tips:content 字段必须是字符串,可以写成单行或多行文本,都可以被系统正常识别。
import os
import json
import requests
os.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"
os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"
# headers 和 base URL
headers = {
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}",
"Content-Type": "application/json"
}
BASE_URL = os.environ['MEMOS_BASE_URL']
# 用户兴趣信息
user_profile_info = [
{
"role": "user",
"content": """
喜欢的电影类型: 科幻, 动作, 喜剧
喜欢的电视剧类型: 悬疑, 历史剧
喜欢的书籍类型: 科普, 技术, 自我成长
喜欢的学习方式: 文章, 视频, Podcast
运动习惯: 跑步, 健身
饮食偏好: 偏爱辣, 健康饮食
旅游偏好: 自然景观, 城市文化, 冒险
喜欢的聊天风格: 幽默, 温暖, 轻松闲聊
想让AI提供的帮助类型: 建议, 信息查询, 灵感
我最感兴趣的话题: 人工智能, 未来科技, 电影评论
我希望AI帮助的事情: 规划日常学习计划, 推荐电影和书籍, 提供心情陪伴
"""
}
]
def add_message(user_id, conversation_id, messages):
data = {
"user_id": user_id,
"conversation_id": conversation_id,
"messages": messages
}
res = requests.post(f"{BASE_URL}/add/message", headers=headers, data=json.dumps(data))
result = res.json()
if result.get('code') == 0:
print(f"✅ 添加成功")
else:
print(f"❌ 添加失败, {result.get('message')}")
# === 使用示例 ===
# 导入用户兴趣问卷信息
add_message("memos_user_567", "memos_conversation_id_567", user_profile_info)
import os
import requests
import json
# 替换成你的 API Key
os.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"
os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"
data = {
"user_id": "memos_user_123",
"conversation_id": "0610",
"messages": [
{"role": "user", "content": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?"},
{"role": "assistant", "content": "您可以考虑【七天、全季、希尔顿】等等"},
{"role": "user", "content": "我选七天"},
{"role": "assistant", "content": "好的,有其他问题再问我。"}
]
}
headers = {
"Content-Type": "application/json",
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}"
}
url = f"{os.environ['MEMOS_BASE_URL']}/add/message"
res = requests.post(url=url, headers=headers, data=json.dumps(data))
print(f"result: {res.json()}")
# # 请确保已安装MemoS (pip install MemoryOS -U)
from memos.api.client import MemOSClient
# 使用 API Key 初始化客户端
client = MemOSClient(api_key="YOUR_API_KEY")
messages = [
{"role": "user", "content": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?"},
{"role": "assistant", "content": "您可以考虑【七天、全季、希尔顿】等等"},
{"role": "user", "content": "我选七天"},
{"role": "assistant", "content": "好的,有其他问题再问我。"}
]
user_id = "memos_user_123"
conversation_id = "0610"
res = client.add_message(messages=messages, user_id=user_id, conversation_id=conversation_id)
print(f"result: {res}")
curl --request POST \
--url https://memos.memtensor.cn/api/openmem/v1/add/message \
--header 'Authorization: Token YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"user_id": "memos_user_123",
"conversation_id": "0610",
"messages": [
{"role": "user", "content": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?"},
{"role": "assistant", "content": "您可以考虑【七天、全季、希尔顿】等等"},
{"role": "user", "content": "我选七天"},
{"role": "assistant", "content": "好的,有其他问题再问我。"}
]
}'