多模态混合检索

最近更新时间:2026-02-12 14:51:16

我的收藏

功能描述

对数据集内文件进行多种跨模态检索,支持进行以文搜图、以图搜图、以文搜文档等多种检索方式。
当进行图片检索时,支持输入自然语言文本或者图片,在指定数据集中检索出符合输入的文本语义或图片内容相似的图片。
当进行文档检索时,支持输入自然语言文本,在指定数据集中检索出符合输入的文本语义相似的文本段及其所归属的文档。

授权说明

通过子账号使用时,需要在 授权策略 的 action 中添加 ci:DatasetHybridSearch 权限。数据万象支持的所有操作接口请参见 CI action

服务开通

首次使用该功能时将默认为您开通数据万象,同时该存储桶将自动绑定数据万象,无需角色授权,即可直接使用。
注意:
智能检索控制台需开通白名单才可使用,同时文档检索功能当前处于内测阶段,若您需使用控制台的文档检索相关功能,需开通白名单,可 联系我们 进行处理。
数据万象绑定后,如果您手动对存储桶进行数据万象的解绑操作,将无法继续使用该功能。

使用限制

使用检索前需要先完成 创建数据集
仅支持北京、上海、成都地域,即请求 Host 中<Region>仅支持填写为 ap-beijingap-shanghaiap-chengdu
更多使用限制,详情请参见 使用限制

费用说明

有关多模态混合检索的费用,请参见 智能检索费用
说明:
当前文档检索相关功能处于内测阶段,暂不收取任何费用。最终的计费标准,以正式商业化阶段发布的公告为准。

请求

请求示例

POST /datasetquery/hybridsearch HTTP/1.1
Host: <AppId>.ci.<Region>.myqcloud.com
Authorization: Auth String
Content-Length: xxx
Content-Type: application/json
Accept: application/json
说明:
Authorization: Auth String,详情请参见 请求签名 文档。

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

请求体示例1:以图搜图搭配元数据过滤
{
"DatasetName": "imagesearch",
"Mode": "pic",
"Templates": "ImageSearch",
"SearchURIs": ["cos://examplebucket-1250000000/test.jpg"],
"Limit": 10,
"MatchThreshold": 1,
"Filter": {
"$and": [{
"MediaType": {
"$in": ["image", "document"]
}
},
{
"Size": {
"$gt": 123
}
}
]
}
}
请求体示例2:以文搜图搭配元数据过滤
{
"DatasetName": "imagesearch",
"Mode": "text",
"Templates" : "ImageSearch",
"SearchText": "包含一棵大树的图片",
"Limit": 10,
"MatchThreshold": 1,
"Filter": {
"$and": [{
"MediaType": {
"$in": ["image", "document"]
}
},
{
"Size": {
"$gt": 123
}
}
]
}
}
请求体示例3:文档检索搭配元数据过滤
{
"DatasetName": "docsearch",
"Mode": "text",
"Templates" : "DocSearch",
"SearchText": "包含一棵大树的文档",
"Limit": 10,
"MatchThreshold": 1,
"Filter": {
"$and": [{
"MediaType": {
"$in": ["image", "document"]
}
},
{
"Size": {
"$gt": 123
}
}
]
}
}

请求参数

参数名称
描述
类型
是否必选
DatasetName
数据集名称,同一个账户下唯一
String
Mode
指定检索的输入类型,默认值为 pic。有效值为:
pic:表示输入图片进行以图搜图的检索
text:表示输入文本进行检索,支持输入自然语言,例如“包含一棵大树的图片”
String
Templates
指定输出的数据类型,有效值为:
ImageSearch:进行图像检索,输出的是图片类型的结果
DocSearch:进行文档检索,输出的是文档类型的结果(Mode 必须为 text)
String
SearchURIs
资源标识字段。当前仅支持 COS 存储桶,字段规则:cos:///
,其中 BucketName 表示 COS 存储桶名称,Path 表示资源路径,例如:cos://examplebucket-1250000000/test.jpg
String Array
当 Mode 为 pic 时必选
当使用的 算子模板 是图像搜索模板,并进行“以图搜图”操作时必选
SearchText
检索语句。最多支持60个 UTF-8编码字符。例如“包含一棵大树的图片”
String
当 Mode 为 text 时必选
当使用的 算子模板 是图像搜索模板,并进行“以文搜图”操作时必选
使用文档类 Template 时必选
Limit
返回相关图片的数量,默认值为10,取值范围为(0, 100]
Integer
MatchThreshold
限制返回图片或文档的最低相关度分数,只有超过 MatchThreshold 值的图片才会返回。默认值为0,推荐值为80,取值范围为(0, 100]
例如:设置 MatchThreshold 的值为80,则检索结果中仅会返回相关度分数大于等于80分的图片或文档
Integer
Filter
简单查询参数条件,可选。关于数据格式,请参见 字段和操作符的支持列表
Container

响应

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

