Skip to main content
语言模型有标记数量限制。你不应超过标记限制。因此,当你将文本分割成块时,计算标记数量是一个好主意。存在许多标记化工具。在计算文本中的标记时,应使用与语言模型相同的标记化工具。

js-tiktoken

js-tiktokenOpenAI 创建的 BPE 标记化工具的 JavaScript 版本。
我们可以使用 tiktoken 通过 TokenTextSplitter 估算使用的标记数量。对于 OpenAI 模型,这可能更准确。
  1. 文本如何分割:按传入的字符分割。
  2. 块大小如何测量:通过 tiktoken 标记化工具。
npm install @langchain/textsplitters
import { TokenTextSplitter } from "@langchain/textsplitters";
import { readFileSync } from "fs";

// 示例:读取长文档
const stateOfTheUnion = readFileSync("state_of_the_union.txt", "utf8");
要使用 TokenTextSplitter 进行分割,然后使用 tiktoken 合并块,请在初始化 TokenTextSplitter 时传入 encodingName(例如 cl100k_base)。请注意,此方法的分割结果可能大于 tiktoken 标记化工具测量的块大小。
import { TokenTextSplitter } from "@langchain/textsplitters";

// 示例:使用 cl100k_base 编码
const splitter = new TokenTextSplitter({ encodingName: "cl100k_base", chunkSize: 10, chunkOverlap: 0 });

const texts = splitter.splitText(stateOfTheUnion);
console.log(texts[0]);
议长女士、副总统女士、第一夫人和第二先生。国会议员和内阁成员。最高法院大法官。我的美国同胞们。

去年,COVID-19 使我们分离。今年我们终于再次相聚。

今晚,我们以民主党人、共和党人和独立人士的身份相聚。但最重要的是,作为美国人。

肩负着对彼此、对美国人民、对宪法的责任。