从指定记忆库中检索相关的记忆事件或画像信息,可依据用户提问进行语义相似度检索,并根据查询条件划定查询范围。
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 字符)
• 当传输 query 时,会针对 query 内容对记忆进行语义化匹配召回,召回记忆数量与 limit 值有关;
• 当不传 query 时,会返回符合 filter 条件的记忆列表,按照时间顺序返回 (优先取最近的),召回记忆数量与 limit 值有关。 |
filter | Object | 是 | 检索过滤条件和返回设置。 |
limit | Integer | 否 | 返回的检索结果条数,默认为10,取值范围[1, 5000]。 |
说明:
参数名称 | 参数类型 | 参数说明 |
|---|---|---|
code | Integer | 状态码,0 表示成功,其他表示错误。 |
message | String | 返回信息。 |
data | Object | 返回的详细检索结果。 |
request_id | String | 标识每个请求的唯一ID。 |
import os import time from vikingdb.memory import VikingMem from vikingdb import APIKey API_KEY = os.getenv("MEMORY_API_KEY", "your_key") client = VikingMem( host = "api-knowledgebase.mlp.cn-beijing.volces.com", region = "cn-beijing", auth= APIKey(api_key=API_KEY), scheme="http", ) # 获取记忆库集合 collection = client.get_collection( collection_name="my_first_memory_collection", # 用您的记忆库名称替代 project_name="default" ) query = "你猜猜那个比赛最后谁赢了" filter = { "user_id": "user1", "memory_type": ["sys_event_v1", "sys_profile_v1"] } # 获取会话信息 result = collection.search_memory( query=query, filter=filter, limit=10 ) print("\n=== 格式化结果 ===") print(json.dumps(result, indent=2, ensure_ascii=False))