为文档数据块创建上下文化向量嵌入。这些嵌入捕获每个数据块中的局部细节以及整个文档中的全局上下文。
此终结点接受查询、完整文档或数据块,并返回跨整个文档的上下文感知嵌入。
body
必需
-
列表的列表,其中每个内部列表包含要向量化的查询、文档或数据块。
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。 -
输入文本的类型。默认为
null。其他选项:query、document。- 当
input_type为null时,嵌入模型直接将输入转换为数值向量。出于检索或搜索目的,当“查询”在称为“文档”的数据集合中搜索相关信息时,请通过将input_type分别设置为query或document来指定您的输入是查询还是文档。在这些情况下,Voyage 会在向量化inputs之前自动在其前面添加提示,从而创建更适合检索或搜索任务的向量。使用和不使用input_type参数生成的嵌入是兼容的。 - 为了提高透明度,在您的输入之前添加了以下提示:
- 对于
query,提示为“Represent the 查询 for retreering documents:”。 - 对于
document,提示为“Represent the 文档 for检索:”。
- 对于
值为
query、document或 null。 - 当
-
生成的输出嵌入的维数。默认为
null。voyage-context-3支持以下output_dimension值:2048、1024(默认)、512 和 256。如果设立为null,则模型将使用默认 1024。值为
256、512、1024、2048或 null。 -
要返回的嵌入的数据类型。默认为
float。其他选项:int8、uint8、binary、ubinary。float:每个返回的嵌入都是一个 32 位(4 字节)单精度浮点数的列表。这是默认,可提供最高的精度/检索准确性。int8和uint8:每个返回的嵌入都是一个 8 位(1 字节)整数的列表,其范围分别为从 -128 到 127 和 0 到 255。binary和ubinary:每个返回的嵌入是一个 8 位整数列表,表示按位封装的量化单位嵌入值:int8代表binary,uint8代表ubinary。返回的整数列表的长度是output_dimension的 1/8(嵌入的实际维度)。binary类型使用偏移量二进制方法。
默认值为
float。 -
嵌入的编码格式。默认为
null。其他选项:base64。- 如果为
null,则当output_dtype设为float时,每个嵌入都是浮点数数组;而当output_dtype的所有其他值(int8、uint8、binary和ubinary)时,则为整数数组。有关更多详细信息,请参阅output_dtype。 - 如果为
base64,则嵌入表示为以下内容的 Base64 编码 NumPy数组:- 浮点数 (numpy.float32)将
output_dtype设立为float。 - 有符号整数 (numpy.int8) 将
output_dtype设立为int8或binary。 - 无符号整数 (numpy.uint8) 将
output_dtype设立为uint8或ubinary。
- 浮点数 (numpy.float32)将
值为
base64或 null。 - 如果为
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"
}
{
"object": "list",
"data": [
{
"object": "list",
"data": [
{
"object": "embedding",
"embedding": [
42.0
],
"index": 42
}
],
"index": 42
}
],
"model": "string",
"usage": {
"total_tokens": 42
}
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}