> ## Documentation Index
> Fetch the complete documentation index at: https://langchain-zh.cn/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="edit">
    [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/i18n\zh-CN\oss\integrations\splitters\split_by_token.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).
  </Callout>

  <Callout icon="terminal-2">
    [Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers.
  </Callout>
</div>
