说明
embedding 接口升级为 v2 版本,新增视频、图片embedding模型,长文本窗口模型及稀疏向量产出,支持用量统计。建议迁移到 v2 接口使用 embedding 功能。
data/embedding/version/2 接口用于请求 Embedding 服务,通过深度学习神经网络提取文本、图片、视频等非结构化数据里的内容和语义,把文本、图片、视频等变成特征向量。
说明
说明
请求 Embedding 服务的 OpenAPI 接口时,需要构造签名进行鉴权,详细的 OpenAPI 签名调用方法请参见 API签名调用指南。
URI | /api/data/embedding/version/2 | 统一资源标识符 |
---|---|---|
方法 | POST/GET | 客户端对Embedding服务请求的操作类型 |
请求头 | Content-Type: application/json | 请求消息类型 |
Authorization: HMAC-SHA256 *** | 鉴权 |
参数 | 子参数 | 类型 | 是否必选 | 可选值 | 说明 |
---|---|---|---|---|---|
doubao-embedding-vision | 字节自研的图文多模态向量化模型,主要面向图文多模向量检索的使用场景,支持视频、图片输入及中、英双语文本输入。当TPM超过5000时请前往火山方舟平台使用。
模型的计费规则可以前往向量库计费查看 说明 doubao-embedding-vision 包括 250615、250328 和 241215 三个版本,可通过 | ||||
model | model_name | string | 是 | doubao-embedding | 字节跳动研发的语义向量化模型,支持中英双语。当TPM超过5000时请前往火山方舟平台使用。
模型的计费规则可以前往向量库计费查看 说明 doubao-embedding 包括 240515 和 240715 两个版本,可通过 |
doubao-embedding-and-m3 |
模型的计费规则可以前往向量库计费查看 | ||||
doubao-embedding-large | 字节跳动语义向量化模型的最新升级版,采用能力更强的豆包语言模型为基座,支持中、英双语,当TPM超过5000时请前往火山方舟平台使用
模型的计费规则可以前往向量库计费查看 | ||||
doubao-embedding-large-and-m3 |
模型的计费规则可以前往向量库计费查看 | ||||
bge-large-zh |
模型的计费规则可以前往向量库计费查看 | ||||
bge-m3 |
模型的计费规则可以前往向量库计费查看 | ||||
bge-large-zh-and-m3 | 基于 bge v1.5 和m3 模型,使用混合检索模式。稠密向量由 bge v1.5 抽取,稀疏向量由 bge m3 抽取。
模型的计费规则可以前往向量库计费查看 | ||||
bge-visualized-m3 | 基于Visualized-BGE和m3 模型, 可对文本或图片进行单独编码,或者对文本图片对联合编码。
模型的计费规则可以前往向量库计费查看 | ||||
params | map | 否 | return_token_usage | 返回请求消耗的token数,默认关闭。 | |
return_dense | 返回稠密向量,默认打开。 | ||||
return_sparse | 返回稀疏向量,支持提取稀疏向量的模型默认打开, 其他模型开启了会报错。 | ||||
embedding_dimension | 用于对向量化结果降维。 | ||||
model_version | 若模型有多版本,可以指定。不填则使用默认版本。当前doubao-embedding模型支持"240515"(默认)和"240715"版本。doubao-embedding-vision支持"241215"(默认,支持的向量维度:3072)、"250328"(支持的向量维度:2048,1024)、"250615"(支持的向量维度:2048,1024) | ||||
data 说明 array[map], 最大 100 个.(若data为full_modal_seq类型,则最多1个) | data_type | string | 是 | text | 文本 |
image | 图片 | ||||
text-image | 文本-图片对联合编码 | ||||
full_modal_seq |
文、图、视频的列表,(仅针对doubao-embedding-vision 250615适用)不能与text、image、text-image共同使用。 | ||||
text | string | 否 | data_type=text时,直接传入文本string | data_type 为 text 或 text-image时,必选。 | |
image | string | 否 | 按下述的MediaData规范填写。 | data_type 为 image 或 text-image时,必选。 | |
full_modal_seq | list<> | 否 | 列表元素FullModalData的结构见下 | data_type 为full_modal_seq时,必选。 |
例如image图片、video视频的字符串格式规范:
三选一 |
|
---|---|
| |
|
三选一 | 字段名 | 类型 | 备注 |
---|---|---|---|
text | string | 纯文本 | |
image | string | 参考MediaData规范 | |
video | string | 参考MediaData规范 | |
fps | float | 表示抽帧的频率。对于video类型的数据才有效。不设置则默认为1,范围为0.2-5.0。服务端默认至少抽取16帧。越大,则抽帧更多,同时消耗的token也越多、时延越高。 |
参数 | 参数说明 |
---|---|
code | 状态码 |
message | 返回信息 |
request_id | 标识每个请求的唯一标识符 |
data | 字典类型,现在包含 |
状态码 | http状态码 | 返回信息 | 状态码说明 |
---|---|---|---|
0 | 200 | success | 请求 Embedding 服务成功。 |
1000003 | 400 | invalid request:%s | 非法参数:
|
1000001 | 401 | unauthorized | 请求头中缺乏鉴权信息。 |
1000025 | 404 | failed to calcTextEmbedding | 请求模型服务失败:
|
curl -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: token=********************' \ http://***/api/data/embedding/version/2 \ -d '{ "model": { "model_name": "bge-large-zh-and-m3", "params": { "return_token_usage": true, "return_model_token_usage": true, "return_dense": true, "return_sparse": true, } }, "data": [ { "data_type": "text", "text": "如何使用torchserve部署模型" }, { "data_type": "text", "text": "怎么使用训练机器学习模型" } ] }'
执行成功返回:
{ "message": "success", "code": 0, "request_id": "02171245661168200000000000000000000ffff0a0060a37b4c01", "data": { "model_token_usage": { "bge-large-zh": { "prompt_tokens": 21, // 请求文本的分词数 "completion_tokens": 0, // 生成文本的分词数, 对话模型才有值, 其他模型都是0 "total_tokens": 21 // prompt_tokens + completion_tokens }, "bge-m3": { "prompt_tokens": 21, // 请求文本的分词数 "completion_tokens": 0, // 生成文本的分词数, 对话模型才有值, 其他模型都是0 "total_tokens": 21 // prompt_tokens + completion_tokens }, } "token_usage": { "prompt_tokens": 21, // 请求文本的分词数 "completion_tokens": 0, // 生成文本的分词数, 对话模型才有值, 其他模型都是0 "total_tokens": 21 // prompt_tokens + completion_tokens }, "sentence_sparse_embedding": [ // 稀疏向量, 输出是一个词典<token_id, token_weight> { "71277": 0.258544921875, "6": 0.010589599609375, ... }, ... ], "sentence_dense_embedding": [ // 稠密向量, 输出是个二维数组, [batch_size, model_output_dimension] [0.02059086412191391, -0.014762681908905506, ...], ... ] } }
执行失败返回:
{"message":"failed to calcTextEmbedding, ModelNotFoundException: Model not found: bge-large-zh","code":1000025}
curl -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: token=********************' \ http://***/api/data/embedding/version/2 \ -d '{ "model": { "model_name": "doubao-embedding-vision", "params": { "embedding_dimension": 2048, "model_version": "250615", "return_token_usage": true, } }, "data": [ { "data_type": "full_modal_seq", "full_modal_seq": [ {"text": "这是文章的标题"}, {"text": "正文内容....."}, {"video": "tos://mybucket/movie_1.mp4", "fps": 0.5}, {"text": "文章结尾内容....."}, ] } ] }'
响应结果:
{ "message": "success", "code": 0, "request_id": "02171245661168200000000000000000000ffff0a0060a37b4c01", "data": { "token_usage": { "prompt_tokens": 21, // 请求文本的token数 "image_tokens": 21, // 请求图片的token数(包括了视频的抽帧结果) "completion_tokens": 0, "total_tokens": 21 }, "sentence_dense_embedding": [ [0.02059086412191391, -0.014762681908905506, ......], ] } }