发布 /multimodalembeddings

为由文本、图像或两者组合组成的多模式输入创建向量嵌入。

此终结点接受可包含任意组合的文本和图像的输入,并返回其向量表示形式。

application/json

body 必需

  • 输入 大量[对象] 必需

    要矢量化的多模式输入列表。

    列表中的单个输入是包含单个键 "content" 的字典,其值表示文本和图像的序列。

    • "content" 的值是一个字典列表,每个字典代表一段文本或图像。字典有四个可能的键:
    • type:指定内容片段的类型。允许的值为 textimage_urlimage_base64
    • 文本:仅当 typetext 时显示。该值应该是文本字符串。
    • image_base64:仅当 typeimage_base64 时才出现。该值应为 数据URL 格式为 data:[<mediatype>];base64,<data> 的 Base64 编码图像。目前支持的 mediatypes 包括:image/pngimage/jpegimage/webpimage/gif
    • image_url:仅当 typeimage_url 时出现。该值应该是链接到图像的URL。我们支持PNG、JPEG、WEBP 和 GIF 图像。
    • 注意:图像数据的每个字典中只应出现键 image_base64image_url 之一。请求中需要保持一致性,这意味着每个请求都应将 image_base64image_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 个元素。

    隐藏输入属性 显示输入属性 对象
    • 内容 大量[对象] 必需

      一系列文本和图像。

      至少 1 个元素。

      以下之一:
  • 模型 字符串 必需

    要使用的多模态嵌入模型。推荐型号:voyage-multimodal-3.5

    值为 voyage-multimodal-3.5voyage-multimodal-3

  • input_type

    输入的类型。默认为 null。其他选项:querydocument

    • input_typenull 时,嵌入模型直接将 inputs 转换为数值向量。出于检索或搜索目的,如果“查询”(在本例中可以是文本或图像)在称为“文档”的数据集合中搜索相关信息,请通过设置来指定您的 inputs 是查询还是文档分别将 input_type 更改为 querydocument。在这些情况下,Voyage 会在向量化之前自动在 inputs 前面添加提示,从而创建更适合检索或搜索任务的向量。由于输入可以是多模态的,因此“查询”和“文档”可以是文本、图像或两种模态的交错。使用和不使用 input_type 参数生成的嵌入是兼容的。
    • 为了提高透明度,在您的输入之前添加了以下提示:
    • 对于query ,提示为“Represent the 查询 for retreering documents:”。
    • 对于 document,提示为“Represent the 文档 for检索:”

    值为 querydocumentnull

  • 截断 布尔

    是否截断输入以适应上下文长度。默认为 true

    • 如果为 true,则在由嵌入模型进行矢量化之前,超长输入将被截断以适应上下文长度。如果截断发生在图像的中间,则整个图像将被丢弃。
    • 如果为 false,则当任何输入超过上下文长度时都会发生错误。

    默认值为true

  • output_encoding

    嵌入的编码格式。默认为 null

    • 如果为 null,则嵌入表示为浮点数列表。
    • 如果为 base64,则嵌入表示为单精度浮点数的 Base64 编码 NumPy数组。

    值为 base64null

响应

  • 200 application/json

    Success

    隐藏响应属性 显示响应属性 对象
    • 对象 字符串 必需

      Realm 对象类型,始终为 list

      值为 list

    • 数据 大量[对象] 必需

      嵌入对象数组。

      隐藏数据属性 显示数据属性 对象
      • 对象 字符串 必需

        Realm 对象类型,始终为 embedding

        值为 embedding

      • 内嵌 数组[number] | string 必需

        嵌入向量。当 output_encoding 为 null 时,这是一个浮点数数组。当 output_encodingbase64 时,这是一个基本 64 编码的字符串。

        以下之一:

        output_encoding 为 null 时的数组格式

        当 output_encoding 为 base64 时的 Base64 编码格式

      • 索引(index) 整型 必需

        一个整数,表示嵌入列表中嵌入的索引。

    • 模型 字符串 必需

      模型名称。

    • 使用 对象 必需
      隐藏用法属性 显示使用属性 对象
      • text_tokens 整型 必需

        输入列表中文本标记的总数。

      • 图像像素 整型 必需

        输入列表中的图像像素总数。

      • total_tokens 整型 必需

        文本和图像词元的总和。每 560 像素算作一个词元。

  • 400 application/json

    Invalid Request

    隐藏响应属性 显示响应属性 对象
    • 详细信息 字符串

      请求无效。发生此错误的原因可能是无效的JSON、无效的参数类型、不正确的数据类型、批处理过大、词元总数超过限制或示例中的词元超过上下文长度。

  • 401 application/json

    Unauthorized

    隐藏响应属性 显示响应属性 对象
    • 详细信息 字符串

      身份验证无效。确保您的模型API密钥在授权标头中正确指定为 Bearer VOYAGE_API_KEY

  • 403 application/json

    Forbidden

    隐藏响应属性 显示响应属性 对象
    • 详细信息 字符串

      禁止访问。如果发送请求的IP不被允许,则可能会发生这种情况。

  • 429 application/json

    已超过速率限制

    隐藏响应属性 显示响应属性 对象
    • 详细信息 字符串

      已超出速率限制。您的请求频率或令牌使用量过高。降低请求速率或等待后再重试。

  • 500 application/json

    内部服务器错误

    隐藏响应属性 显示响应属性 对象
    • 详细信息 字符串

      服务器出现意外错误。短暂等待后重试请求。

  • 502 application/json

    错误网关

    隐藏响应属性 显示响应属性 对象
    • 详细信息 字符串

      服务器从上游服务器收到无效响应。短暂等待后重试请求。

  • 503 application/json

    服务不可用

    隐藏响应属性 显示响应属性 对象
    • 详细信息 字符串

      由于流量过大或进行维护,该服务暂时不可用。短暂等待后重试请求。

  • 504 application/json

    网关超时

    隐藏响应属性 显示响应属性 对象
    • 详细信息 字符串

      服务器未收到来自上游服务器的及时响应。短暂等待后重试请求。

帖子 /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"
}