响应体示例1:以图搜图、以文搜图返回结果
{
"ImageResult": [{
"URI": "cos://examplebucket-1250000000/test.jpg",
"Score": 99
}],
"RequestId": "NjYwYzEwYjhfNGQ2ODk0MGJfMjcxxxx"
}
响应体示例2:文档检索返回结果
{
"DocResult": [{
"Text": "2025年整体财务数据如图:{Image_0}; 增长数据如图:{Image_1}",
"Score": 90,
"URI": "cos://examplebucket-1250000000/test.docx",
"TextPage": 10,
"ImageUrls": {
"Image_0": "img123",
"Image_1": "img456"
}
}],
"RequestId": "NjYwYzEwYjhfNGQ2ODk0MGJfMjcxxxx"
}
响应包体具体数据内容如下:
参数名称
类型
描述
RequestId
String
请求 ID
ImageResult
Container Array
图像检索识别结果信息列表
DocResult
Container Array
文档检索识别结果信息列表
ImageResult 节点内容:
参数名称
类型
描述
URI
String
资源标识字段,表示需要建立索引的文件地址
Score
Integer
相关图片匹配得分
DocResult 节点内容:
参数名称
类型
描述
URI
String
文档在对象存储中的统一资源标识符(URI)
TextPage
Integer
文档中匹配内容所在的页码(仅部分结果包含)
Score
Integer
搜索结果的相关度评分,数值越高表示相关性越强
Text
String
匹配的原始文本内容,可能包含占位符(如 {Image_0})
ImageUrls
Container
图片占位符到实际图片标识符(或 URL)的映射集
ImageUrls 节点内容:
参数名称
类型
描述
Image_0
string
图片标识符(或 URL)
Image_1
string
图片标识符(或 URL)

实际案例

请求:图片检索搭配元数据过滤

POST /datasetquery/hybridsearch HTTP/1.1
Authorization:q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=****************************************
Host:test-1234567890.ci.ap-beijing.myqcloud.com
Content-Length: 166
Content-Type: application/xml


<Request>
<DatasetName>imagesearch</DatasetName>
<Mode>pic</Mode>
<Templates>ImageSearch</Templates>
<SearchURIs>
<URI>cos://examplebucket-1250000000/test.jpg</URI>
</SearchURIs>
<Limit>10</Limit>
<MatchThreshold>1</MatchThreshold>
<Filter>
<$and>
<Condition>
<MediaType>
<$in>
<Value>image</Value>
<Value>document</Value>
</$in>
</MediaType>
</Condition>
<Condition>
<Size>
<$gt>123</$gt>
</Size>
</Condition>
</$and>
</Filter>
</Request>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Mon, 28 Jun 2022 15:23:12 GMT
Server: tencent-ci
x-ci-request-id: NjMxMDJhYTNfMThhYTk0MGFfYmU1OV8zZjc=


<Response>
<ImageResult>
<Item>
<URI>cos://examplebucket-1250000000/test.jpg</URI>
<Score>99</Score>
</Item>
</ImageResult>
<RequestId>NjYwYzEwYjhfNGQ2ODk0MGJfMjcxxxx</RequestId>
</Response>

请求:进行文档检索搭配元数据过滤

POST /datasetquery/hybridsearch HTTP/1.1
Authorization:q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=****************************************
Host:test-1234567890.ci.ap-beijing.myqcloud.com
Content-Length: 166
Content-Type: application/xml


<Request>
<DatasetName>docsearch</DatasetName>
<Mode>text</Mode>
<Templates>DocSearch</Templates>
<SearchText>包含一棵大树的文档</SearchText>
<Limit>10</Limit>
<MatchThreshold>1</MatchThreshold>
<Filter>
<$and>
<Condition>
<MediaType>
<$in>
<Value>image</Value>
<Value>document</Value>
</$in>
</MediaType>
</Condition>
<Condition>
<Size>
<$gt>123</$gt>
</Size>
</Condition>
</$and>
</Filter>
</Request>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Mon, 28 Jun 2022 15:23:12 GMT
Server: tencent-ci
x-ci-request-id: NjMxMDJhYTNfMThhYTk0MGFfYmU1OV8zZjc=


<Response>
<DocResult>
<Item>
<Text>2025年整体财务数据如图:{Image_0}; 增长数据如图:{Image_1}</Text>
<Score>90</Score>
<URI>cos://examplebucket-1250000000/test.docx</URI>
<TextPage>10</TextPage>
<ImageUrls>
<Image_0>img123</Image_0>
<Image_1>img456</Image_1>
</ImageUrls>
</Item>
</DocResult>
<RequestId>NjYwYzEwYjhfNGQ2ODk0MGJfMjcxxxx</RequestId>
</Response>

错误码

该请求主要错误码如下表格所示,更多的错误信息请参见 错误码 文档。
错误码
错误信息
说明
InvalidArgument
Group not exists
图库不存在
InvalidArgument
Image not exists
图片不存在
InvalidArgument
Person not exists
人员不存在
InvalidArgument
Group already exists
图库已存在
InvalidArgument
Params is invalid
非法请求参数
InvalidArgument
Unable to obtain vector feature information
无法获取向量特征信息
InvalidArgument
Input image's size exceeded limit
图片大小超限
InvalidArgument
File format not supported
文件格式不支持
InvalidArgument
Input image's width or height exceeded limit
图片宽高超限
InvalidArgument
Image decode failed
图片解码失败
InvalidArgument
Image encode failed
图片编码失败
InvalidArgument
Text length exceed
文本长度超限
InvalidArgument
Dataset template invalid
数据集模板不匹配
InvalidArgument
Unable to recognize face
未提取有效人脸
InvalidArgument
The sceneType and moduleVersion not exists
该场景模型不支持
InvalidArgument
Invalid object
下载对象失败
InternalError
Request limit exceed
内部错误,请稍后重试
InternalError
Data Exception
内部错误,请稍后重试
InternalError
System Overload
内部错误,请稍后重试
InvalidArgument
Parse Filter Fail
解析标量过滤条件失败
InvalidArgument
Filter Exceeds Limit
标量过滤条件数量超限
InvalidArgument
The size of image exceeds the limit
图片大小超限
InvalidArgument
The number of personnel faces exceeds the limit
人脸数量超限
InternalError
Failed to parse embedding service response
内部错误,请稍后重试
InternalError
Request rate limited
请求速率超限