아키텍처
Champollion 번역 생태계는 잘 정의된 계약을 통해 함께 작동하는 세 개의 독립적인 도구로 구성됩니다. 어느 것도 빌드 시점에 서로에게 의존하지 않습니다. 이들은 공유되는 메서드 플러그인 형식과 REST API 계약을 통해 통신합니다.
세 가지 구성 요소
champollion (이 프로젝트)
오픈소스 개발자 도구입니다. 플러그형 메서드를 사용하여 로케일 파일을 번역합니다. 의존성이 없고, 설정은 선택 사항이며, 별도 설정 없이 바로 작동합니다.
내장 메서드:
llm→ OpenRouter / 모든 LLM (200개 이상의 모델)llm-coached→ LLM + 문법/사전 코칭openai→ OpenAI API 직접 호출 (GPT-4o, GPT-4o-mini)anthropic→ Anthropic API 직접 호출 (Claude Sonnet, Haiku, Opus)gemini→ Google Gemini API 직접 호출 (Flash, Pro — 무료 등급 제공)google-translate→ Google Cloud Translation API v2deepl→ 용어집을 지원하는 DeepL APImicrosoft-translator→ Azure Cognitive Services Translatorlibretranslate→ 자체 호스팅 LibreTranslate (AGPL, 무료)api→ 모든 원격 REST 엔드포인트로 연결하는 얇은 파이프
Eval Harness (보조 프로젝트)
번역 메서드를 개발, 테스트, 벤치마킹하기 위한 연구 도구입니다. 메서드가 허용 가능한 품질에 도달하면, harness는 메서드 플러그인을 내보냅니다 — method.json 매니페스트와 선택적인 코칭 데이터 파일입니다.
harness는 champollion 내부에서 실행되지 않습니다. 정적 출력(JSON 파일)을 생성하는 별도의 도구입니다. Champollion은 그저 그 파일들을 읽을 뿐입니다.
Champollion Translate (계획됨)
독점 번역 메서드를 서버 측에서 호스팅하는 종량제 API 서비스입니다 — 프롬프트, 코칭 데이터, 언어 파이프라인은 절대 서버를 벗어나지 않습니다.
연결 방식
Eval Harness → champollion (단방향 내보내기)
계약: 플러그인 명세
Champollion Translate → champollion (런타임 API)
Champollion의 APIMethod는 단순한 파이프입니다. 키를 내보내고 번역을 다시 받습니다. 번역 로직이나 독점 콘텐츠는 전혀 포함하지 않습니다.
각 구성 요소가 서로에 대해 아는 것
| 도구 | champollion을 아나요? | Champollion Translate를 아나요? | harness를 아나요? |
|---|---|---|---|
| champollion | (champollion 자신) | 예 — api 메서드가 이를 호출함 | 아니요 — 플러그인 내보내기만 읽음 |
| Champollion Translate | 예 — 그 요청을 처리함 | (Champollion Translate 자신) | 아니요 — 배포된 메서드를 수신함 |
| Eval Harness | 예 — 플러그인 형식을 내보냄 | 아니요 — 메서드는 별도로 배포됨 | (harness 자신) |
사용자 시나리오
시나리오 1: 무료, 설정 불필요 (대부분의 사용자)
export OPENROUTER_API_KEY=sk-...
npx champollion sync
내장 llm 메서드를 사용합니다. 플러그인도, Champollion Translate도, harness도 필요 없습니다.
시나리오 2: Google Translate 기준선
export GOOGLE_TRANSLATE_API_KEY=AIza...
npx champollion sync
내장 google-translate 메서드를 사용합니다. 플러그인이 필요 없습니다.
시나리오 3: 코칭이 번들된 오픈 플러그인
champollion plugin install ./french-formal-v1/
champollion sync
플러그인에 type: "llm-coached"가 있음 → champollion이 사용자 자신의 OpenRouter 키를 사용합니다. 코칭 데이터는 로컬에 있습니다 (서버 호출 없음).
시나리오 4: 직접 만드는 코칭 (플러그인 없음, harness 없음)
{
"pairs": {
"en:fr": { "method": "llm-coached" }
}
}
사용자가 .champollion/coaching/fr.json에서 자신의 문법 규칙과 사전을 직접 관리합니다.
언어 카드
champollion의 각 언어는 **언어 카드(Language Card)**를 통해 구성됩니다 — 레지스터 프리셋, 격식 규칙, 메서드 지원 플래그, 타이포그래피 관례, 계통 분류, 언어 참조 데이터를 담은 통합 JSON 파일입니다.
카드는 import 시점에 즉시 로드됩니다. 각 카드에는 번역 엔진과 개발자 문서가 필요로 하는 모든 메타데이터가 포함되어 있습니다 — 별도의 참조 계층은 없습니다. 카드는 권위 있는 출처(IANA, CLDR, Glottolog, WALS)로부터 scripts/generate-language-card.mjs와 scripts/build-language-tree.mjs를 사용하여 생성된 후, 언어적 정확성을 위해 사람이 직접 큐레이션합니다.
설계 원칙
- 순환 의존성 없음. 다리는 단방향입니다.
- Champollion은 경량 코어입니다. 의존성이 없고, 설정은 선택 사항입니다. 플러그인과 API는 부가적입니다.
- 지식 재산권 보호는 아키텍처에 내재되어 있습니다. 독점 기법은 서버 측에 유지됩니다. npm 패키지는 독점적인 것을 전혀 포함하지 않습니다.
- 플러그인 형식이 곧 계약입니다. 모든 것은
method.json를 통해 흐릅니다. - 각 도구는 하나의 역할을 합니다. Harness → 메서드 개발. Champollion Translate → 메서드 호스팅. Champollion → 파일 번역.
참고 자료
- 번역 메서드 — 각 내장 메서드의 작동 방식
- 플러그인 명세 — method.json 매니페스트 형식
- Eval Harness — 보조 연구 도구
- API를 통한 메서드 제공 — 맞춤형 번역 파이프라인 호스팅
- 저자원 언어 지원 — 이 아키텍처를 이끈 사용 사례