从指定记忆库中检索相关的记忆事件或画像信息,可依据用户提问进行语义相似度检索,并根据查询条件划定查询范围。
URL | /api/memory/search | 统一资源标识符 |
|---|---|---|
请求方法 | POST | 客户端对记忆库服务器请求的操作类型 |
请求头 | Content-Type: application/json | 请求消息类型 |
Authorization: HMAC-SHA256 *** | 基于AK/SK生成的签名信息 |
参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
collection_name | String | 否 | 要检索的记忆库名称。 |
project_name | String | 否 | 记忆库所属项目。 |
resource_id | String | 否 | 记忆库唯一的资源 id。可选择直接传 resource_id,或同时传 collection_name 和 project_name 作为记忆库的唯一标识。 |
query | String | 否 | 用户的检索查询语句(最大长度 4000 字符)
|
filter | Object | 是 | 检索过滤条件和返回设置。 |
| String or Array of String | 否 | 用户 ID,支持单个 ID 或 ID 列表。 |
| String or Array of String | 否 | 助手 ID,支持单个 ID 或 ID 列表。 |
| String or Array of String | 否 | 用于过滤的画像主键表达式。可以是单个或列表,比如画像主键名为kb_id,想查询kb_id为1的数据,则 |
| Integer | 否 | 检索记忆的起始时间,毫秒级时间戳。 |
| Integer | 否 | 检索记忆的终止时间,毫秒级时间戳。 |
| String or Array of String | 是 | 要检索的记忆类型。可以是具体的事件类型 (EventType) 或画像类型 (ProfileType) 名称,或它们的列表。 |
| String or Array of String | 否 | 用于过滤的群组ID。可以是单个ID或ID列表。 |
| String or Array of String | 否 | 用于过滤的session ID。可以是单个ID或ID列表 |
limit | Integer | 否 | 返回的检索结果条数,默认为10,取值范围[1, 5000]。 |
说明:
字段 | 类型 | 描述 |
|---|---|---|
code | Integer | 状态码,0 表示成功,其他表示错误。 |
message | String | 返回信息。 |
data | Object | 返回的详细检索结果。 |
| String | 被检索的记忆库名称。 |
| Integer | 返回的检索结果数量。 |
| Array of Object | 检索结果列表。 |
| String | 记忆条目(事件或画像实例)的唯一ID。 |
| Float | 与查询的相关性得分。 |
| String | 记忆条目的类型(EventType 或 ProfileType)名称。 |
| Array of String | 关联的用户ID列表。 |
| Array of String | 关联的助手ID列表。 |
| String | 关联的会话ID。 |
| String | 关联的群组ID。 |
| Integer | 记忆发生或最后更新的时间戳(毫秒)。 |
| String | 记忆条目的状态(预留字段)。 |
| String | 记忆条目的标签(预留字段)。 |
| Object | 额外的详细信息。其结构取决于memory_type。
对于画像,则只包含画像的属性。 例如:
|
| Integer | 本次检索消耗的token数量。 |
request_id | String | 标识每个请求的唯一ID。 |
import os import requests import json API_KEY = os.getenv("MEMORY_API_KEY", "your_key") url = "https://api-knowledgebase.mlp.cn-beijing.volces.com/api/memory/search" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } data = { "collection_name": "my_first_memory_collection", "query": "你猜猜那个比赛最后谁赢了", "limit": 5, "filter": { "user_id": "user1", "memory_type": ["sys_event_v1", "sys_profile_v1"] } } response = requests.post(url, headers=headers, data=json.dumps(data)) print("Status Code:", response.status_code) print("Response:", response.text)