文档中心>媒体处理>实践教程>多模态检索能力接入

多模态检索能力接入

最近更新时间:2024-11-01 11:10:52

我的收藏

简介

多模态检索目前主要由视频入库与视频检索两个功能组成。首先通过视频入库向视频检索库内存入若干数据,随后可通过视频检索从视频检索库中检索和给定检索值接近的视频。

场景一:视频入库

步骤1: 发起视频入库任务

发起视频入库任务,可选使用 URL 方法或者 COS 方法入库视频。可选传入回调地址,当传入回调地址时,任务完成后会将任务结果以 json 格式使用 POST 方法发送到指定的回调地址。API 文档参见 发起视频入库任务

请求示例

URL 发起视频入库任务示例:
{
"InputInfo": {
"Type": "URL",
"UrlInputInfo": {
"Url": "http://qq.com/test.mp4"
}
},
"TaskNotifyConfig": {
"NotifyType": "URL",
"NotifyUrl": "http://qq.com:1234/callback"
}
}
COS 发起视频入库任务示例:
{
"InputInfo": {
"Type": "COS",
"CosInputInfo": {
"Bucket": "test-bucket",
"Region": "ap-nanjing",
"Object": "/movie/test.mp4"
}
},
"TaskNotifyConfig": {
"NotifyType": "URL",
"NotifyUrl": "http://qq.com:1234/callback"
}
}
说明:
发起入库任务接口中 TaskNotifyConfig 为可选字段,不使用此字段时任务结束后不自动发送任务结果,需要手动调用查询接口查询任务结果。
传入视频需要有音频,暂不支持只有画面没有音频的视频。

响应示例

{
"Response": {
"TaskId": "251***279-VideoDBEntryTask-60e4ae3***************b7e8af25ec",
"RequestId": "3c1***19-cfe9-470e-b241-907877d6fb03"
}
}

向回调地址发送的任务结果示例:

{
"Response": {
"TaskId": "251***279-VideoDBEntryTask-60e4ae3***************b7e8af25ec",
"Status": "SUCCESS",
"VideoDBEntryTaskResults": [
{
"VideoId": "c928**********7813df05aa6fc3e408"
}
]
}
}
说明:
VideoId 为根据入库视频生成的唯一视频ID。
仅当 Status 状态为 SUCCESS 时,VideoDBEntryTaskResults 为非空,当 Status 状态为 FAIL 时,VideoDBEntryTask 为空。

步骤2: (可选)查询视频入库任务状态

根据步骤1发起视频入库任务中返回的 TaskId 手动查询视频入库任务当前的状态。API 文档参见 查询入库任务状态

请求示例

{
"TaskId": "251***279-VideoDBEntryTask-60e4ae3***************b7e8af25ec"
}

响应示例

{
"Response": {
"RequestId": "4fa***e0-880c-43d7-b150-dc3dd80a5995",
"TaskId": "251***279-VideoDBEntryTask-60e4ae3***************b7e8af25ec",
"Status": "SUCCESS",
"VideoDBEntryTaskResults": [
{
"VideoId": "c928**********7813df05aa6fc3e408"
}
]
}
}
说明:
仅当 Status 状态为 SUCCESS 时,VideoDBEntryTaskResults 为非空。Status 可能的状态有 WAITING、PROCESSING、SUCCESS 和 FAIL。
任务状态信息保存7天。

场景二:视频检索

步骤1: 发起视频检索任务

发起视频检索任务,使用检索值对视频进行检索(目前支持文本检索)。可选传入回调地址,当传入回调地址时,任务完成后会将任务结果以 json 格式使用 POST 方法发送到指定的回调地址。API 文档参见 发起视频检索任务

请求示例

