Skip to content

Reduce 60% token usage with one line of code.一行代码降低60%的token量

License

Notifications You must be signed in to change notification settings

devsneed/tokenless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

tokenless

English | 中文

一行代码降低60%的token量。

1. 快速开始

目前支持 JavaScript、Python、Java 三种语言。

JavaScript

npm install tokenless
import{tokenless}from'tokenless';constresult=tokenless(data);

详细文档:js/README.md

Python

pip install tokenless
fromtokenlessimporttokenlessresult=tokenless(data)

详细文档:python/README.md

Java

<dependency> <groupId>io.github.tokenless</groupId> <artifactId>tokenless</artifactId> <version>1.0.0</version> </dependency>
importio.github.tokenless.Tokenless; Stringresult = Tokenless.tokenless(data);

详细文档:java/README.md

2. 实现原理

提供一个数据格式或者通信协议,将Markdown格式转换成tokenless格式,从而降低token数量。

现在大模型LLM都是通过API进行调用,传输的数据都是JSON和Markdown格式,这种格式特别适合给人类阅读,但实际的业务场景中,绝大多数数据是通过应用程序的API和大模型交互的,这时候可以去掉特殊格式的字符,可以降低token数量,而不改变原文的意思。

3. 设计目标

  • 准确性:不能改变原文的意思
  • 实用性:简单好用,现有项目引入就可以无痛使用
  • 抓住主要矛盾:优先解决最主要的问题,如表格数据等
  • 通用性:不同格式可以混和处理

4. 转换规则

4.1 表格类数据处理

将对象数组转成类似CSV格式,首行为表头。

原始:

[{"name": "张三", "age": 25, "city": "北京"},{"name": "李四", "age": 30, "city": "上海"},{"name": "王五", "age": 28, "city": "广州"} ]

转换后:

name,age,city 张三,25,北京 李四,30,上海 王五,28,广州 

token变化:原始约55 tokens → 转换后约18 tokens,节省67%

4.2 JSON格式处理

将JSON转成简化版YAML格式:去掉冒号后的空格,缩进改成一个空格。

原始:

{"user":{"name": "张三", "age": 25, "address":{"city": "北京", "street": "长安街" } }, "active": true }

转换后:

user name:张三 age:25 address city:北京 street:长安街 active:1 

token变化:原始约45 tokens → 转换后约18 tokens,节省60%

与标准YAML的区别:

对比项标准YAMLtokenless
键值分隔: (冒号+空格):(仅冒号)
缩进2空格1空格
布尔值true/false1/0
对象标识key: 后换行key 后换行

4.3 嵌套数组处理

原始:

{"departments": [{"name": "研发部", "employees": [{"name": "张三", "role": "前端"},{"name": "李四", "role": "后端"} ] } ] }

转换后:

departments - name:研发部 employees name,role 张三,前端 李四,后端 

token变化:原始约50 tokens → 转换后约20 tokens,节省60%

说明:用 - 表示数组元素,叶子层的对象数组转CSV格式。

4.4 Markdown格式处理

处理项原始转换后节省
标题格式# 标题标题50%
加粗斜体**重点**重点33%
分割线---换行符37%
多余空白多个换行/空格单个33%
表格Markdown表格CSV格式57%

5. 预期效果

  • JSON格式:压缩率约 50-60%
  • Markdown格式:压缩率约 30-50%

6. 参与贡献

这是一个开放的项目,希望大家集思广益,共同优化tokenless格式规范和SDK实现。

欢迎提交Issue和PR,一起探索更高效的token压缩方案。

7. 许可证

MIT

About

Reduce 60% token usage with one line of code.一行代码降低60%的token量

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published