การเรียนรู้ TOON CLI

คลีไอ
ตูน

หากคุณเคยทำงานกับ Large Language Models (LLM) คุณจะรู้ว่า JSON เป็นภาษากลางของการแลกเปลี่ยนข้อมูล อย่างไรก็ตาม คุณยังทราบด้วยว่า JSON เป็นที่รู้จักในเรื่อง "ช่างพูด" วงเล็บปีกกา เครื่องหมายคำพูด และคีย์ที่ซ้ำกันทั้งหมดกินหน้าต่างบริบทของคุณ เพิ่มเวลาแฝง และเพิ่มต้นทุน API

นี่คือจุดที่ TOON (สัญลักษณ์เชิงวัตถุ) โดดเด่น แม้ว่าไลบรารี TypeScript จะดีสำหรับโค้ดแอปพลิเคชัน แต่บางครั้งคุณเพียงแค่ต้องทำงานให้เสร็จอย่างรวดเร็วในเทอร์มินัล ไม่ว่าคุณจะแก้ไขจุดบกพร่องของพรอมต์ เตรียมชุดข้อมูล หรือเพียงอยากรู้ว่าคุณสามารถประหยัดเงินได้ด้วยโทเค็น CLI @toon-format/toon คือเพื่อนที่ดีที่สุดคนใหม่ของคุณ

ในคู่มือนี้ เราจะดูวิธีใช้ประโยชน์จากอินเทอร์เฟซบรรทัดคำสั่ง TOON เพื่อรวมการปรับข้อมูลให้เหมาะสมเข้ากับเวิร์กโฟลว์เชลล์ของคุณโดยตรง

กำลังตั้งค่า

หนึ่งในสิ่งที่ดีที่สุดเกี่ยวกับเครื่องมือ JavaScript สมัยใหม่ก็คือคุณไม่จำเป็นต้อง "ติดตั้ง" อะไรเลยเพื่อเริ่มต้น หากคุณต้องการลองใช้ TOON ในไฟล์เดียว คุณสามารถใช้ npx เพื่อเรียกใช้ไบนารี่ได้โดยตรง:

npx @toon-format/cli input.json -o เอาท์พุต.toon 
-

อย่างไรก็ตาม หากคุณวางแผนที่จะใช้สิ่งนี้บ่อยๆ—และเมื่อคุณเห็นการประหยัดโทเค็นแล้ว คุณก็มีแนวโน้มว่าจะใช้—การติดตั้งทั่วโลกคือหนทางไป มันช่วยให้คุณเข้าถึงคำสั่ง toon สั้นๆ ได้ทุกที่ในระบบของคุณ

ติดตั้ง npm -g @toon-format/cli 
#หรือ 
pnpm เพิ่ม -g @toon-format/cli 
-

เมื่อติดตั้งแล้ว คุณก็พร้อมที่จะเริ่มย่อขนาดข้อมูลของคุณแล้ว

ความมหัศจรรย์ของการตรวจจับอัตโนมัติ

TOON CLI ได้รับการออกแบบมาให้ชาญฉลาดเกี่ยวกับสิ่งที่คุณกำลังพยายามทำ คุณแทบไม่ต้องบอกให้เข้ารหัสหรือถอดรหัสอย่างชัดเจน มันจะดูที่นามสกุลไฟล์ของคุณเพื่อตัดสินใจ

หากคุณป้อนไฟล์ .json ให้กับมัน ระบบจะถือว่าคุณต้องการเข้ารหัสเป็น TOON หากคุณระบุไฟล์ .toon ไฟล์นั้นจะเปลี่ยนเป็นโหมดถอดรหัสเพื่อคืน JSON ให้กับคุณ

# เข้ารหัสเป็น TOON โดยอัตโนมัติ 
toon data.json -o บีบอัด.toon 

# ถอดรหัสเป็น JSON โดยอัตโนมัติ 
toon บีบอัด toon -o Restored.json 
-

