You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
知识库(Collection)
search_knowledge
复制全文
下载 pdf
search_knowledge
概述

search_knowledge 用于对知识库进行检索和前后处理,当前会默认对原始文本加工后的知识内容进行检索。

请求参数
参数子参数类型是否必选默认值参数说明
collection_name--string否--知识库名称

project_name

--

string

否

default

知识库所属项目,获取方式参见文档API 接入与技术支持
若不指定该字段,则在 default 项目下检索。
若需要操作指定项目下的知识库,需正确配置该字段。

resource_id

--

string

否

--

知识库唯一 ID
可通过创建知识库接口的返回值或知识库列表接口获取
可选择直接传 resource_id,或同时传 collection_name 和 project_name 作为知识库的唯一标识

query

--

string

是

--

检索文本

  • 最大可输入长度为 8000,query 长度 > 8000 时,接口报错
  • 所选 embedding 模型输入最大长度 < query 长度 < 8000 时,query 按所选模型自动截断
  • query 长度 < 所选 embedding 模型输入最大长度时,正常检索返回目标切片

image_query

--

Optional[string]

否

--

检索图片
支持图片 URL 或 Base64 编码,详细要求见图片像素说明和图片文件格式

  • 图片 URL 传入:适用于图片文件已存在公网可访问 URL 的场景,单张图片小于 10 MB
  • Base64 编码传入:适用于图片文件较小的场景,支持 JPEG、PNG、WebP、BMP 四种格式的 Base64 编码,单张图片小于 3 MB,请求体不能超过 4 MB

limit

--

int

否

10

检索结果数量

  • 数量要求:[1, 1000]
query_paramOptional[Dict[str, Any]]否检索的过滤和返回设置

include_path_list

List[str]

否

--

检索目录范围
指定参与检索的目录路径列表,例如 ["/dir/"]。

doc_filter

map

否

--

