腾讯云数据库 AI 服务 search_conversation — 语义检索原始对话消息

在原始对话消息中做语义检索。传入检索文本,并按需附加预过滤条件,即可拿到按相关度排序的 Top-K 命中结果。

相关产品
腾讯云数据库 AI 服务 产品页,含版本规格、价格与购买入口。

一、接口介绍

·检索文本:通过 query 传入要匹配的内容(必填)。

·返回数量:通过 limit 指定 Top-K 上限,不传时默认返回 5 条。

·预过滤窗:通过 session_id 限定会话,time_start / time_end 限定时间窗(含端点),用于召回前缩小检索范围。

项 值
HTTP 方法与路径 POST /v2/conversation/search
HTTP 文档 语义检索原始对话消息
函数签名 search_conversation(query, *, limit=None, session_id=None, time_start=None, time_end=None)

注意:说明:

注意:本函数采用语义搜索(向量检索)机制进行相关性召回。其核心运行行为如下:

二、使用示例

# 全局检索 Top-5result = client.search_conversation(query="日本旅游")# 在指定会话内检索 Top-10result = client.search_conversation( query="关西线路", limit=10, session_id="sess-trip-202604",)for msg in result["data"]["messages"]: print(f"[{msg['score']:.3f}] {msg['content']}")

注意:说明:

注意:client 实例的构造方式参见 新建客户端;异步调用时将方法前加 await 即可。

三、请求参数

参数名 类型 必填 默认值 描述说明
query str 是 – 检索文本 / 关键词。用户输入的查询语句,系统将基于此文本进行语义匹配或关键词检索。长度限制:[1, 2048],即上限 2 KB。
limit int 否 5 最大返回结果数(Top-K)。取值范围:[1, 100]。说明:若不传或传 None,服务端默认返回相关性最高的 5 条记录。
session_id str 否 – 会话限定过滤器。传入特定会话 ID 后,检索范围将仅局限于该会话内的关联内容;不传则在全量数据中检索。
time_start str 否 – 时间窗起点(包含该时刻)。格式要求:ISO 8601 格式,例如:"2026-05-25T10:00:00Z"。作用:用于过滤该时间点之后产生的数据。
time_end str 否 – 时间窗终点(包含该时刻)。格式要求:ISO 8601 格式。与 time_start 配合可锁定一个历史时间段进行精确检索。

四、返回信息

返回字典包含按相关度排序的命中项列表与请求追踪 ID:

{ "data": { "messages": [ { "id": "msg-aaaa", "role": "user", "content": "我打算 5 月去日本…", "timestamp": "2026-05-22T14:30:00+08:00", "score": 0.872 } ] }, "trace_id": "tr-xxxxxxxx-xxxxxxxx"}

字段名 类型 说明
data.messages List[Dict] 命中的消息列表。排序规则:列表内的消息默认按相关性评分(score)由高到低(倒序)排列。数据结构:每条消息包含以下完整字段:id (str): 消息的唯一主键 ID。role (str): 发送者角色,可选值为 "user"、"assistant" 或 "system"。content (str): 命中的消息具体文本内容。timestamp (str): 消息产生的 ISO 8601 格式时间戳。score (float): 语义相关性置信度评分。仅在当前检索请求内有效,跨请求不可直接对比。
trace_id str 请求追踪 ID。用于全链路日志排查。该值与 HTTP 响应头中的 x-trace-id 保持一致。

五、错误处理

错误码 触发场景 处理建议
400 query 为空、limit 越界、时间格式非法。 请校验入参后重试。
500 服务端错误。 记录 trace_id 后重试或上报。
赞 (0)
上一篇 4天前
下一篇 4天前