LLM 생성 과정에서 출력을 지정된 타입, 정규식, JSON 스키마 또는 문법에 맞도록 제한하는 Python 라이브러리입니다.
toon-format/toon
LLM 프롬프트에 구조화된 데이터를 전달할 때 토큰 사용량을 줄이도록 설계된, 간결하고 사람이 읽기 쉬운 JSON 인코딩 형식입니다.
- 스타
- 25,528
- 포크
- 1,280
- 열린 이슈
- 2
- 마지막 커밋
- 11일 전
어떤 프로젝트인가요?
TOON(Token-Oriented Object Notation)은 중첩 객체에는 YAML 스타일 들여쓰기를, 구조가 동일한 배열에는 CSV 스타일 표 형식을 적용해 JSON 데이터 모델을 다시 인코딩합니다. 각 배열의 헤더에는 배열 길이와 필드 목록이 선언되어 있어, 모델이 예상 행 수와 각 행에 포함된 필드를 확인할 수 있습니다.
이 프로젝트는 인코딩 및 디코딩 함수, 대용량 데이터셋을 위한 스트리밍 API, JSON과 TOON 간 변환 및 예상 토큰 절감량 보고를 지원하는 CLI를 제공하는 TypeScript SDK를 갖추고 있습니다. 인코딩은 무손실이므로 데이터를 다시 원래 JSON으로 복원할 수 있습니다. 공식 구현과 커뮤니티 포트는 적합성 테스트 스위트가 포함된 공통 명세를 따릅니다.
TOON은 구조가 동일한 객체 배열에 가장 적합합니다. 깊게 중첩되거나 구조가 제각각인 데이터에는 압축 JSON이 더 효율적일 수 있고, 완전히 평면적인 표 형식 데이터에는 CSV가 더 작다고 프로젝트에서 안내합니다. 저장소에는 JSON, YAML, XML, CSV 간 검색 정확도와 토큰 수를 비교하는 벤치마크가 포함되어 있습니다.
핵심 기능
- 01JSON 객체와 배열을 YAML과 유사한 들여쓰기 형식으로 인코딩하고, 구조가 동일한 데이터에는 CSV 스타일 표를 사용합니다.
- 02배열 헤더에 행 수와 필드명을 선언해 모델이 잘리거나 형식이 잘못된 출력을 감지하도록 돕습니다.
- 03JSON과 TOON 간 무손실 왕복 변환을 지원합니다.
- 04인코딩, 디코딩 및 스트리밍 API를 제공하는 TypeScript SDK입니다.
- 05파일이나 stdin을 변환하고 --stats로 토큰 절감량을 표시하는 CLI입니다.
- 06쉼표, 탭, 파이프 구분자를 지원합니다.
활용 사례
- 데이터베이스 쿼리 결과처럼 구조가 동일한 대량의 레코드 목록을 프롬프트 크기를 줄이면서 LLM에 전달합니다.
- JSON API 응답을 프롬프트에 넣기 전에 간결한 형식으로 변환합니다.
- JSON 페이로드가 TOON 및 다른 형식에서 각각 몇 개의 토큰을 사용하는지 확인합니다.
- 되돌릴 수 있고 검증 가능한 데이터 표현이 필요한 TypeScript 기반 LLM 파이프라인을 구축합니다.
빠른 시작
- 1
설치할 필요 없이 npx로 자신의 JSON 데이터에 TOON을 사용해 보세요
cat data.json | npx @toon-format/cli --stats
사용 전 알아둘 점
- 균일한 배열이나 키가 있는 객체에 가장 적합합니다. 깊게 중첩되거나 구조가 일정하지 않은 데이터는 일반 JSON을 사용하는 편이 더 나은 결과를 얻는 경우가 많습니다.
- 형식은 안정적인 것으로 설명되어 있지만 아직 발전 중이므로 세부 사항이 바뀔 수 있습니다.
토픽
자주 묻는 질문
- toon은(는) 무엇인가요?
- LLM 프롬프트에 구조화된 데이터를 전달할 때 토큰 사용량을 줄이도록 설계된, 간결하고 사람이 읽기 쉬운 JSON 인코딩 형식입니다. TOON(Token-Oriented Object Notation)은 중첩 객체에는 YAML 스타일 들여쓰기를, 구조가 동일한 배열에는 CSV 스타일 표 형식을 적용해 JSON 데이터 모델을 다시 인코딩합니다. 각 배열의 헤더에는 배열 길이와 필드 목록이 선언되어 있어, 모델이 예상 행 수와 각 행에 포함된 필드를 확인할 수 있습니다.
- toon은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- toon은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- toon은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. toon의 마지막 커밋은 2026년 10월 9일입니다.
- toon은(는) 어디에 사용할 수 있나요?
- 데이터베이스 쿼리 결과처럼 구조가 동일한 대량의 레코드 목록을 프롬프트 크기를 줄이면서 LLM에 전달합니다. JSON API 응답을 프롬프트에 넣기 전에 간결한 형식으로 변환합니다. JSON 페이로드가 TOON 및 다른 형식에서 각각 몇 개의 토큰을 사용하는지 확인합니다. 되돌릴 수 있고 검증 가능한 데이터 표현이 필요한 TypeScript 기반 LLM 파이프라인을 구축합니다.
- toon는 어떻게 설치하나요?
- 설치할 필요 없이 npx로 자신의 JSON 데이터에 TOON을 사용해 보세요: cat data.json | npx @toon-format/cli --stats
- toon은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/toon-format/toon
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
웹사이트, CSV/Hugging Face 데이터셋, CLI 및 MCP 서버 연동을 제공하는 커뮤니티 큐레이션 오픈소스 AI 채팅 모델 프롬프트 라이브러리입니다.
프롬프트를 다듬고 결과를 테스트·비교한 뒤 재사용 가능한 자산으로 저장하는 AI 프롬프트 최적화 도구로, 웹, 데스크톱, Chrome 확장 프로그램, Docker로 사용할 수 있습니다.
다양한 LLM API, 이미지 생성기, TTS 음성 모델과 대화할 수 있는 로컬 설치형 파워 유저용 프런트엔드입니다.
AI 에이전트가 필요할 때 불러오는 SKILL.md 폴더에 지침, 스크립트, 리소스를 패키징하는 개방형 포맷이자 명세입니다.
개발, 인프라, 보안, 데이터 등 10개 카테고리에 걸쳐 바로 사용할 수 있는 Claude Code 서브에이전트 정의 161개 이상을 엄선해 모았습니다.