
这个工具解决什么问题
做 AI 相关的活儿,账单往往是在月末才看到的。一段两千字的产品说明、一次把二十份合同粘进对话框、一个每轮都要带上历史记录的对话循环——发出去之前,没人说得清这要花多少 token。等发现超了,损失有两种:一是账单超预算,二是上下文超限,接口直接报错,前面白跑一遍。想自己算也不难,装个分词器库就能算,但为了偶尔算一次去配环境、下词表,多数人懒得动。
- 原来的做法:装 tiktoken 之类的分词器库,写几行代码跑一遍;或者粘到在线工具上——中文估不准,还不能一次看多段。
- 用这个工具:双击打开一个 html 文件,把文本粘进去,立刻看到估算 token、上下文占用百分比、成本和逐段明细,中英文混排、emoji、代码都能算。
- 省下来的:从「配环境 + 写脚本」变成「粘贴 + 看一眼」,单次省掉十几分钟;更重要的是发出去之前就知道会不会爆,不用等报错。
技术实现
这是个本地估算器,选型和它的用途直接相关:用户只是偶尔要算一次 token,为了这个去装 Python 运行时、或者下载几十兆的桌面壳,成本都不合理。所以做成单个 html 文件,双击就用,还能直接收藏。真正的技术活不在界面,而在估算规则——这里没有加载任何模型的官方词表,全部系数都是用 OpenAI 官方分词器在真实语料上实测标定出来的。
- 按字符类别分段,而不是加载全量词表:cl100k 的合并规则表约十万条,内嵌进来文件要十几兆,与「单文件、离线」直接冲突。改成把文本切成 7 类连续片段(汉字、拉丁词、数字、emoji、空白、符号、撇号并入单词),每类用一条实测折算规则。代价是给不出精确值,收益是文件不到 50KB 且完全离线。
- 系数全部由官方分词器实测标定,不是经验值:汉字系数取自 1807 个汉字、17 篇不同文体(说明文 / 合同 / 口语 / 技术文档)的实测:cl100k 为 1.06 token/字,o200k 为 0.74。英文取 2226 个英文单词统计,发现「词前带一个空格」时几乎恒为 1 个 token、与词长基本无关。符号连排每种长度取 300 组随机符号测量,拟合出 0.67n+0.06。
- 空白的处理是最容易被忽略的一块:实测发现连续换行(\n、\n\n、\n\n\n)在 cl100k 里都只占 1 个 token,而「换行 + 行首缩进」要占 2 个;24 个连续空格占 1 个。代码和 Markdown 文本的误差主要来自这类细节,处理对了,代码类样本的偏差从 +40% 降到 +13%。
- 渲染安全:用户文本一律走 textContent:粘贴进来的内容可能自带 HTML 标签甚至脚本。界面上所有结果(分段预览、模型对照表、校准提示)都用 createElement + textContent 写入,不用 innerHTML 拼接用户数据,从根上避免把粘贴内容当代码执行。
- 性能:单次线性扫描 + 输入防抖 + 渲染上限:一次估算只对文本做一遍线性扫描,不回溯。输入框绑定 180ms 防抖,几十万字的文本也不会让界面卡顿;分段表最多渲染前 300 行(超出提示导出 CSV),避免超长文本把 DOM 撑爆。
- 精度可自证,而不是自说自话:工程里带了一套对标脚本,把估算内核抽出来与官方分词器逐段比对。在 26 段混合语料上,cl100k 档位平均绝对误差 5.7%、o200k 档位 6.6%,单段最差 16.9%。这些数字是跑出来的,脚本可以重跑复核。
技术栈:单文件 HTML、原生 JavaScript(无框架)、内联 CSS(浅色 / 深色双主题)、零依赖 / 零安装 / 不联网
已知局限:没有加载任何模型的官方词表,给不出精确值,只能给量级;汉字折算系数在不同文体间天然有波动(实测区间 0.90~1.19 token/字),这是 BPE 的固有性质,不加载完整词表消不掉;Claude、Gemini 与国产模型的档位是经验折算而非实测,界面上已如实标注。
操作教程
- 打开工具
解压后双击「文本Token数估算器.html」,系统会用它默认的浏览器打开。
预期结果:看到左右两栏界面,输入框里已经载入一段中英混排的示例,右侧直接显示估算结果。 - 选目标模型
在左侧「模型与单价」里从下拉框选你实际在用的模型档位。
预期结果:上下文窗口和示例单价自动跟着切换;「估算结果」和「各模型对照」同步刷新。 - 填你实际在用的单价
输入每百万 token 的输入价与输出价(预填的是示例值,可直接改)。
预期结果:「成本估算」区块立刻按你的单价重算,显示输入成本、输出成本与合计。 - 粘贴要估算的文本
把文本粘到左侧输入框,直接覆盖示例内容即可(Ctrl+A 全选后粘贴)。
预期结果:右侧的 token 数、字符/汉字/单词数、上下文占用进度条实时更新,无需点任何按钮。 - 拆开看是哪一段太长
在「分段统计」里把分段方式切成「按空行分段」或「按行分段」,超长阈值按需调整。
预期结果:表格逐段列出字符数、token 数与占比;超过阈值的段整行标红,一眼看出该压哪一段。 - 导出或复制结果
点「导出分段 CSV」拿到逐段明细,或点「复制估算结果」把汇总贴进聊天窗口、工单或文档。
预期结果:CSV 带 UTF-8 BOM,Excel 双击打开不乱码;复制内容包含模型档位、token 数、上下文占用与成本。 - (可选)用官方数据校准
把官方接口返回的真实 token 数填进「误差校准」。
预期结果:工具算出本次高估或低估了多少,并给出修正系数;同类文本测几次取平均,估算会更贴合你的语料。
常见问题
技术实现与后续维护
这个工具的核心是那套估算规则:7 类字符分段 + 一组实测标定出来的折算系数,全部写在页面内联的脚本里,不依赖任何外部库,因此不存在依赖过期的问题。它的能力边界很清楚——判断量级够用,要精确值就得靠官方分词器。工程里同时带了标定脚本与回归测试:改任何一个系数之后,可以重跑一次,立刻看到 26 段混合语料的平均误差有没有变差,避免「凭感觉调参数」。
技术构成:
单文件 HTML—— 样式、界面与估算内核全部内联在一个 html 文件里,双击即用,不加载任何外部资源原生 JavaScript 估算内核—— 7 类字符分段 + 实测标定折算规则,无框架、无第三方库,可独立运行内联 CSS 双主题—— 浅色 / 深色两套 CSS 变量,跟随系统偏好并支持手动切换
运行环境:
无需编译、无需安装任何运行环境。任何带现代浏览器的系统(Windows / macOS / Linux)双击 html 文件即可使用;推荐近两年的 Chrome、Edge、Firefox 或 Safari。
可扩展方向:
- 新增模型档位:内置档位表是数据驱动的,加一条即可,界面下拉与对照表会自动带上
- 接入真实分词器:可选用 WebAssembly 版分词器做精确计算,不可用时回落到现有的估算逻辑
- 批量估算:把分段统计扩展成「导入 txt / csv,逐行估算并导出」
- 中文分词增强:内置常用词表,把「两字合一 token」从平均系数升级为按词判断
本工具免费提供使用,但不对外分发源码。如果你需要在本工具基础上做功能调整、对接内部系统或长期维护,可以联系我们做二次开发,源码与工程文档可在定制合作中一并交付。
需要其它功能?可以定制
这个工具只做一件事:调 AI 接口前不知道这段文本要花多少 token,成本算不准、超长还得截断。如果你的场景还需要别的处理,可以联系我们做二次开发,按你的实际数据格式和流程定制。
常见的定制需求:
- 接入你们内部维护的模型单价表,按实际账单口径算成本
- 批量估算整个文件夹里的文稿,出一张「文件 → token → 成本」的汇总表
- 改造成带团队用量统计的网页,接你们自己的后端接口
- 做成浏览器扩展,选中网页文字就地估算
- 联系方式:邮箱/微信见站内「联系我们」页面,或在本文下方留言
- 定制说明:请附上你的数据样例(脱敏即可)和期望结果,方便快速评估工作量
- 交付形式:定制项目可交付可执行程序,按需一并交付源码与工程文档,支持长期维护
使用说明与免责声明
- 本工具在本地运行,不联网、不上传任何数据到服务器。
- 涉及文件改写的功能,请在使用前备份原始文件。
- 软件完全免费,可自由使用与转发,请勿用于倒卖。
- 因误操作造成的数据问题请自行承担。
本工具的估算结果是参考量级,不构成计费依据;实际 token 数与费用请以服务商接口返回的 usage 字段和账单为准。

