发布 /contextualizedembeddings

为文档数据块创建上下文化向量嵌入。这些嵌入捕获每个数据块中的局部细节以及整个文档中的全局上下文。

此终结点接受查询、完整文档或数据块,并返回跨整个文档的上下文感知嵌入。

application/json

body 必需

  • 输入 array[array] 必需

    列表的列表,其中每个内部列表包含要向量化的查询、文档或数据块。

    inputs 中的每个内部列表表示一设立嵌入在一起的文本元素。列表中的每个元素不仅独立编码,而且还对来自同一列表中其他元素的上下文进行编码。

    inputs = [["text_1_1", "text_1_2", ..., "text_1_n"],
              ["text_2_1", "text_2_2", ..., "text_2_m"]]
    

    文档数据块。最常见的是,每个内部列表都包含来自单个文档的数据块,按它们在文档中的位置排序。在这种情况下:

    inputs = [["doc_1_chunk_1", "doc_1_chunk_2", ..., "doc_1_chunk_n"],
              ["doc_2_chunk_1", "doc_2_chunk_2", ..., "doc_2_chunk_m"]]
    

    每个数据块都在上下文中与同一文档中的其他数据段进行编码,从而实现更多上下文感知的嵌入。提供的数据块不应有任何重叠。

    查询和文档的上下文无关行为。如果每个内部列表有一个元素,则每个文本都会独立嵌入,类似于标准(与上下文无关)嵌入:

    inputs = [["query_1"], ["query_2"], ..., ["query_k"]]
    inputs = [["doc_1"], ["doc_2"], ..., ["doc_k"]]
    

    因此,如果输入是查询,则每个内部列表应包含一个查询(长度为 1),如上所示,并且 input_type 应设立为 query

    以下约束应用于 inputs 列表:

    • 该列表包含的输入不得超过 1、000 个。
    • 所有输入的词元总数不得超过 120K。
    • 所有输入的数据块总数不得超过 16K。

    对于查询,该列表仅包含单个查询。对于文档或文档块,该列表应包括单个文档中的所有数据块,按它们在文档中的位置排序,或者整个文档可以作为单个数据块提供。列表中的词元总数不得超过 32,000 个词元。

    至少 1 个但不超过 1000 个元素。

    对于查询,该列表仅包含单个查询。对于文档或文档块,该列表应包括单个文档中的所有数据块,按它们在文档中的位置排序,或者整个文档可以作为单个数据块提供。列表中的词元总数不得超过 32,000 个词元。

    至少 1 个元素。每个的最小长度为 1

  • 模型 字符串 必需

    要使用的上下文化嵌入模型。推荐型号:voyage-context-3

    值为 voyage-context-3

  • input_type

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

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

    值为 querydocumentnull

  • output_dimension 整数 | null

    生成的输出嵌入的维数。默认为 nullvoyage-context-3 支持以下 output_dimension 值:2048、1024(默认)、512 和 256。如果设立为 null,则模型将使用默认 1024。

    值为 25651210242048null

  • output_dtype 字符串

    要返回的嵌入的数据类型。默认为 float。其他选项:int8uint8binaryubinary

    • float:每个返回的嵌入都是一个 32 位(4 字节)单精度浮点数的列表。这是默认,可提供最高的精度/检索准确性。
    • int8uint8:每个返回的嵌入都是一个 8 位(1 字节)整数的列表,其范围分别为从 -128 到 127 和 0 到 255。
    • binaryubinary:每个返回的嵌入是一个 8 位整数列表,表示按位封装的量化单位嵌入值:int8 代表 binaryuint8 代表 ubinary。返回的整数列表的长度是 output_dimension 的 1/8(嵌入的实际维度)。binary 类型使用偏移量二进制方法。

    默认值为float

  • coding_format

    嵌入的编码格式。默认为 null。其他选项:base64

    • 如果为 null,则当 output_dtype 设为 float 时,每个嵌入都是浮点数数组;而当 output_dtype 的所有其他值(int8uint8binaryubinary)时,则为整数数组。有关更多详细信息,请参阅 output_dtype
    • 如果为 base64,则嵌入表示为以下内容的 Base64 编码 NumPy数组:
      • 浮点数 (numpy.float32)将 output_dtype设立为 float
      • 有符号整数 (numpy.int8) 将 output_dtype设立为 int8binary
      • 无符号整数 (numpy.uint8) 将 output_dtype设立为 uint8ubinary

    值为 base64null

响应

  • 200 application/json

    Success

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

      Realm 对象类型,始终为“列表”。

      值为 list

    • 数据 大量[对象] 必需

      一大量上下文化嵌入。

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

        Realm 对象类型,始终为“列表”。

        值为 list

      • 数据 大量[对象] 必需

        一个嵌入对象数组,输入列表中的每个数据块都有一个嵌入对象。

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

          Realm 对象类型,始终为“embedding”(嵌入)。

          值为 embedding

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

          嵌入向量。当 encoding_format 为 null 时,这是一个数字数组(当 output_dtypefloat 时为浮点数,为 int8uint8binaryubinary 时为整数)。当 encoding_formatbase64 时,这是一个 base64 编码的字符串。

          以下之一:

          Encoding_format 为 null 时的数组格式

          当encoding_format 为 base64 时的 Base64 编码格式

        • 索引(index) 整型 必需

          一个整数,表示同一文档的嵌入列表中的查询或上下文化数据块嵌入的索引。

      • 索引(index) 整型 必需

        一个整数,分别表示查询或文档在查询或文档列表中的索引。

    • 模型 字符串 必需

      模型名称。

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

        用于计算嵌入的词元总数。

  • 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

    网关超时

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

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

帖子 /contextualizedembeddings
curl \
 --request POST 'https://ai.mongodb.com/v1/contextualizedembeddings' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{"inputs":[["string"]],"model":"voyage-context-3","input_type":"query","output_dimension":256,"output_dtype":"float","encoding_format":"base64"}'
请求示例
{
  "inputs": [
    [
      "string"
    ]
  ],
  "model": "voyage-context-3",
  "input_type": "query",
  "output_dimension": 256,
  "output_dtype": "float",
  "encoding_format": "base64"
}
响应示例 (200)
{
  "object": "list",
  "data": [
    {
      "object": "list",
      "data": [
        {
          "object": "embedding",
          "embedding": [
            42.0
          ],
          "index": 42
        }
      ],
      "index": 42
    }
  ],
  "model": "string",
  "usage": {
    "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"
}