แต่สิ่งที่ CLI พิสูจน์คุณค่าของมันจริงๆ นั้นอยู่ใน "ปรัชญาของ Unix" ซึ่งเป็นเครื่องมือเล็กๆ ที่เชื่อมต่อกันอย่างหลวมๆ เนื่องจาก TOON CLI อ่านจากอินพุตมาตรฐาน (stdin) และเขียนไปยังเอาต์พุตมาตรฐาน (stdout) คุณจึงสามารถไพพ์ข้อมูลผ่านอินพุตได้โดยตรง

# ไปป์ JSON ลงใน TOON โดยตรง 
cat large-dataset.json | ตูน > data.toon 

# ก้องวัตถุอย่างรวดเร็วเพื่อดูว่ามันมีลักษณะอย่างไรใน TOON 
echo '{"name": "Ada", "role": "admin"}' | ตูน 
-

เมื่อคุณทำการไพพ์ข้อมูลผ่าน stdin CLI จะมีค่าเริ่มต้นเป็นโหมด เข้ารหัส หากคุณต้องการถอดรหัสกระแสข้อมูล TOON ที่มาจากกระบวนการอื่น เพียงเพิ่มแฟล็ก --decode (หรือ -d)

การวิเคราะห์การออมโทเค็น

การปรับรูปแบบข้อมูลให้เหมาะสมมักเกี่ยวกับการคาดเดาเกม "ถ้าฉันลบช่องว่าง ฉันจะประหยัดเงินได้เท่าไหร่" "จะเป็นอย่างไรถ้าฉันเปลี่ยนมาใช้ YAML"

TOON CLI กำจัดการคาดเดาด้วยแฟล็ก --stats เมื่อเข้ารหัส ตัวเลือกนี้จะคำนวณจำนวนโทเค็นโดยประมาณและแสดงจำนวนเงินที่คุณประหยัดได้ทันที นี่เป็นสิ่งล้ำค่าเมื่อคุณตั้งงบประมาณสำหรับการโทร LLM ในปริมาณมาก

toon context.json --stats 
-

คุณอาจเห็นผลลัพธ์ที่ระบุขนาดที่ลดลง 30% หรือ 40% นั่นไม่ใช่แค่พื้นที่ดิสก์เท่านั้น นั่นคือเวลาแฝงลดลง 40% และต้นทุนโทเค็นอินพุตลดลง 40%

การปรับแต่งขั้นสูง: ตัวคั่นและการจัดรูปแบบ

ตามค่าเริ่มต้น TOON จะใช้เครื่องหมายจุลภาคเพื่อแยกรายการอาร์เรย์ คล้ายกับ JSON อย่างไรก็ตาม โทเค็น LLM ที่แตกต่างกันมีพฤติกรรมแตกต่างออกไปเมื่อมีเครื่องหมายวรรคตอน บางครั้งอักขระแท็บหรือไปป์ (|) มีประสิทธิภาพด้านโทเค็นมากกว่าเครื่องหมายจุลภาค

CLI ช่วยให้คุณสามารถสลับตัวคั่นได้ทันที หากคุณกำลังจัดการกับข้อมูลแบบตาราง การสลับไปใช้ตัวคั่นแท็บจะทำให้เอาต์พุตดูสะอาดตาและประมวลผลได้อย่างมีประสิทธิภาพมากขึ้น

สำหรับรายการผลิตภัณฑ์ การดำเนินการนี้จะแปลงผลลัพธ์จากรายการที่คั่นด้วยเครื่องหมายจุลภาคให้เป็นโครงสร้างที่คั่นด้วยแท็บที่สะอาดตา ซึ่งดูเหมือนเกือบจะเป็นสเปรดชีต ซึ่งหลายรุ่นแยกวิเคราะห์ได้ดีเป็นพิเศษ

# ใช้แท็บสำหรับรายการอาร์เรย์ 
toon items.json --ตัวคั่น "\t" -o items.toon 
-

