> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 按令牌分割 - 文本分割器集成指南

语言模型有令牌限制。您不应超出令牌限制。因此，当您[分割文本](/oss/javascript/integrations/splitters/)为块时，计算令牌数量是一个好主意。有许多分词器。在计算文本中的令牌时，您应使用与语言模型中相同的分词器。

## js-tiktoken

<Note>
  **[js-tiktoken](https://github.com/dqbd/tiktoken) 是 `OpenAI` 创建的 `BPE` 分词器的 JavaScript 版本。**
</Note>

我们可以使用 `tiktoken` 来估算使用 [TokenTextSplitter](https://reference.langchain.com/javascript/langchain-textsplitters/TokenTextSplitter) 所使用的令牌。对于 OpenAI 模型，它可能更准确。

1. 文本如何分割：按传入的字符分割。
2. 块大小如何衡量：由 `tiktoken` 分词器衡量。

<CodeGroup>
  ```bash npm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  npm install @langchain/textsplitters
  ```

  ```bash pnpm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  pnpm install @langchain/textsplitters
  ```

  ```bash yarn theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  yarn add @langchain/textsplitters
  ```

  ```bash bun theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  bun add @langchain/textsplitters
  ```
</CodeGroup>

```ts theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import { TokenTextSplitter } from "@langchain/textsplitters";
import { readFileSync } from "fs";

// 示例：读取一个长文档
const stateOfTheUnion = readFileSync("state_of_the_union.txt", "utf8");
```

要使用 [TokenTextSplitter](https://reference.langchain.com/javascript/langchain-textsplitters/TokenTextSplitter) 分割，然后用 `tiktoken` 合并块，请在初始化 [TokenTextSplitter](https://reference.langchain.com/javascript/langchain-textsplitters/TokenTextSplitter) 时传入 `encodingName`（例如 cl100k\_base）。请注意，此方法产生的分割可能大于 `tiktoken` 分词器衡量的块大小。

```ts theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
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]);
```

```text theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
议长女士，副总统女士，我们的第一夫人和第二先生。国会议员和内阁成员。最高法院大法官们。我的美国同胞们。

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

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

我们彼此之间、对美国人民、对宪法负有责任。
```

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档](/use-these-docs)通过 MCP 连接到 Claude、VSCode 等，以获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/oss/integrations/splitters/split_by_token.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
