본문으로 건너뛰기

아키텍처

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 v2
  • deepl → 용어집을 지원하는 DeepL API
  • microsoft-translator → Azure Cognitive Services Translator
  • libretranslate → 자체 호스팅 LibreTranslate (AGPL, 무료)
  • api → 모든 원격 REST 엔드포인트로 연결하는 얇은 파이프

Eval Harness (보조 프로젝트)

번역 메서드를 개발, 테스트, 벤치마킹하기 위한 연구 도구입니다. 메서드가 허용 가능한 품질에 도달하면, harness는 메서드 플러그인을 내보냅니다 — method.json 매니페스트와 선택적인 코칭 데이터 파일입니다.

harness는 champollion 내부에서 실행되지 않습니다. 정적 출력(JSON 파일)을 생성하는 별도의 도구입니다. Champollion은 그저 그 파일들을 읽을 뿐입니다.

→ GitHub의 Eval Harness

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 없음)

champollion.config.json
{
"pairs": {
"en:fr": { "method": "llm-coached" }
}
}

사용자가 .champollion/coaching/fr.json에서 자신의 문법 규칙과 사전을 직접 관리합니다.

언어 카드

champollion의 각 언어는 **언어 카드(Language Card)**를 통해 구성됩니다 — 레지스터 프리셋, 격식 규칙, 메서드 지원 플래그, 타이포그래피 관례, 계통 분류, 언어 참조 데이터를 담은 통합 JSON 파일입니다.

카드는 import 시점에 즉시 로드됩니다. 각 카드에는 번역 엔진과 개발자 문서가 필요로 하는 모든 메타데이터가 포함되어 있습니다 — 별도의 참조 계층은 없습니다. 카드는 권위 있는 출처(IANA, CLDR, Glottolog, WALS)로부터 scripts/generate-language-card.mjsscripts/build-language-tree.mjs를 사용하여 생성된 후, 언어적 정확성을 위해 사람이 직접 큐레이션합니다.

설계 원칙

  1. 순환 의존성 없음. 다리는 단방향입니다.
  2. Champollion은 경량 코어입니다. 의존성이 없고, 설정은 선택 사항입니다. 플러그인과 API는 부가적입니다.
  3. 지식 재산권 보호는 아키텍처에 내재되어 있습니다. 독점 기법은 서버 측에 유지됩니다. npm 패키지는 독점적인 것을 전혀 포함하지 않습니다.
  4. 플러그인 형식이 곧 계약입니다. 모든 것은 method.json를 통해 흐릅니다.
  5. 각 도구는 하나의 역할을 합니다. Harness → 메서드 개발. Champollion Translate → 메서드 호스팅. Champollion → 파일 번역.

참고 자료