检索过滤条件

  • 支持对 doc 的 meta 信息过滤
  • 详细使用方式和支持字段见filter表达式,可支持对 doc_id 做筛选
  • 此处用于过滤的字段,需要在 collection/create 时添加到 index_config 的 fields 上
    例如:
    单层 filter:
    Plain Text | doc_filter = { "op": "must", // 查询算子 must/must_not/range/range_out "field": "doc_id", "conds": ["tos_doc_id_123", "tos_doc_id_456"] } query_param = { "doc_filter": doc_filter } |
    多层 filter:
    Plain Text | doc_filter = { "op": "and", // 逻辑算子 and/or "conds": [ // 条件列表,支持嵌套逻辑算子和查询算子 { "op": "must", "field": "type", "conds": [1] }, { ... // 支持>=1的任意数量的条件进行组合 } ] } query_param = { "doc_filter": doc_filter } |

dense_weight

--

float

否

0.5

混合检索中稠密向量的权重

  • 1 表示纯稠密检索 ,0 表示纯字面检索;可选值为 0 或 [0.2, 1],其他值会抛出错误
  • 只有在请求的知识库使用的是混合检索时有效,即索引算法为 hnsw_hybrid
pre_processingOptional[Dict[str, Any]]检索预处理

need_instruction

bool

否

False

是否拼接 instruction 进行检索

  • true:拼接知识库配置的 instruction;false:不拼接 instruction
return_token_usagebool否False是否返回 search 流程中各阶段的 token 使用量

rewrite

bool

否

False

是否对 query 进行改写
根据 messages 字段传入的历史对话信息进行改写,最多 3 轮
注:​只有在messages字段长度大于2且不为空时,设置参数值为True,才能返回有效的rewrite_query;
json | "messages":[ {"role": "user", "content": "prompt 1"}, {"role": "assistant", "content": "prompt2"}, {"role": "user", "content": "prompt 3"} ] |

messages

json

否

--

多轮对话信息
仅当 rewrite 为 true 时必填,用于根据历史对话内容改写问题。上传对话轮数需 >= 1
发出消息的对话参与者角色,可选值包括:

  • user:User Message 用户消息
  • assistant:Assistant Message 对话助手消息
    json | [ {"role": "user", "content": "知识库支持哪些文档格式?"}, {"role": "assistant", "content": "知识库支持结构化和非结构化文档,其中结构化文档支持 excel、csv、jsonl 等常见格式,非结构化文档支持 pdf、docx、ppt 等常见格式。"}, {"role": "user", "content": "那大小呢?"} ] |
post_processingOptional[Dict[str, Any]]检索后处理

rerank_switch

bool

否

False

自动对结果做 rerank

  • true:请求 rerank 模型排序;false:不进行 rerank

retrieve_count

int

否

25

进入重排的切片数量,默认为 25
只有在 rerank_switch 为 True 时生效。retrieve_count 需要大于等于 limit,否则会抛出错误

chunk_diffusion_count

int

否

0

检索阶段返回命中切片的上下几片邻近切片
默认为 0,表示不进行 chunk diffusion。范围 [0, 5]

chunk_group

bool

否

False

文本聚合
默认不聚合,对于非结构化文件,考虑到原始文档内容语序对大模型的理解,可开启文本聚合。开启后,会根据文档及文档顺序,对切片进行重新聚合排序返回

rerank_model

string

否

"base-multilingual-rerank"

rerank 模型选择
仅在 "rerank_switch" == True 的时候生效
可选模型:

  • "doubao-seed-rerank"(即 doubao-seed-1.6-rerank):字节自研多模态重排模型、支持文本 / 图片 / 视频混合重排、精细语义匹配、可选阈值过滤与指令设置
  • "base-multilingual-rerank":速度快、长文本、支持70+种语言
  • "m3-v2-rerank":常规文本、支持100+种语言

rerank_threshold

float

否

--

阈值过滤
仅当 rerank_model=="doubao-seed-rerank" 时生效,用于设置重排分数的过滤阈值,低于阈值的结果将不会被返回,取值范围为 0 到 1

rerank_instruction

string

否

--

rerank 指令
仅在 "rerank_switch" == True 且 "rerank_model" == "doubao-seed-rerank" 时生效,用于提供给模型一个明确的排序指令,提升重排效果。字符串长度不超过 1024
如,Whether the document answers the query or matches the content retrieval intent

rerank_only_chunk

bool

否

False

是否仅根据 chunk 内容计算重排分数
可选值:

  • True: 只根据 chunk 内容计算分
  • False:根据 chunk title + 内容 一起计算排序分

get_attachment_link

bool

否

False

是否获取切片中图片的临时下载链接

  • true:返回临时下载链接;false:不返回临时下载链接
响应消息
字段类型参数说明
codeOptional[int]状态码
messageOptional[str]返回信息
request_idOptional[str]标识每个请求的唯一标识符
dataOptional[SearchKnowledgeResult]SearchKnowledgeResult

SearchKnowledgeResult

字段类型参数说明
countOptional[int]检索结果返回的条数
rewrite_queryOptional[str]query 改写的结果
token_usageOptional[Dict[str, Any]]Token 使用信息
result_listList[PointInfo]检索召回切片信息列表

PointInfo

字段类型参数说明
collection_nameOptional[str]知识库名称
point_idOptional[str]切片 id

content

Optional[str]

切片内容
1、非结构化文件:content 返回切片内容
2、faq 文件:content 返回答案
3、结构化文件:content 返回参与索引的字段和取值,以 K:V 对拼接,使用 \n 区隔

md_contentOptional[str]markdown 格式的解析结果(表格切片可通过 chunk_type == table 判断)
html_contentOptional[str]html 格式的解析结果(表格切片可通过 chunk_type == table 判断)
descriptionOptional[str]文档描述(当前仅支持图片文档)
table_chunk_fieldsOptional[List[PointTableChunkField]]结构化数据检索返回单行全量数据
original_questionOptional[str]faq 数据检索召回答案对应的原始问题
scoreOptional[float]向量化语义检索得分
chunk_titleOptional[str]切片标题
chunk_idOptional[int]切片位次 id(代表在原始文档中的位次顺序)
process_timeOptional[int]切片处理完成的时间
rerank_scoreOptional[float]重排得分
doc_infoOptional[PointDocInfo]PointDocInfo
chunk_typeOptional[str]切片所属类型
chunk_sourceOptional[str]切片来源
chunk_attachmentOptional[List[ChunkAttachment]]附件临时下载链接(有效期 10 分钟)
original_coordinateOptional[Dict[str, Any]]切片在所属文档的原始位置坐标
audio_start_timeOptional[int]音频切片的起始时间(ms)
audio_end_timeOptional[int]音频切片的结束时间(ms)
update_timeOptional[int]更新时间
chunk_statusOptional[str]切片状态
video_frameOptional[str]视频帧
video_urlOptional[str]视频链接
video_start_timeOptional[int]视频切片的起始时间(ms)
video_end_timeOptional[int]视频切片的结束时间(ms)
video_outlineOptional[Dict[str, Any]]视频大纲
audio_outlineOptional[Dict[str, Any]]音频大纲
sheet_nameOptional[str]sheet 名称
projectOptional[str]项目名
resource_idOptional[str]知识库唯一 id

PointDocInfo

字段类型参数说明
doc_idOptional[str]所属文档 id
doc_nameOptional[str]所属文档名字
create_timeOptional[int]文档创建时间
doc_typeOptional[str]所属原始文档类型
doc_metaOptional[str]所属文档的 meta 信息
sourceOptional[str]所属文档知识来源(url,tos 等)
titleOptional[str]所属文档标题
statusOptional[DocStatus]DocStatus

DocStatus

字段类型参数说明
process_statusOptional[int]处理状态
failed_codeOptional[int]失败错误码
failed_msgOptional[str]失败错误信息

ChunkAttachment

字段类型参数说明
uuidOptional[str]附件的唯一标识
captionOptional[str]图片所属标题,若未识别到标题则值为 "\n"
typeOptional[str]image 等
linkOptional[str]临时下载链接,有效期 10 分钟
info_linkOptional[str]附件 info_link
column_nameOptional[str]附件列名

PointTableChunkField

字段类型参数说明
field_nameOptional[str]字段名
field_valueOptional[Any]字段值
状态码说明
状态码http状态码返回信息状态码说明
0200success成功
1000001401unauthorized缺乏鉴权信息
1000002403no permission权限不足
1000003400invalid request:%s非法参数
1000005400collection not existcollection 不存在
请求示例

首次使用知识库 SDK ,可参考 使用说明
本示例演示了知识库 Python SDK 中 SearchKnowledge 的基础使用方法,通过指定知识库名称和查询语句实现知识库检索,使用前需配置 API Key 鉴权参数。

import os

from vikingdb.knowledge import VikingKnowledge
from vikingdb.auth import APIKey
from vikingdb.knowledge.models.search import SearchKnowledgeRequest

def main():
    api_key = os.getenv("VIKINGDB_API_KEY") or ""
    endpoint = "api-knowledgebase.mlp.cn-beijing.volces.com"
    region = "cn-beijing"
    
    client = VikingKnowledge(
        host=endpoint,
        region=region,
        auth=APIKey(api_key=api_key),
        scheme="https"
    )
    
    collection = client.collection(
        collection_name="<YOUR_COLLECTION_NAME>",
        project_name="default",
    )
    
    try:
        resp = collection.search_knowledge(SearchKnowledgeRequest(
            query="<YOUR_QUERY>",
            limit=10,
            dense_weight=0.5,
            query_param={"include_path_list": ["/dir/"]}
        ))
        print(f"Response: {resp}")
    except Exception as e:
        print(f"SearchKnowledge failed, err: {e}")

if __name__ == "__main__":
    main()
最近更新时间:2026.09.08 20:33:17
这个页面对您有帮助吗?
有用
有用
无用
无用