:::ทิป เคล็ดลับสำหรับมือโปร: ตัวคั่นแท็บมักจะลดความจำเป็นในการหลีกเลี่ยงเครื่องหมายคำพูด และอาจส่งผลให้มีการเข้ารหัสข้อมูลตัวเลขได้ดีขึ้น หากคุณกำลังประมวลผลชุดข้อมูลขนาดใหญ่ ให้ลองใช้ --delimiter "\t" เพื่อบีบประสิทธิภาพออกให้หมด

อัดโครงสร้างด้วยการพับกุญแจ

หนึ่งในคุณสมบัติใหม่ (เปิดตัวในข้อมูลจำเพาะ v1.5) ที่มีอยู่ใน CLI คือ การพับคีย์ ข้อมูล JSON มักจะซ้อนกันแบบลึก โดยมีคีย์ตัวแทรก เช่น data.response.items ที่เพิ่มความลึกของโครงสร้างโดยไม่เพิ่มความหมาย

CLI ช่วยให้คุณสามารถ "พับ" คีย์ที่ซ้อนกันเหล่านี้ลงในพาธที่มีจุดเดียว ซึ่งลดลำดับชั้นลงและบันทึกโทเค็นในการเยื้องและเครื่องหมายปีกกา

toon deep-structural.json --กุญแจพับปลอดภัย -o flat.toon 
-

สิ่งนี้จะแปลงวัตถุที่ซ้อนกัน:

{ "ผู้ใช้": { "โปรไฟล์": { "id": 1 } } } 
-

เป็นการเป็นตัวแทน TOON ที่กระชับ:

user.profile.id: 1 
-

หากคุณต้องการแปลงกลับเป็น JSON แบบเต็มในภายหลัง คุณสามารถใช้แฟล็ก --expand-paths safe ในระหว่างการถอดรหัสเพื่อสร้างโครงสร้าง Deep Object ใหม่ได้อย่างสมบูรณ์

บูรณาการเข้ากับไปป์ไลน์

พลังที่แท้จริงของ TOON CLI จะเกิดขึ้นเมื่อคุณเชื่อมโยงเข้ากับเครื่องมืออื่นๆ เช่น curl และ jq คุณสามารถดึงข้อมูลจาก API กรองข้อมูลตามที่จำเป็น และแปลงเป็น TOON ได้ในบรรทัดเดียว พร้อมที่จะวางลงในพร้อมท์หรือส่งไปยังจุดสิ้นสุดการอนุมาน

ในเวิร์กโฟลว์นี้ คุณจะดึงข้อมูล แยกเฉพาะผู้ใช้ที่ใช้งานอยู่ แปลงเป็นรูปแบบ TOON ที่คั่นด้วยไปป์ และรับรายงานสถิติเกี่ยวกับจำนวนโทเค็นที่คุณเพิ่งบันทึก

curl -s https://api.example.com/users \ 
- jq '.data.active_users' \ 
- toon --stats --ตัวคั่น '|' 
-

สรุป

@toon-format/cli เป็นมากกว่าตัวแปลงไฟล์ เป็นเข็มขัดอเนกประสงค์สำหรับยุค LLM ด้วยการย้ายการประมวลผลข้อมูลไปยังบรรทัดคำสั่ง คุณสามารถวนซ้ำได้เร็วขึ้น แสดงภาพการเพิ่มประสิทธิภาพทันที และผสานรวมรูปแบบที่มีประสิทธิภาพโทเค็นเข้ากับเวิร์กโฟลว์ทางวิศวกรรมที่มีอยู่ของคุณ

ไม่ว่าคุณกำลังเตรียมเอกสาร RAG (Retrieval-Augmented Generation) หรือเพียงแค่พยายามปรับ JSON Blob ขนาดใหญ่ลงในหน้าต่างบริบทขนาดเล็ก ให้ลองใช้ CLI ดู งบประมาณโทเค็นของคุณจะขอบคุณ