对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

分词器

给定一个输入,嵌入和重新排序进程的第一步是将其分割为词元列表。当您调用API时,我们的服务器会自动执行此分词步骤。Python客户端包含允许您在调用API之前尝试分词器的方法。

使用 tokenize 方法对特定模型的文本列表进行分词。

例子

import voyageai
# Initialize client (uses VOYAGE_API_KEY environment variable)
vo = voyageai.Client()
texts = [
"The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
"Photosynthesis in plants converts light energy into glucose and produces essential oxygen."
]
# Tokenize the texts
tokenized = vo.tokenize(texts, model="voyage-4-large")
for i in range(len(texts)):
print(tokenized[i].tokens)
['The', 'ĠMediterranean', 'Ġdiet', 'Ġemphasizes', 'Ġfish', ',', 'Ġolive', 'Ġoil', ',', 'Ġand', 'Ġvegetables', ',', 'Ġbelieved', 'Ġto', 'Ġreduce', 'Ġchronic', 'Ġdiseases', '.']
['Photos', 'ynthesis', 'Ġin', 'Ġplants', 'Ġconverts', 'Ġlight', 'Ġenergy', 'Ġinto', 'Ġglucose', 'Ġand', 'Ġproduces', 'Ġessential', 'Ġoxygen', '.']

查看 tokenize 方法的参数。

Parameter
类型
必需
说明

texts

字符串数组 (List[str])

要标记化的文本列表。

model

字符串

要标记化的模型的名称。有效值:voyage-4-largevoyage-4voyage-4-litererank-2.5rerank-2.5-litevoyage-multimodal-3.5voyage-multimodal-3

查看 tokenize 方法的响应。

此方法返回 tokenizers.Encoding 对象的列表:

属性
类型
说明

tokens

tokenizers.Encoding 对象的列表,每个对象代表输入文本string的标记化结果。

使用 count_tokens 方法计算特定模型的文本列表中的词元数量。

例子

import voyageai
# Initialize client (uses VOYAGE_API_KEY environment variable)
vo = voyageai.Client()
texts = [
"The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
"Photosynthesis in plants converts light energy into glucose and produces essential oxygen."
]
# Count total tokens
total_tokens = vo.count_tokens(texts, model="voyage-4-large")
print(total_tokens)
32

查看 count_tokens 方法的参数。

Parameter
类型
必需
说明

texts

字符串数组 (List[str])

要为其计数的文本列表。

model

字符串

要计数的模型的名称。有效值:voyage-4-largevoyage-4voyage-4-litererank-2.5rerank-2.5-litevoyage-multimodal-3.5voyage-multimodal-3

查看 count_tokens 方法的响应。

此方法返回一个整数:

属性
类型
说明

total_tokens

整型

输入文本中的词元总数。

使用 count_usage 方法计算特定模型的输入列表中词元和像素的数量。

注意

Voyage 嵌入模型具有上下文长度限制。如果文本超出限制,请在调用API之前截断文本,或将 truncation 参数指定为 True

例子

import voyageai
import PIL
# Initialize client (uses VOYAGE_API_KEY environment variable)
vo = voyageai.Client()
# Create input with text and image
inputs = [
["This is a banana.", PIL.Image.open('banana.jpg')]
]
# Count tokens and pixels
usage = vo.count_usage(inputs, model="voyage-multimodal-3.5")
print(usage)
{'text_tokens': 5, 'image_pixels': 2000000, 'total_tokens': 3576}

查看 count_usage 方法的参数。

Parameter
类型
必需
说明

inputs

字典列表或列表列表(List[dict]List[List[Union[str, PIL.Image.Image]]]

文本、图像和视频序列的列表,用于计算文本标记、图像像素、视频帧和标记总数。列表元素遵循与 voyageai.Client.multimodal_embed()inputs 参数相同的格式,但不支持图像 URL。要学习;了解更多信息,请参阅多模态嵌入。

model

字符串

模型名称(会影响输入的计数方式)。支持的模型包括 voyage-multimodal-3.5(推荐)和 voyage-multimodal-3。对于仅支持文本的其他模型,请使用 voyageai.Client.count_tokens() 函数计算词元计数。

查看 count_usage 方法的响应。

此方法返回包含以下属性的字典:

属性
类型
说明

text_tokens

整型

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

image_pixels

整型

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

video_pixels

整型

输入列表中的视频像素总数。

total_tokens

整型

文本、图像和视频词元的总和。每 560 个图像像素算作一个词元,而每 1120 个视频像素算作一个词元。

使用分词器时请考虑以下事项:

  • 现代 NLP 模型通常将文本字符串转换为词元列表。“you”和“apple”等常用词本身就是词元。相反,罕见或长的单词会被分解为多个词元,示例,“uncharacteristically”被分解为四个词元:“un”、“character”、“ist”和“ically”。一个单词平均大致对应于 1.2 到 1.5 个词元,具体取决于域的复杂性。

    我们的分词器生成的词元平均有 5 个字符,这表明您可以通过将文本字符串中的字符数除以 5 来粗略估计词元数量。要确定令牌的确切数量,请使用 count_tokens() 方法。

  • Voyage 的分词器也可在 Hugging Face 上使用。您可以使用以下代码访问权限与特定模型关联的分词器:

    from transformers import AutoTokenizer
    tokenizer = AutoTokenizer.from_pretrained('voyageai/voyage-4-large')
  • tiktoken 是一个流行的开源分词器。Voyage 模型使用不同的分词器。因此,与 tiktoken 相比,我们的分词器为给定文本生成不同的词元列表。根据统计,我们的分词器生成的词元数量平均是 tiktoken 的 1.1 到 1.2 倍。要确定令牌的确切数量,请使用 count_tokens() 方法。