TOON CLI 마스터하기
LLM(대형 언어 모델)을 사용해 본 적이 있다면 JSON이 데이터 교환의 공용어라는 것을 알고 계실 것입니다. 그러나 JSON이 "수다스러운" 것으로 악명 높다는 것도 알고 있습니다. 이러한 모든 중괄호, 따옴표 및 반복되는 키는 컨텍스트 창을 차지하고 대기 시간을 늘리며 API 비용을 증가시킵니다.
TOON(객체 지향 표기법)이 빛나는 곳입니다. TypeScript 라이브러리는 애플리케이션 코드에 적합하지만 때로는 터미널에서 작업을 빠르게 완료해야 하는 경우도 있습니다. 프롬프트를 디버깅하든, 데이터 세트를 준비하든, 아니면 단순히 토큰으로 얼마나 많은 비용을 절약할 수 있는지 궁금해하든 @toon-format/toon CLI는 새로운 가장 친한 친구입니다.
이 가이드에서는 TOON 명령줄 인터페이스를 활용하여 데이터 최적화를 쉘 워크플로우에 직접 통합하는 방법을 살펴보겠습니다.
설정하기
최신 JavaScript 도구의 가장 좋은 점 중 하나는 시작하기 위해 아무것도 "설치"할 필요가 없다는 것입니다. 단일 파일에서 TOON을 시험해보고 싶다면 'npx'를 사용하여 바이너리를 직접 실행할 수 있습니다.
``배쉬 npx @toon-format/cli input.json -o 출력.toon
그러나 이를 자주 사용할 계획이고 일단 토큰 절감액을 확인한 후에는 전역 설치를 수행하는 것이 좋습니다. 이를 통해 시스템 어디에서나 간결한 toon 명령에 액세스할 수 있습니다.
``배쉬 npm install -g @toon-format/cli
또는
pnpm add -g @toon-format/cli
설치가 완료되면 데이터 축소를 시작할 수 있습니다.
자동 감지의 마법
TOON CLI는 수행하려는 작업에 대해 스마트하게 설계되었습니다. 인코딩이나 디코딩을 명시적으로 지시할 필요는 거의 없습니다. 파일 확장자를 보고 결정합니다.
.json 파일을 제공하면 이를 TOON으로 인코딩한다고 가정합니다. .toon 파일을 제공하면 디코딩 모드로 전환되어 JSON을 반환합니다.
``배쉬
자동으로 TOON으로 인코딩
툰 데이터.json -o 압축.툰
자동으로 JSON으로 디코딩
툰 압축.toon -o 복원.json
그러나 CLI가 실제로 그 가치를 입증하는 곳은 작은 도구들이 느슨하게 결합된 "Unix 철학"입니다. TOON CLI는 표준 입력(stdin)에서 읽고 표준 출력(stdout)에 쓰기 때문에 이를 통해 데이터를 직접 파이프할 수 있습니다.
``배쉬
JSON을 TOON에 직접 파이프
고양이 대형-dataset.json | 툰 > 데이터.툰
빠른 개체를 에코하여 TOON에서 어떻게 보이는지 확인합니다.
echo '{"이름": "에이다", "역할": "관리자"}' | 툰
stdin을 통해 데이터를 파이핑하는 경우 CLI는 기본적으로 인코드 모드로 설정됩니다. 다른 프로세스에서 오는 TOON 데이터 스트림을 디코딩해야 하는 경우 --decode(또는 -d) 플래그를 추가하기만 하면 됩니다.
토큰 절감 분석
데이터 형식을 최적화하는 것은 종종 게임을 추측하는 것과 관련이 있습니다. "공백을 제거하면 얼마나 절약되나요?" "YAML로 전환하면 어떻게 되나요?"
TOON CLI는 --stats 플래그를 사용하여 추측을 제거합니다. 인코딩 시 이 옵션은 예상 토큰 수를 계산하고 절감액을 즉시 보여줍니다. 이는 대량의 LLM 통화에 대한 예산을 세울 때 매우 중요합니다.
``배쉬 툰 context.json --stats
크기가 30% 또는 40% 감소했음을 나타내는 출력이 표시될 수 있습니다. 그것은 단순한 디스크 공간이 아닙니다. 이는 대기 시간이 40% 줄어들고 입력 토큰 비용이 40% 낮아집니다.
고급 조정: 구분 기호 및 서식 지정
기본적으로 TOON은 JSON과 유사하게 쉼표를 사용하여 배열 항목을 구분합니다. 그러나 다양한 LLM 토크나이저는 구두점에 따라 다르게 작동합니다. 때로는 탭 문자나 파이프(|)가 쉼표보다 토큰 효율적일 때도 있습니다.
CLI를 사용하면 즉시 구분 기호를 바꿀 수 있습니다. 표 형식 데이터를 처리하는 경우 탭 구분 기호로 전환하면 출력이 더 깔끔하게 보이고 더 효율적으로 처리될 수 있습니다.
제품 목록의 경우 쉼표로 구분된 목록의 출력을 거의 스프레드시트처럼 보이는 깔끔한 탭으로 구분된 구조로 변환합니다. 이는 많은 모델이 매우 잘 구문 분석합니다.
``배쉬
배열 항목에 탭을 사용합니다
toon items.json --delimiter "\t" -o items.toon
::: 팁
프로 팁: 탭 구분 기호를 사용하면 따옴표를 이스케이프 처리할 필요성이 줄어들고 숫자 데이터에 대한 토큰화가 향상될 수 있습니다. 대규모 데이터 세트를 처리하는 경우 --delimiter "\t"를 사용하여 효율성을 최대한 끌어내세요.
:::
키 폴딩을 통한 압축 구조
CLI에서 사용할 수 있는 최신 기능(사양 v1.5에 도입됨) 중 하나는 키 폴딩입니다. JSON 데이터는 의미를 추가하지 않고 구조적 깊이를 추가하는 data.response.items와 같은 래퍼 키를 사용하여 깊게 중첩되는 경우가 많습니다.
CLI를 사용하면 이러한 중첩 키를 점으로 표시된 단일 경로로 "접어" 계층 구조를 평탄화하고 들여쓰기 및 중괄호에 토큰을 저장할 수 있습니다.
``배쉬 toon deep-structure.json --key-folding safe -o flat.toon
그러면 중첩된 객체가 변환됩니다.
``json { "사용자": { "프로필": { "ID": 1 } } }
간결한 TOON 표현으로:
``yaml user.profile.id: 1
나중에 이를 전체 JSON으로 다시 변환해야 하는 경우 디코딩 중에 --expand-paths safe 플래그를 사용하여 심층 개체 구조를 완벽하게 재구성할 수 있습니다.
파이프라인에 통합
TOON CLI의 진정한 힘은 curl 및 jq와 같은 다른 도구와 연결할 때 나타납니다. API에서 데이터를 가져와서 필수 항목으로 필터링한 다음 한 줄로 TOON으로 변환할 수 있습니다. 즉, 프롬프트에 붙여넣거나 추론 엔드포인트로 보낼 준비가 완료됩니다.
이 워크플로우에서는 데이터를 가져오고, 활성 사용자만 추출하고, 이를 파이프로 구분된 TOON 형식으로 변환하고, 방금 저장한 토큰 수에 대한 통계 보고서를 받습니다.
``배쉬 컬 -s https://api.example.com/users \ | jq '.data.active_users' \ | toon --stats --delimiter "|"
요약
@toon-format/cli는 단순한 파일 변환기 그 이상입니다. LLM 시대의 유틸리티 벨트입니다. 데이터 처리를 명령줄로 이동하면 더 빠르게 반복하고, 즉시 최적화를 시각화하고, 토큰 효율적인 형식을 기존 엔지니어링 워크플로에 통합할 수 있습니다.
RAG(Retrieval-Augmented Generation) 문서를 준비 중이거나 단순히 대규모 JSON Blob을 작은 컨텍스트 창에 맞추려는 경우 CLI를 사용해 보세요. 귀하의 토큰 예산이 감사할 것입니다.