多模态内容检索接口文档
根据输入的文本、图片、视频内容进行多模态检索分析,返回标签与检索结果。
接口说明
该接口用于根据输入的文本、图片、视频内容进行多模态检索分析,返回与输入内容相关的检索结果或标签结果。
接口支持以下输入类型:
- 文本
- 图片
- 视频
三种内容类型均为非必填,但请求时至少需要传入其中一种内容。
接口信息
| 参数名 | 说明 |
|---|---|
| 接口名称 | 多模态内容检索接口 |
| 请求方式 | POST |
| 线上地址 | https://la-otter.inaiai.com/v1/workflows/run |
| 测试地址 | https://la-raccoon.inaiai.com/workflows/run |
| Content-Type | application/json |
| 路由分发方式 | Bearer Token |
| 响应模式 | blocking |
Header 参数
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| Authorization | string | 是 | Bearer app-{API_KEY},路由分发 |
| Content-Type | string | 是 | 固定为 JSON 格式 application/json |
Body 参数结构
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| inputs | object | 是 | 工作流输入参数 |
| response_mode | string | 是 | 响应模式,固定传 blocking |
| user | string | 是 | 调用方用户标识,用于调用跟踪、成本统计和权限控制(请私聊) |
inputs 参数
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| query | object | 是 | 检索输入内容 |
| tag_type | string | 是 | 标签/检索类型,支持标签分类:av、novel、comics、post |
query 参数
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| texts | array | 否 | 文本内容数组 |
| images | array | 否 | 图片 URL 数组 |
| video | array | 否 | 视频 URL 数组 |
texts、images、video 均为非必填
三者至少需要传入一个
如果三者均为空或未传,接口应返回参数错误
图片、视频需传入可公网访问的 URL
视频当前支持传入视频文件地址或 m3u8 地址,具体以工作流处理能力为准
texts 参数
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| text | string | 是 | 文本内容 |
| weight | number | 否 | 文本权重,用于影响检索匹配强度 |
json
[
{
"text": "内容标题或描述文本",
"weight": 1.0
}
]text 为空字符串时,建议不传该条数据
weight 不传时,可由服务端使用默认权重
多条文本可用于标题、正文、标签、用户描述等不同来源内容
请求示例
bash
curl -X POST 'https://la-raccoon.inaiai.com/v1/workflows/run' \
-H 'Authorization: Bearer {API_KEY}' \
-H 'Content-Type: application/json' \
-d '{
"inputs": {
"query": {
"texts": [
{
"text": "内容标题或描述文本",
"weight": 1.0
}
],
"images": [
"https://example.com/image-1.jpg",
"https://example.com/image-2.jpg"
],
"video": [
"https://example.com/video.m3u8"
]
},
"tag_type": "av"
},
"response_mode": "blocking",
"user": "business-user-id"
}'参数校验规则
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| 内容输入校验 | — | 否 | texts、images、video 至少传入一个 |
| 文本校验 | — | 否 | texts 中的 text 不建议为空 |
| 图片校验 | — | 否 | images 中的 URL 需可访问 |
| 视频校验 | — | 否 | video 中的 URL 需可访问 |
| 鉴权校验 | — | 否 | Header 中必须携带有效 Bearer Token |
| 用户标识校验 | — | 否 | user 必须传入,用于业务方识别和成本统计 |
| 标签类型校验 | — | 否 | 成人内容检索场景固定传 av |
返回结果
接口使用 Dify workflow blocking 模式,调用成功后会同步返回工作流执行结果。返回结构以工作流实际配置为准,通常包含:
| 参数路径 | 类型 | 说明 |
|---|---|---|
| workflow_run_id | string | 工作流运行 ID |
| task_id | string | 任务 ID |
| data | object | 工作流执行结果 |
| data.status | string | 执行状态 |
| data.outputs | object | 检索结果 |
| data.elapsed_time | number | 执行耗时 |
| data.total_tokens | number | token 消耗 |
异常情况
| 参数路径 | 类型 | 说明 |
|---|---|---|
| 未传 Authorization | 鉴权失败 | — |
| API Key 无效 | 鉴权失败 | — |
| texts、images、video 均为空 | 参数错误 | — |
| 图片 URL 无法访问 | 图片处理失败或结果为空 | — |
| 视频 URL 无法访问 | 视频处理失败或结果为空 | — |
| 工作流执行超时 | 返回执行失败或超时信息 | — |
| 模型调用失败 | 返回模型处理异常 | — |
接入注意事项
- user 字段必须按业务方规范传入,不能使用自己定义的,比如 abc-123
- 图片和视频地址需要保证服务端可访问
- 不建议一次传入过多图片或超长视频,可能影响响应速度和成本
- 成人内容检索场景下,tag_type 固定传 av
- 生产环境中不要在前端暴露 API Key,应由服务端代理调用