常見問題
什麼是TOON(面向Token的物件表示法)?
TOON(Token-Oriented Object Notation,面向Token的物件表示法)是一種緊湊、人類可讀的資料序列化格式,專門為大型語言模型(LLM)應用設計。它的創建是為了解決使用ChatGPT、Claude、Gemini等AI模型時日益增長的Token消耗成本問題。TOON提供了一種模式感知的JSON替代方案,可以減少30-50%甚至更多的Token使用量。
為什麼在LLM提示中使用TOON而不是JSON?
在使用大型語言模型時,有幾個令人信服的理由選擇TOON而不是JSON。首先是成本降低——像OpenAI的GPT-4、Anthropic的Claude和Google的Gemini這樣的LLM API按Token使用量收費,TOON可以為結構化資料減少30-50%的Token消耗,直接降低您的API成本。
TOON格式是如何運作的?
TOON通過將重複的JSON結構轉換為更高效的表格表示來運作。關鍵洞察是,當您有一個具有相同屬性的物件陣列時,JSON會為每個物件重複所有屬性名。TOON通過在標題行中聲明一次模式來消除這種冗餘。
// JSON (89 characters)
[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}]
// TOON (42 characters, 53% smaller)
[2](id,name):
1,Alice
2,BobTOON和JSON之間的主要區別是什麼?
雖然TOON和JSON都是資料序列化格式,但它們在方法和用例上有根本區別。JSON使用冗長的鍵值對語法,其中每個物件都明確命名其所有屬性。TOON使用模式優先的方法,屬性名在標題中聲明一次,後續行只包含值。
使用TOON可以期望節省多少Token?
使用TOON的Token節省因資料結構而異,但對於具有重複模式的結構化資料,典型節省範圍為30%到60%。
TOON格式的基本語法是什麼?
TOON語法設計為最小化但富有表現力。基本構建塊是: 1)簡單的鍵值對寫成'key: value'在單獨的行上。 2)物件陣列使用標題表示法。
// Array with schema header
products[3](id,name,price):
1,Widget,9.99
2,Gadget,19.99
3,Gizmo,29.99
// Nested object
user:
name: John Doe
age: 30
address:{city: New York, zip: 10001}TOON支援哪些資料類型?
TOON支援與JSON相同的所有資料類型,確保轉換期間的完整資料保真度。
如何在ChatGPT、Claude和其他LLM中使用TOON格式?
在LLM中使用TOON非常簡單,遵循'展示而非告訴'的方法。最有效的方法是使用'toon'語言標識符將TOON資料包裝在程式碼區塊中。
// LLM Prompt Example:
Here is user data in TOON format:
users[3](id,name,email):
1,Alice,[email protected]
2,Bob,[email protected]
3,Charlie,[email protected]
Please analyze this data and respond in the same TOON format.哪些程式語言支援TOON?
TOON在許多程式語言中都有越來越多的支援,有官方和社群實現可用。
什麼時候應該使用TOON,什麼時候應該堅持使用JSON?
TOON適用於特定場景,而JSON在其他場景中仍然更好。在以下情況使用TOON:1)您正在向LLM發送結構化資料並希望減少Token成本。
TOON格式有哪些限制?
雖然TOON提供顯著的好處,但了解其限制很重要。首先,TOON針對具有一致模式的物件陣列進行了優化。
在LLM中使用TOON的最佳實踐是什麼?
為了在使用LLM時最大化TOON的好處,請遵循以下最佳實踐:1)在轉換為TOON之前始終驗證您的JSON。