该接口用于查询指定用户的记忆,返回与输入查询内容最相关的记忆片段。您可以调用这些记忆片段作为参考,供大模型生成回答时使用。如本章示例所示,您可以在用户与 AI 对话过程中实时检索用户记忆,也可以对用户整体记忆进行全局检索,用于生成用户画像或支持个性化推荐,从而提升对话的连贯性与用户的个性化体验。
在最近的更新中,召回的记忆片段除了原有的“事实记忆”,新增了对“偏好记忆”的支持,使模型回答时“更懂用户”。
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 = {
"query": "我国庆想出去玩,帮我推荐个没去过的城市,以及没住过的酒店品牌",
"user_id": "memos_user_123",
"conversation_id": "0928"
}
headers = {
"Content-Type": "application/json",
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}"
}
url = f"{os.environ['MEMOS_BASE_URL']}/search/memory"
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")
query = "我国庆想出去玩,帮我推荐个没去过的城市,以及没住过的酒店品牌"
user_id = "memos_user_123"
conversation_id = "0928"
res = client.search_memory(query=query, user_id=user_id, conversation_id=conversation_id)
print(f"result: {res}")
curl --request POST \
--url https://memos.memtensor.cn/api/openmem/v1/search/memory \
--header 'Authorization: Token YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"query": "我国庆想出去玩,帮我推荐个没去过的城市,以及没住过的酒店品牌",
"user_id": "memos_user_123",
"conversation_id": "0928"
}'
Token API_key,可在 API 控制台>接口密钥 中查看
与查询的记忆关联的用户的唯一标识符。
查询内容所在会话的唯一标识符,传入可以明确当前会话,本会话的记忆应当比其他历史会话的权重高。
要在记忆中查询的文本内容,单次查询文本的token上限为4k。
限定返回的事实记忆条数,用于控制事实记忆片段的长度,不传时使用系统默认值6,最大值为25。
是否启用偏好记忆召回。开启后,将根据查询的内容智能召回用户的偏好记忆。不传时该功能默认开启。
限定返回的偏好记忆条数,用于控制偏好记忆片段的长度,不传时使用系统默认值6,最大值为25。
Successful Response
在用户与 AI 对话的过程中,你可以调用 MemOS 检索与当前用户发言最相关的记忆,并将其填充到大模型的回复提示词中。
🍬 小Tips:填写 conversation_id 可以帮助 MemOS 理解当前会话的上下文,提升本会话相关记忆的权重,使对话模型的回复内容更加连贯。
如下示例所示,如果你已经参考 添加消息 > 导入历史对话,添加过用户memos_user_345 的历史对话消息,你可以一键复制该示例检索用户记忆。
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']
# 用户当前发言,直接作为 query
query_text = "国庆节我要去云南玩了,有什么美食推荐吗?"
data = {
"user_id": "memos_user_345",
"conversation_id": "memos_conversation_789", # 新建了一个会话ID
"query": query_text,
}
# 调用 /search/memory 查询相关记忆
res = requests.post(f"{BASE_URL}/search/memory", headers=headers, data=json.dumps(data))
print(f"result: {res.json()}")
# 示例返回(展示已召回的记忆片段)
# # {
# "memory_detail_list": [
# {
# "id": "c6c63472-25d3-49ee-b360-9b0702d96781",
# "memory_key": "辣味食物偏好",
# "memory_value": "用户喜欢吃辣的食物,但不太喜欢重油的菜肴,如麻辣火锅和毛血旺。用户更偏好清爽又带辣味的菜。",
# "memory_type": "UserMemory",
# "create_time": 1762674694466,
# "conversation_id": "memos_conversation_345",
# "status": "activated",
# "confidence": 0.99,
# "tags": [
# "饮食偏好",
# "辣味",
# "重油"
# ],
# "update_time": 1762674694423,
# "relativity": 0.00242424
# }
# ],
# "preference_detail_list": [
# {
# "id": "46d8372d-241a-4ffc-890b-ae13c90d5565",
# "preference_type": "explicit_preference",
# "preference": "用户喜欢辣味的食物,但不喜欢重油的辣味食物。",
# "reasoning": "用户在第一次查询中明确表示喜欢辣的食物,在第二次查询中进一步说明自己不喜欢重油的辣味食物,这表明用户的偏好是喜欢辣但清爽的食物。",
# "create_time": 1762675342352,
# "conversation_id": "memos_conversation_345",
# "status": "activated",
# "update_time": 1762674923302
# },
# {
# "id": "9d62c1ae-a069-478d-a2fd-cb4aadfb6868",
# "preference_type": "implicit_preference",
# "preference": "用户可能偏好较健康的饮食选择",
# "reasoning": "用户表达了对辣味的明确喜好,但对重油食物表示不喜欢。这表明用户可能更关注饮食的健康性,倾向于选择不那么油腻的食物。用户对辣味的喜好与对重油食物的排斥结合在一起,可能暗示着对健康饮食的隐性偏好。",
# "create_time": 1762674923448,
# "conversation_id": "memos_conversation_345",
# "status": "activated",
# "update_time": 1762674851542
# }
# ],
# "preference_note": "\n# 注意:\n事实记忆是事实的摘要,而偏好记忆是用户偏好的摘要。\n你的回复不得违反用户的任何偏好,无论是显式偏好还是隐式偏好,并简要解释你为什么这样回答以避免冲突。\n"
# }
如果你需要对自己开发的应用进行用户分析,或者希望在 AI 应用中向用户实时展示他们的“个人关键印象”,可以调用 MemOS 全局检索用户的记忆,帮助大模型生成用户的个性化画像。
🍬 小Tips:此时可以不填写conversation_id哦~得到响应详情后,你可以挑选memory_type 为 UserMemory 的记忆,这类记忆提炼了与用户相关的个性化信息,适合用于生成用户画像或推荐内容。
如下示例所示,如果你已经参考 添加消息 > 记录用户偏好或行为,添加过用户memos_user_567 的历史对话消息,你可以一键复制该示例检索用户记忆。
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']
# 直接询问人物画像,作为 query
query_text = "我的人物关键词是什么?"
data = {
"user_id": "memos_user_567",
"query": query_text,
}
# 调用 /search/memory 查询相关记忆
res = requests.post(f"{BASE_URL}/search/memory", headers=headers, data=json.dumps(data))
print(f"result: {res.json()}")
# 示例返回(展示已召回的记忆片段)
# {
# "memory_detail_list": [
# {
# "id": "00d8bb4e-aa8c-4fee-a83e-bf67ed6c3ea1",
# "memory_key": "希望AI帮助的事项",
# "memory_value": "用户希望AI帮助规划日常学习计划、推荐电影和书籍,以及提供心情陪伴。",
# "memory_type": "WorkingMemory",
# "create_time": 1762675190743,
# "conversation_id": "memos_conversation_id_567",
# "status": "activated",
# "confidence": 0.99,
# "tags": [
# "帮助",
# "学习计划",
# "推荐",
# "陪伴"
# ],
# "update_time": 1762675209112,
# "relativity": 0.00013480317
# },
# {
# "id": "17f039d5-d034-41e9-a385-765992a4ab00",
# "memory_key": "希望AI提供的帮助类型",
# "memory_value": "用户希望AI提供建议、信息查询和灵感。",
# "memory_type": "WorkingMemory",
# "create_time": 1762675153211,
# "conversation_id": "memos_conversation_id_567",
# "status": "activated",
# "confidence": 0.99,
# "tags": [
# "AI",
# "帮助",
# "类型"
# ],
# "update_time": 1762675206651,
# "relativity": 0.00010301525
# },
# {
# "id": "89bc2453-1471-4a1a-936c-94708da071ed",
# "memory_key": "聊天风格偏好",
# "memory_value": "用户喜欢的聊天风格为幽默、温暖和轻松闲聊。",
# "memory_type": "WorkingMemory",
# "create_time": 1762675135023,
# "conversation_id": "memos_conversation_id_567",
# "status": "activated",
# "confidence": 0.99,
# "tags": [
# "聊天",
# "风格",
# "偏好"
# ],
# "update_time": 1762675205606,
# "relativity": 0.00007810917
# },
# {
# "id": "074b5caf-d294-41a6-9f7e-9c2a8b1d3ade",
# "memory_key": "感兴趣的话题",
# "memory_value": "用户最感兴趣的话题包括人工智能、未来科技和电影评论。",
# "memory_type": "WorkingMemory",
# "create_time": 1762675172952,
# "conversation_id": "memos_conversation_id_567",
# "status": "activated",
# "confidence": 0.99,
# "tags": [
# "话题",
# "兴趣"
# ],
# "update_time": 1762675207841,
# "relativity": 0.000029795949
# },
# {
# "id": "6e1a0715-5c83-4092-b226-762cc3500170",
# "memory_key": "书籍类型偏好",
# "memory_value": "用户喜欢的书籍类型包括科普、技术和自我成长类书籍。",
# "memory_type": "WorkingMemory",
# "create_time": 1762675029885,
# "conversation_id": "memos_conversation_id_567",
# "status": "activated",
# "confidence": 0.99,
# "tags": [
# "书籍",
# "类型",
# "偏好"
# ],
# "update_time": 1762675194083,
# "relativity": 0.00002005097
# },
# {
# "id": "5ee1c8c2-ea55-42e7-8fd8-71d0127198b5",
# "memory_key": "电视剧类型偏好",
# "memory_value": "用户喜欢的电视剧类型为悬疑和历史剧。",
# "memory_type": "UserMemory",
# "create_time": 1762675002841,
# "conversation_id": "memos_conversation_id_567",
# "status": "activated",
# "confidence": 0.99,
# "tags": [
# "电视剧",
# "类型",
# "偏好"
# ],
# "update_time": 1762675002788,
# "relativity": 0.00001729489
# }
# ],
# "preference_detail_list": [],
# "preference_note": ""
# }
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 = {
"query": "我国庆想出去玩,帮我推荐个没去过的城市,以及没住过的酒店品牌",
"user_id": "memos_user_123",
"conversation_id": "0928"
}
headers = {
"Content-Type": "application/json",
"Authorization": f"Token {os.environ['MEMOS_API_KEY']}"
}
url = f"{os.environ['MEMOS_BASE_URL']}/search/memory"
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")
query = "我国庆想出去玩,帮我推荐个没去过的城市,以及没住过的酒店品牌"
user_id = "memos_user_123"
conversation_id = "0928"
res = client.search_memory(query=query, user_id=user_id, conversation_id=conversation_id)
print(f"result: {res}")
curl --request POST \
--url https://memos.memtensor.cn/api/openmem/v1/search/memory \
--header 'Authorization: Token YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"query": "我国庆想出去玩,帮我推荐个没去过的城市,以及没住过的酒店品牌",
"user_id": "memos_user_123",
"conversation_id": "0928"
}'