{
"SearchValueInput": {
"SearchValueType": "Text",
"TextInput": "喜欢"
},
"Limit": 5,
"TaskNotifyConfig": {
"NotifyType": "URL",
"NotifyUrl": "http://qq.com:1234/callback"
}
}
说明:
Limit 字段为可选字段,取值范围[1,20],Limit 取 K 的时候返回最接近检索值的前 K 条视频,不传此字段时使用默认值5。
TaskNotifyConfig 为可选字段,不使用此字段时任务结束后不自动发送任务结果,需要手动调用查询接口查询任务结果。
SearchValueType 目前只支持 Text。

响应示例

{
"Response": {
"TaskId": "251***279-SearchTask-60e4ae3***************b7e8af25ec",
"RequestId": "40e***9f-3184-4f69-8bed-7c677763d37a"
}
}

向回调地址发送的任务结果示例

{
"Response": {
"TaskId": "251***279-SearchTask-60e4ae3***************b7e8af25ec",
"Status": "SUCCESS",
"SearchTaskResults": [
{"Score": 0.70121, "VideoId": "932fbf**********97a4c0229c889de"},
{"Score": 0.68495, "VideoId": "03ac42**********95807370499"},
{"Score": 0.68263, "VideoId": "988b0f**********4c229c889de"},
{"Score": 0.6748, "VideoId": "058482**********95807370499"},
{"Score": 0.67364, "VideoId": "c92846**********13df05a3408"}
]
}
}
说明:
仅当 Status 状态为 SUCCESS 时,SearchTaskResults 为非空,当 Status 状态为 FAIL 时,SearchTaskResults 为空。
Score 字段为视频和检索值的相关度,取值范围[0,1]。越大视频和检索值越相关。

步骤2: (可选)查询视频检索任务状态

根据步骤1发起视频检索任务中返回的 TaskId 手动查询视频检索任务当前的状态。API 文档参见 查询检索任务状态

请求示例:

{
"TaskId": "251***279-SearchTask-60e4ae3***************b7e8af25ec"
}

响应示例:

{
"Response": {
"RequestId": "4fa***e0-880c-43d7-b150-dc3dd80a5995",
"TaskId": "251***279-SearchTask-60e4ae3***************b7e8af25ec",
"Status": "SUCCESS",
"SearchTaskResults": [
{"Score": 0.70121, "VideoId": "932fbf**********97a4c0229c889de"},
{"Score": 0.68495, "VideoId": "03ac42**********95807370499"},
{"Score": 0.68263, "VideoId": "988b0f**********4c229c889de"},
{"Score": 0.6748, "VideoId": "058482**********95807370499"},
{"Score": 0.67364, "VideoId": "c92846**********13df05a3408"}
]
}
}
说明:
仅当 Status 状态为 SUCCESS 时,SearchTaskResults 为非空。Status 可能的状态有 WAITING、PROCESSING、SUCCESS 和 FAIL。
任务状态信息保存7天。

快速接入

1. 首先,请前往 媒体处理控制台 开通服务,确认已完成 COS 授权
2. 然后,进入媒体处理 API 3.0 Explorer 在线接口调试页面,在左侧选择需要调用的接口,并填写输入参数。输入参数在 API 3.0 Explorer 界面的文档说明选项中可以查看对应接口具体文档。
3. 输入参数支持表单输入JSON 输入两种方式。表单输入中未使用到的字段无需填写,可切换为 JSON 方式输入上述示例中请求示例格式的 JSON 数据。

image


4. 填写输入参数后,选择右上角的代码示例选项,可以看到自动生成的不同编程语言代码(可支持 Java、Python、Node.js、PHP、GO、.NET、C++ 语言),生成代码中的部分字段信息和填写内容是关联的,如需调整传入参数,可在左侧修改参数值后重新生成代码。

image


此外,选择右上角的在线调用选项卡,单击发送请求可进行真实请求,供您调试、参考。

image


5. 参考 腾讯云 SDK 安装 SDK,SDK 安装完成后,可以在您的项目代码中参考代码示例中生成的代码进行开发。