一、关于LangChat Pro
LangChat Pro 是基于Java生态构建的企业级AIGC应用开发平台商业版,为企业提供完整的AI大模型集成解决方案。基于Spring Boot 3和Vue 3构建,支持快速构建智能知识库、多模态AI应用和智能工作流,助力企业实现AI驱动的数字化转型。

🚀 LangChat Pro 新特性:Toon格式,让AI对话更省成本!

在AI应用开发中,我们经常需要将结构化数据传递给大语言模型(LLM)。传统的JSON格式虽然通用,但在token消耗上却相当"奢侈"。今天,我们要为大家介绍LangChat Pro中集成的Toon(Token-Oriented Object Notation)格式——一个专为LLM优化的数据表示格式,可以帮你节省30-60%的token成本!
📊 为什么需要Toon?
随着AI技术的普及,虽然模型价格在下降,但token仍然需要花钱。当你需要向LLM传递大量结构化数据时,传统的JSON格式会产生大量冗余的token消耗。
举个例子,同样的数据:
JSON格式(26个token):
{
"users": [
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "user" }
]
}
Toon格式(仅需12个token):
users[2]{id,name,role}:
1,Alice,admin
2,Bob,user
可以看到,Toon格式在保持可读性的同时,大幅减少了token消耗。对于需要频繁与LLM交互的企业应用来说,这能显著降低AI调用成本。
🎯 Toon格式的核心优势
- Token高效:比JSON节省30-60%的token,直接降低AI调用成本
- 人类可读:结合了YAML的缩进结构和CSV的表格格式,易于理解
- 结构清晰:特别适合处理统一结构的复杂对象数组
- 类型安全:自动处理Java类型转换,支持日期、数字、集合等
💻 在LangChat中使用Toon
LangChat Pro基于Java生态,集成了JToon库,可以轻松将各种数据格式转换为Toon格式。下面我们通过4个实际应用场景来展示Toon的强大能力。
官方仓库(基于JavaScript):https://github.com/toon-format/toon
Java版本:https://github.com/felipestanzani/JToon
引入JToon依赖:
<dependency>
<groupId>com.felipestanzani</groupId>
<artifactId>jtoon</artifactId>
<version>0.1.3</version>
</dependency>
场景一:完全结构化的数据
在企业应用中,我们经常需要传递结构化的业务对象。Toon格式特别适合处理这种场景。
示例代码:
import com.felipestanzani.jtoon.JToon;
import com.felipestanzani.jtoon.EncodeOptions;
import com.felipestanzani.jtoon.Delimiter;
// 定义业务对象
record Item(String sku, int qty, double price) {}
record Order(List<String> tags, List<Item> items) {}
// 创建数据
Item item1 = new Item("A1", 2, 9.99);
Item item2 = new Item("B2", 1, 14.5);
Order order = new Order(
List.of("urgent", "vip", "express"),
List.of(item1, item2)
);
// 转换为Toon格式
String toon = JToon.encode(order,
new EncodeOptions(2, Delimiter.COMMA, true));
System.out.println(toon);
输出结果:
tags[#3]: urgent,vip,express
items[#2]{sku,qty,price}:
A1,2,9.99
B2,1,14.5
应用场景:
- 订单管理系统:传递订单详情、商品列表
- 用户管理系统:批量传递用户信息、权限数据
- 库存管理:传递商品库存、仓库信息
场景二:代码JSON对象数据
很多时候,我们的数据已经是JSON格式(比如从API获取、配置文件读取等)。Toon可以直接将JSON字符串转换为更高效的格式。
示例代码:
import com.felipestanzani.jtoon.JToon;
// 从API或配置文件获取的JSON数据
String json = """
{
"user": {
"id": 123,
"name": "张三",
"email": "zhangsan@example.com",
"tags": ["vip", "active", "premium"],
"preferences": {
"theme": "dark",
"language": "zh-CN"
}
}
}
""";
// 直接转换JSON为Toon格式
String toon = JToon.encodeJson(json);
System.out.println(toon);
输出结果:
user:
id: 123
name: 张三
email: zhangsan@example.com
tags[3]: vip,active,premium
preferences:
theme: dark
language: zh-CN
应用场景:
- API数据转换:将从第三方API获取的JSON数据优化后传递给LLM
- 配置文件处理:将应用配置转换为Toon格式供AI分析
- 数据迁移:在系统间传递数据时减少传输成本
场景三:Excel表格数据
Excel是企业中最常用的数据格式之一。在LangChat中,我们可以轻松读取Excel文件并转换为Toon格式。
示例代码:
import cn.hutool.poi.excel.ExcelUtil;
import com.felipestanzani.jtoon.JToon;
import com.felipestanzani.jtoon.EncodeOptions;
import com.felipestanzani.jtoon.Delimiter;
import java.io.File;
import java.util.List;
// 读取Excel文件
File excelFile = new File("/path/to/员工信息.xlsx");
List<List<Object>> excelData = ExcelUtil.getReader(excelFile).read();
// 转换为Toon格式
String toon = JToon.encode(excelData,
new EncodeOptions(2, Delimiter.COMMA, true));
System.out.println(toon);
输出结果(假设Excel包含员工信息):
[#11]:
- [#3]: 姓名,收入(元),部门
- [#3]: 张三,12000,技术部
- [#3]: 李四,15000,销售部
- [#3]: 王五,13500,技术部
- [#3]: 赵六,11000,人事部
- [#3]: 陈七,16800,销售部
- [#3]: 刘八,14200,财务部
- [#3]: 孙九,12500,技术部
- [#3]: 周十,15600,市场部
- [#3]: 吴一,13200,销售部
- [#3]: 郑二,14800,技术部
应用场景:
- 数据分析:将Excel报表数据传递给AI进行分析和总结
- 数据导入:批量导入员工、客户、产品等信息
- 报表生成:将Excel数据转换为Toon后,让AI生成分析报告
场景四:SQL数据表数据
从数据库查询出的结果集,也可以轻松转换为Toon格式,特别适合Text2SQL场景。
示例代码:
import com.felipestanzani.jtoon.JToon;
import com.felipestanzani.jtoon.EncodeOptions;
import com.felipestanzani.jtoon.Delimiter;
import java.sql.*;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
// 假设从数据库查询出的结果
List<Map<String, Object>> queryResults = new ArrayList<>();
// 模拟查询结果
Map<String, Object> row1 = new LinkedHashMap<>();
row1.put("id", 1);
row1.put("product_name", "笔记本电脑");
row1.put("price", 5999.00);
row1.put("stock", 50);
row1.put("category", "电子产品");
Map<String, Object> row2 = new LinkedHashMap<>();
row2.put("id", 2);
row2.put("product_name", "无线鼠标");
row2.put("price", 99.00);
row2.put("stock", 200);
row2.put("category", "电子产品");
queryResults.add(row1);
queryResults.add(row2);
// 转换为Toon格式
String toon = JToon.encode(queryResults,
new EncodeOptions(2, Delimiter.COMMA, true));
System.out.println(toon);
输出结果:
[#2]{id,product_name,price,stock,category}:
1,笔记本电脑,5999.0,50,电子产品
2,无线鼠标,99.0,200,电子产品
应用场景:
- Text2SQL功能:将SQL查询结果转换为Toon格式,让用户用自然语言查询数据库
- 数据报表:将数据库查询结果传递给AI生成业务分析
- 数据同步:在不同系统间传递数据库记录时减少传输量
🔧 Toon高级配置
JToon提供了灵活的配置选项,可以根据不同场景优化输出:
自定义分隔符
// 使用Tab分隔符(更节省token)
EncodeOptions tabOptions = new EncodeOptions(2, Delimiter.TAB, true);
String toon = JToon.encode(data, tabOptions);
// 使用Pipe分隔符
EncodeOptions pipeOptions = new EncodeOptions(2, Delimiter.PIPE, true);
String toon = JToon.encode(data, pipeOptions);
长度标记
// 启用长度标记(使用#前缀)
EncodeOptions withMarker = new EncodeOptions(2, Delimiter.COMMA, true);
// 输出: tags[#3]: a,b,c
// 禁用长度标记
EncodeOptions withoutMarker = new EncodeOptions(2, Delimiter.COMMA, false);
// 输出: tags[3]: a,b,c
📈 实际效果对比
根据官方基准测试,Toon格式在不同数据集上的表现:
| 数据格式 | Token数量 | 节省比例 |
|---|---|---|
| JSON | 26,379 | - |
| XML | 30,494 | - |
| Toon | 13,418 | 49.1% (vs JSON) |
对于需要频繁调用LLM的企业应用,这个节省比例意味着直接的成本降低。
🎓 最佳实践
- 统一结构数据优先:Toon最适合处理结构统一的对象数组
- 批量数据处理:在处理大量数据时,Toon的优势更明显
- 结合LangChat的Text2SQL:将数据库查询结果转换为Toon格式,提升查询效率
- API数据优化:将从第三方API获取的JSON数据转换为Toon后再传递给LLM
🔮 在LangChat Pro中的应用
在LangChat Pro中,Toon格式已经被集成到多个核心功能中:
- 智能知识库:将知识库文档转换为Toon格式,减少RAG检索的token消耗
- Text2SQL:优化数据库查询结果的表示,提升自然语言查询效率
- 工作流引擎:在工作流节点间传递数据时使用Toon格式,降低传输成本
- Agent智能体:在Agent处理结构化数据时自动使用Toon格式
总结
Toon格式是LangChat Pro中一个看似简单但非常实用的特性。它通过优化数据表示方式,帮助企业显著降低AI调用的token成本。无论是处理结构化业务数据、Excel表格、数据库查询结果,还是API返回的JSON数据,Toon都能帮你以更少的token传递相同的信息。
在AI成本日益成为企业关注点的今天,Toon格式这样的优化技术,正是LangChat Pro为企业提供的价值所在。
关于LangChat Pro
LangChat Pro 是基于Java生态(Spring Boot 3 + Vue 3)构建的企业级AIGC应用开发平台商业版,为企业提供完整的AI大模型集成解决方案。

核心能力:
- 🤖 Agent智能体应用: 快速构建各类AI智能应用
- 🔄 Workflows工作流引擎: 可视化编排复杂业务流程
- 📚 智能知识库: 基于RAG的企业知识管理
- 🗄️ Text2SQL: 自然语言查询数据库(商业版功能)
- 📊 模型消耗监控: 精细化AI成本管理(商业版功能)
- 🎨 多模态AI能力: 文生图、OCR、语音识别等
- 🔌 开放集成: MCP服务、自定义插件、第三方平台
技术优势:
- ✅ 纯Java技术栈,与企业现有系统无缝集成
- ✅ 支持国内外主流大模型接入
- ✅ 企业级权限管理和安全保障
- ✅ 完善的技术支持和服务
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

817

被折叠的 条评论
为什么被折叠?



