Освоєння TOON CLI
Якщо ви працювали з великими мовними моделями (LLM), ви знаєте, що JSON є лінгва франка обміну даними. Однак ви також знаєте, що JSON, як відомо, «балакучий». Усі ці дужки, лапки та повторювані ключі з’їдають вікно контексту, збільшують затримку та підвищують витрати на API.
Ось де TOON (об’єктно-орієнтована нотація) сяє. Хоча бібліотека TypeScript чудово підходить для програмного коду, інколи вам просто потрібно швидко виконати роботу в терміналі. Якщо ви налагоджуєте підказку, готуєте набір даних або просто цікавитесь, скільки грошей ви можете заощадити на токенах, CLI @toon-format/toon стане вашим новим найкращим другом.
У цьому посібнику ми розглянемо, як використовувати інтерфейс командного рядка TOON для інтеграції оптимізації даних безпосередньо в робочі процеси оболонки.
Початок налаштування
Однією з найкращих переваг сучасних інструментів JavaScript є те, що вам часто не потрібно нічого "встановлювати", щоб почати. Якщо ви просто хочете спробувати TOON на одному файлі, ви можете використовувати npx, щоб запустити двійковий файл безпосередньо:
npx @toon-format/cli input.json -o output.toon
Однак, якщо ви плануєте використовувати це часто — і як тільки ви побачите економію маркерів, ви, ймовірно, це зробите — глобальна інсталяція — це шлях. Це дає вам доступ до стислої команди toon будь-де у вашій системі.
npm install -g @toon-format/cli
# або
pnpm add -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 | toon > дані.toon
# Повторіть швидкий об’єкт, щоб побачити, як він виглядає в TOON
echo '{"name": "Ada", "role": "admin"}' | мультфільм
Коли ви передаєте дані через стандартний вхід, CLI за замовчуванням використовує режим кодування. Якщо вам потрібно декодувати потік даних TOON, що надходить від іншого процесу, просто додайте прапорець --decode (або -d).
Аналіз заощаджень токенів
Оптимізація форматів даних часто стосується ігор у вгадування. "Якщо я видалю пробіли, скільки я заощаджу?" "Що, якщо я перейду на YAML?"
TOON CLI усуває здогадки за допомогою прапорця --stats. Під час кодування ця опція обчислює приблизну кількість токенів і негайно показує вам економію. Це безцінне, якщо ви плануєте витратити на великі обсяги дзвінків у LLM.
toon context.json --stats
Ви можете побачити результати, що вказують на 30% або 40% зменшення розміру. Це не просто дисковий простір; це на 40% менша затримка та на 40% нижча вартість вхідних токенів.
Розширене налаштування: роздільники та форматування
За замовчуванням TOON використовує коми для розділення елементів масиву, подібно до JSON. Однак різні токенізери LLM по-різному поводяться з пунктуацією. Іноді символ табуляції або вертикальна лінія (|) є більш ефективними, ніж кома.
CLI дозволяє міняти місцями роздільники на льоту. Якщо ви маєте справу з табличними даними, перемикання на роздільник табуляції може зробити вихід чистішим і ефективнішим.
Для списку продуктів це перетворює вихідні дані зі списку, розділеного комами, на чисту структуру, розділену вкладками, яка виглядає майже як електронна таблиця, яку багато моделей аналізують виключно добре.
# Використовуйте вкладки для елементів масиву
toon items.json --delimiter "\t" -o items.toon
::: чайові
Професійна порада. Роздільники табуляції часто зменшують потребу в екрануванні лапок і можуть сприяти кращій токенізації числових даних. Якщо ви обробляєте великі набори даних, спробуйте --delimiter "\t", щоб вичавити кожну частинку ефективності.
:::
Стиснення структури зі складанням ключа
Однією з нових функцій (представлених у специфікації v1.5), доступних у CLI, є Складання ключів. Дані JSON часто є глибоко вкладеними, з ключами-оболонками, такими як data.response.items, які додають структурної глибини без додавання сенсу.
Інтерфейс командного рядка дозволяє вам «згортати» ці вкладені ключі в один шлях із крапковими нотаціями, вирівнюючи ієрархію та зберігаючи маркери на відступах і дужках.
toon deep-structure.json --key-folding safe -o flat.toon
Це перетворює вкладені об'єкти:
{ "user": { "profile": { "id": 1 } } }
У стислій формі TOON:
user.profile.id: 1
Якщо пізніше вам знадобиться перетворити це назад на повний JSON, ви можете використати прапорець --expand-paths safe під час декодування, щоб ідеально реконструювати глибоку структуру об’єкта.
інтеграція в Pipelines
Справжня потужність TOON CLI з’являється, коли ви об’єднуєте його з іншими інструментами, такими як curl і jq. Ви можете отримати дані з API, відфільтрувати їх до найнеобхідніших і перетворити в TOON в одному рядку — готовому для вставлення в підказку або відправлення до кінцевої точки висновку.
У цьому робочому процесі ви отримуєте дані, витягуєте лише активних користувачів, перетворюєте їх у формат TOON, розділений вертикальними лініями, і отримуєте статистичний звіт про те, скільки токенів ви щойно зберегли.
curl -s https://api.example.com/users \
| jq '.data.active_users' \
| toon --stats --delimiter "|"
Резюме
@toon-format/cli — це більше, ніж просто конвертер файлів; це корисний ремінь для ери LLM. Перемістивши обробку даних у командний рядок, ви зможете виконувати ітерації швидше, миттєво візуалізувати оптимізацію та інтегрувати ефективні формати в існуючі робочі процеси розробки.
Незалежно від того, чи ви готуєте документи RAG (Retrieval-Augmented Generation) чи просто намагаєтеся вмістити величезну краплю JSON у невелике контекстне вікно, спробуйте CLI. Ваш символічний бюджет буде вам вдячний.