RAG 分块计算器

10,000 Token 的文档按 512 Token 一块、重叠 64 Token 切分,共 23 块,嵌入 Token 总量 11,408,其中 12.3% 是重复内容。块数 = 1 + 向上取整((文档 Token - 块大小) ÷ (块大小 - 重叠));总量 = 文档 Token + (块数 - 1) × 重叠。

问题解决了吗?

使用方法

  1. 输入文档长度(Token 或字符数)、分块大小和重叠。想看费用,再填每百万 Token 的嵌入价格。
  2. 查看块数、需要嵌入的 Token 总量,以及因重叠而重复的 Token 数。
  3. 想看切在哪里,就粘贴真实文本。文本在浏览器里分词,并显示前几个块,重叠部分会高亮。

计算方法

块与块起点的间隔等于块大小减去重叠。文档能放进一个块时块数为 1,否则 块数 = 1 + 向上取整((文档 Token - 块大小) ÷ 间隔)。

除第一块外,每块都会重复上一块末尾的重叠 Token,所以嵌入总量 = 文档 Token + (块数 - 1) × 重叠。重复占比 = (块数 - 1) × 重叠 ÷ 总量。最后一块是剩余部分,通常更短。

字符数按每个 Token 4 个字符换算,这是 OpenAI 对英文文本给出的经验值。中文、代码和数字每字符占用的 Token 更多,要精确数字请粘贴文本。

粘贴的文本用真实的字节对编码表(js-tiktoken)在浏览器内分词。预览按与公式相同的窗口切分 Token 列表,再逐块还原成文字。固定窗口不考虑句子和段落边界;遵守边界的切分器会得到长短不一的块,数量也不同。

费用 = 嵌入 Token ÷ 1,000,000 × 你填写的每百万 Token 价格。价格请以嵌入服务商的定价页为准。

常见问题

分块大小和重叠设多少合适?

没有通用答案。常见的是几百到一千 Token 左右的块,配 10% 到 20% 的重叠。块小则匹配更精确,但要存的向量更多;块大则保留更多上下文,但匹配可能变模糊。请用自己的问题测试。

设置重叠会增加嵌入费用吗?

会,重叠部分要嵌入两次。10,000 Token 的文档按 512 Token 一块、重叠 64 Token 切分,发送的 11,408 Token 中有 1,408 个(12.3%)是重复的,比文档本身多嵌入 14.1%。

块数是精确的吗?

对这里采用的规则(固定大小的 Token 窗口)是精确的。按句子、段落或标题切分的库会产生大小不一的块,数量也不同。字符到 Token 的换算是估算。

该选哪个分词器?

选你的嵌入模型所用的那个。OpenAI 的 text-embedding-3 系列使用 cl100k_base。其他服务商的模型有自己的分词器,这里没有,数字仅作接近的参考。

我的文本会被发送出去吗?

不会。计数和预览都在浏览器内完成。分词表只从本站下载一次,文本不会上传。