You need to enable JavaScript to run this app.
向量数据库VikingDB

向量数据库VikingDB

复制全文
记忆检索
搜索记忆-SearchMemory
复制全文
搜索记忆-SearchMemory

说明

此接口为统一检索事件记忆和画像记忆接口,更推荐使用 SearchProfileMemory 单独检索画像记忆,使用 SearchEventMemory 单独检索事件记忆。

接口概述

从指定记忆库中检索相关的记忆事件或画像信息,可依据用户提问进行语义相似度检索,并根据查询条件划定查询范围。

请求接口

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

检索过滤条件和返回设置。

  • user_id

String or Array of String

用户 ID,支持单个 ID 或 ID 列表。

  • assistant_id

String or Array of String

助手 ID,支持单个 ID 或 ID 列表。

  • primary_key

String or Array of String

用于过滤的画像主键表达式。可以是单个或列表,比如画像主键名为kb_id,想查询kb_id为1的数据,则
检索条件为 primary_key="kb_id=1"

  • start_time

Integer

检索记忆的起始时间,毫秒级时间戳。

  • end_time

Integer

检索记忆的终止时间,毫秒级时间戳。

  • memory_type

String or Array of String

要检索的记忆类型。可以是具体的事件类型 (EventType) 或画像类型 (ProfileType) 名称,或它们的列表。

  • group_id

String or Array of String

用于过滤的群组ID。可以是单个ID或ID列表。

  • session_id

String or Array of String

用于过滤的session ID。可以是单个ID或ID列表

limit

Integer

返回的检索结果条数,默认为10,取值范围[1, 5000]。

说明:

  • 检索事件/画像:user_id 和 assistant_id 至少填写一个,也可同时填写。

响应消息

字段

类型

描述

code

Integer

状态码,0 表示成功,其他表示错误。

message

String

返回信息。

data

Object

返回的详细检索结果。

  • collection_name

String

被检索的记忆库名称。

  • count

Integer

返回的检索结果数量。

  • result_list

Array of Object

检索结果列表。

  • -id

String

记忆条目(事件或画像实例)的唯一ID。

  • -score

Float

与查询的相关性得分。

  • -memory_type

String

记忆条目的类型(EventType 或 ProfileType)名称。

  • -user_id

Array of String

关联的用户ID列表。

  • -assistant_id

Array of String

关联的助手ID列表。

  • -session_id

String

关联的会话ID。

  • -group_id

String

关联的群组ID。

  • -time

Integer

记忆发生或最后更新的时间戳(毫秒)。

  • -status

String

记忆条目的状态(预留字段)。

  • -labels

String

记忆条目的标签(预留字段)。

  • -memory_info

Object

额外的详细信息。其结构取决于memory_type。
对于事件,是事件的属性,再加上原始的多轮对话信息,例如:

{
    "IMAGE_URL": "https://memorydb-memory-image-dev-cn-beijing-2108758172.tos-cn-beijing.volces.com/15ff67c6-41c8-4b56-92f3-76e2874b9f58.jpeg?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTNzIxMGExY2FkYjNiNDBkOWI0NzBkZDA1Y2UzNDI4YzA%2F20251215%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20251215T084416Z&X-Tos-Expires=600&X-Tos-SignedHeaders=host&X-Tos-Signature=be31e128b99e61bf388764bdac5e4c125fc44847bdf0514c5132d43fc28d6577",// 当写入数据时store_file为true,相关的图片会一起被检索并返回
    "original_messages": "tutor_001(assistant):Okay, let's talk about weather. How would you say “今天天气多云但很暖和” in English?\nstudent_A(user):Today is cloudy but very warm.\ntutor_001(assistant):That's a good start! You can also say, “It's cloudy but warm today”. Your sentence structure was correct. Great job!",
    "answer": "Today is cloudy but very warm.",
    "knowledge_point_name": "天气相关表达",
    "question": "How would you say “今天天气多云但很暖和” in English?",
    "rating": "good",
    "rating_reasoning": "学生能够正确地用英语描述天气,符合该知识点能够基本正确描述天气的良好评价标准",
    "rating_score": 7
}

对于画像,则只包含画像的属性。 例如:

{
    "answer_bad_count": 0,
    "answer_good_count": 3,
    "count": 3,
    "has_been_taught": 0,
    "issues": [],
    "rating_score_max": 1,
    "rating_score_sum": 3
}
  • token_usage

Integer

本次检索消耗的token数量。

request_id

String

标识每个请求的唯一ID。

示例代码

Python请求

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)
最近更新时间:2025.12.16 22:51:09
这个页面对您有帮助吗?
有用
有用
无用
无用