aardio 文档
aardio 范例: 大模型 token 数快速估算工具
调用 transformers 计算 token 数
//调用 transformers 计算 token 数: https://www.aardio.com/zh-cn/doc/example/Languages/Python/Python%203.x/tokenizer.html
import win.ui;
/*DSG{{*/
var winform = win.form(text="大模型 token 数快速估算工具";right=759;bottom=469)
winform.add(
edit={cls="richedit";left=12;top=9;right=747;bottom=418;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1};
radioGpt={cls="radiobutton";text="GPT";left=465;top=428;right=532;bottom=456;z=3};
radioMmseg={cls="radiobutton";text="通用";left=554;top=428;right=624;bottom=454;checked=1;z=4};
richedit={cls="richedit";text="0 tokens";left=18;top=432;right=393;bottom=451;db=1;dl=1;dr=1;multiline=1;transparent=1;z=2}
)
/*}}*/
import mmseg;
import string.gpt;
import win.debounce;
import math.format;
winform.edit.onChange = win.debounce( function(){
var str = winform.edit.text;
if(!#str) return;
var tokens;
if(winform.radioGpt.checked){
tokens = string.gpt.tokens(winform.edit.text);
}
else{
tokens = mmseg.llmTokens(winform.edit.text);
}
winform.richedit.text = math.format.size(tokens,"≈ %s%s tokens");
},500);
winform.radioMmseg.oncommand = winform.edit.onChange;
winform.radioGpt.oncommand = winform.edit.onChange;
winform.edit.limit = -1;
winform.edit.enablePopMenu();
winform.show();
win.loopMessage();
/*
// 调用 Gemini 接口计算 token 数
var http = web.rest.jsonClient();
http.setHeaders({"x-goog-api-key":'api_key'});
var gemini = http.api("https://generativelanguage.googleapis.com/v1beta/{resource}/{model}:{method}");
var resp,err = gemini.models["gemini-2.5-flash"].countTokens({
contents = {
{
parts = {
{text = prompt}
}
}
},
});
var totalTokens = resp[["totalTokens"]]
*/
/*
// 调用 GLM 接口计算 token 数
import web.rest.jsonClient;
var http = web.rest.jsonClient();
http.setAuthToken('api_key');
var glm = http.api("https://open.bigmodel.cn/api/paas/v4");
var resp,err = glm.tokenizer({
"model": "glm-4-plus",
"messages": [
{
"role": "user",
"content": prompt
}
]
})
var totalTokens = resp[["usage"]][["prompt_tokens"]]
*/
Markdown 格式