AI 해설·챗봇 모델 전환 · 2026-07-31

gpt-5.6-luna 무배포 전환 정리

앱을 배포하지 않고 워커 수정 + RC 설정만으로 AI 해설보기를 gpt-4.1-mini에서 gpt-5.6-luna로 전환하는 방법. 워커는 수정·배포 완료, vnkr 100항목 비교 검증까지 끝난 상태의 기록이다.

01결론 요약

무배포
앱 업데이트 불필요 (RC + 워커만)
100 : 0
품질 판정 luna 우세 (100쌍 블라인드)
-32%
응답 소요시간 (4.4s vs 6.5s)
-28%
회당 비용 (7/30 단가 인하 반영)

워커(all-ai-proxy, 버전 80aead51)가 구클라이언트 요청을 5.6이 받는 형태로 고쳐 쓰도록 수정·배포 완료. 품질·속도에 더해 2026-07-30 OpenAI 단가 인하(luna 80%↓, $0.20/$1.20 per M)로 비용까지 역전됐다 — 실측 토큰 기준 회당 $0.00079로 4.1-mini($0.00109)보다 28% 저렴. 각 앱은 아래 전환 절차의 RC 작업만 하면 된다.

02검증 결과

vnkr 단어 100개, 실서비스 프롬프트, 구클라이언트 형태 요청으로 워커 경로 실전 검증. 전체 문답 원문은 비교 리포트 참고.

기준gpt-4.1-minigpt-5.6-luna
성공 / incomplete100 / 0100 / 0
블라인드 저지 종합0승100승
총 소요 중앙값6.5s4.4s
해설을 베트남어로만 작성한 결함7건0건
마크다운 혼입(앱 노출 결함)0건0건 (서식 규칙 반영)
허용 외 태그·깨진 태그(앱 노출 결함)10건(꺾쇠 발음표기)0건 (서식 규칙 반영)
단가 ($/M, 입력/출력)0.40 / 1.600.20 / 1.20
회당 비용 (실측 토큰)$0.00109$0.00079 (-28%)

luna는 프롬프트에 서식 규칙이 없으면 응답의 48%에 마크다운 **볼드**를, 7%에 <i> 같은 허용 외 태그를 섞는다(앱은 <b>/<fg>만 파싱하므로 전부 리터럴 노출). 아래 화이트리스트 규칙을 넣으면 두 유형 모두 0건이 된다 — 100건 전수 재테스트로 확인 완료. 참고로 4.1-mini도 발음을 꺾쇠로 감싸는(<깜 언>) 자체 결함이 10건 있었다(전환하면 자연 해소).

Formatting rule: The ONLY allowed tags are <b>...</b> and <fg:#4ED3F6>...</fg>, used
exactly as in the example output. Never use markdown formatting such as **bold**,
*italic*, or # headings. Never use any other HTML-like tags such as <i>, <em>,
<strong>, <u>, <fs>, or color codes in any other form. Write every pronunciation
only inside square brackets [ ], never inside angle brackets < >.
# 프롬프트의 "The structure should be as follows:" 바로 뒤에 삽입

03앱별 전환 절차

앱 하나를 luna로 전환할 때마다 아래 순서대로. 앱 배포는 없다.

1

워커 키맵에 앱별 openai_5_key 등록

Firebase RC app_key_map(프로젝트 all-ai-keys-1a099, 매 정시 KV 동기화). 5.x는 이 키만 쓰고 4.x 키로 폴백하지 않으므로 없으면 503. 현재 등록: jpkr / ahanews / tmtm뿐 — vnkr 미등록.

2

RC 프롬프트에 서식 규칙 추가

위 02의 Formatting rule 한 줄. vnkr 단어 해설용 적용본: ~/Downloads/vnkr_step_word_prompt_luna.txt (RC JSON용 이스케이프본: _escaped.txt). luna로 전환하는 다른 프롬프트(step_element/one/pattern/example/continue)에도 동일하게.

3

RC 값 변경 — gpt_prompt_{앱}_v2

gpt_model: "gpt-5.6-luna" · reasoning_effort: "none". 가능하면 RC 앱 버전 조건으로 Responses+워커 경로가 있는 버전에만 내리는 것을 권장.

4

RC gpt_endpoint_mode: "worker"

미설정이면 DIRECT 먼저 시도하는데 DIRECT 키로는 5.x가 안 돼서 매 요청 한 번씩 실패를 겪는다.

5

스모크 확인

RC 반영 후 앱(또는 curl)에서 해설 1건 요청 → 응답 정상, 워커 로그에서 proxy_key_selected의 keySource가 앱별 5키인지 확인.

04주의사항

구버전 분포 — RC는 앱 버전을 구분하지 않는다. Responses API 경로가 없는 아주 옛 버전(DIRECT 전용 등)은 전환 후 해설이 실패한다. RC 버전 조건으로 타게팅하거나 감수 여부를 결정할 것.

게이트 면제 범위 — 워커의 executionMode 게이트 면제는 gpt-5.6-luna 한 모델뿐이다. 다른 5.x 모델로 바꾸려면 워커의 GPT5_EXECUTION_MODE_EXEMPT_MODELS에 추가하고 재배포해야 한다.

체이닝 미적용previous_response_id는 클라이언트 구현이라 무배포 전환에서는 못 쓴다(매 턴 전체 히스토리 전송, 동작엔 지장 없음). 클라이언트 대응은 test/gpt5_chat 브랜치에 구현돼 있으며 머지 후 배포되면 자동으로 활용된다.

품질 판정 편향 — 100쌍 비교의 저지가 luna 자신이라 자기편향 가능성이 있다 (블라인드·순서 랜덤화로 완화, 형식 지표는 규칙 기반이라 무관). 수치는 참고치로 볼 것.