为由文本、图像或两者组合组成的多模式输入创建向量嵌入。
此终结点接受可包含任意组合的文本和图像的输入,并返回其向量表示形式。
body
必需
-
要矢量化的多模式输入列表。
列表中的单个输入是包含单个键
"content"的字典,其值表示文本和图像的序列。"content"的值是一个字典列表,每个字典代表一段文本或图像。字典有四个可能的键:- type:指定内容片段的类型。允许的值为
text、image_url或image_base64。 - 文本:仅当
type为text时显示。该值应该是文本字符串。 - image_base64:仅当
type为image_base64时才出现。该值应为 数据URL 格式为data:[<mediatype>];base64,<data>的 Base64 编码图像。目前支持的mediatypes包括:image/png、image/jpeg、image/webp和image/gif。 - image_url:仅当
type为image_url时出现。该值应该是链接到图像的URL。我们支持PNG、JPEG、WEBP 和 GIF 图像。 - 注意:图像数据的每个字典中只应出现键
image_base64或image_url之一。请求中需要保持一致性,这意味着每个请求都应将image_base64或image_url专门用于图像,而不是同时使用。
示例有效负载,其中
inputs包含图像作为URL:inputs列表包含一个输入,由一段文本和一张图像(通过URL提供)组成。{ "inputs": [ { "content": [ { "type": "text", "text": "This is a banana." }, { "type": "image_url", "image_url": "https://raw.githubusercontent.com/voyage-ai/voyage-multimodal-3/refs/heads/main/images/banana.jpg" } ] } ], "model": "voyage-multimodal-3.5" }示例有效负载,其中
inputs包含基本64映像:下面是与上面示例等效的示例,其中图像内容是基本64图像而不是URL。(基础64映像可能会很长,因此示例中仅显示了缩短的版本。)
{ "inputs": [ { "content": [ { "type": "text", "text": "This is a banana." }, { "type": "image_base64", "image_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAA..." } ] } ], "model": "voyage-multimodal-3.5" }以下约束应用于
inputs列表:- 该列表包含的输入不得超过 1000 个。
- 每张图像包含的像素不得超过 16 百万,大小不得超过 20 MB。
- 将图像的每 560 个像素计为一个词元,列表中的每个输入不得超过 32 个词元,000 个词元,并且所有输入的词元总数不得超过 320 个词元,000。
至少
1个但不超过1000个元素。 -
要使用的多模态嵌入模型。推荐型号:
voyage-multimodal-3.5。值为
voyage-multimodal-3.5或voyage-multimodal-3。 -
输入的类型。默认为
null。其他选项:query、document。- 当
input_type为null时,嵌入模型直接将inputs转换为数值向量。出于检索或搜索目的,如果“查询”(在本例中可以是文本或图像)在称为“文档”的数据集合中搜索相关信息,请通过设置来指定您的inputs是查询还是文档分别将input_type更改为query或document。在这些情况下,Voyage 会在向量化之前自动在inputs前面添加提示,从而创建更适合检索或搜索任务的向量。由于输入可以是多模态的,因此“查询”和“文档”可以是文本、图像或两种模态的交错。使用和不使用input_type参数生成的嵌入是兼容的。 - 为了提高透明度,在您的输入之前添加了以下提示:
- 对于
query,提示为“Represent the 查询 for retreering documents:”。 - 对于
document,提示为“Represent the 文档 for检索:”。
值为
query、document或 null。 - 当
-
是否截断输入以适应上下文长度。默认为
true。- 如果为
true,则在由嵌入模型进行矢量化之前,超长输入将被截断以适应上下文长度。如果截断发生在图像的中间,则整个图像将被丢弃。 - 如果为
false,则当任何输入超过上下文长度时都会发生错误。
默认值为
true。 - 如果为
-
嵌入的编码格式。默认为
null。- 如果为
null,则嵌入表示为浮点数列表。 - 如果为
base64,则嵌入表示为单精度浮点数的 Base64 编码 NumPy数组。
值为
base64或 null。 - 如果为
帖子 /multimodalembeddings
curl \
--request POST 'https://ai.mongodb.com/v1/multimodalembeddings' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{"inputs":[{"content":[{"type":"text","text":"string"}]}],"model":"voyage-multimodal-3.5","input_type":"query","truncation":true,"output_encoding":"base64"}'
请求示例
{
"inputs": [
{
"content": [
{
"type": "text",
"text": "string"
}
]
}
],
"model": "voyage-multimodal-3.5",
"input_type": "query",
"truncation": true,
"output_encoding": "base64"
}
响应示例 (200)
{
"object": "list",
"data": [
{
"object": "embedding",
"embedding": [
42.0
],
"index": 42
}
],
"model": "string",
"usage": {
"text_tokens": 42,
"image_pixels": 42,
"total_tokens": 42
}
}
响应示例 (400)
{
"detail": "string"
}
响应示例 (401)
{
"detail": "string"
}
响应示例 (403)
{
"detail": "string"
}
响应示例 (429)
{
"detail": "string"
}
响应示例 (500)
{
"detail": "string"
}
响应示例 (502)
{
"detail": "string"
}
响应示例 (503)
{
"detail": "string"
}
响应示例 (504)
{
"detail": "string"
}