공급자를 openai 로 바꾼 뒤에도 호출측에 "GEMINI_API_KEY 미설정" 이 문자열로 박혀 있어서, **없는 것은 OPENAI_API_KEY 인데 화면은 Gemini 를 탓했다** (실측 2026-09-21: 로컬에서 소개문이 안 나와 Gemini 키를 한참 들여다봤다). 원인을 정확히 반대로 가리키는 종류다. - llm/provider: missing_key() 추가 — 활성 공급자에게 필요한 env 이름을 돌려준다 - copy_service·collect_service·song_service: 하드코딩 문구를 그 함수로 교체 - enums: GENERATOR_NOT_CONFIGURED 주석도 공급자 중립으로 관련 테스트 55 passed Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
21 lines
1.1 KiB
Python
21 lines
1.1 KiB
Python
"""LLM_PROVIDER 설정으로 gemini/openai 구현 중 하나를 고른다.
|
|
|
|
★ 모르는 값은 gemini 로 떨어진다 — 오타 하나로 사진분류·소개문·FAQ 가 전부
|
|
조용히 꺼지는 것보다, 기존에 검증된 공급자로 계속 도는 쪽이 안전하다."""
|
|
from config.server_configs import external_api_config
|
|
from services.llm import gemini, openai
|
|
|
|
|
|
def active():
|
|
return openai if external_api_config.llm_provider == "openai" else gemini
|
|
|
|
|
|
def missing_key() -> str:
|
|
"""지금 활성인 공급자에게 필요한 env 이름. 키가 없을 때 **그 공급자를** 가리키려고 쓴다.
|
|
|
|
★ 예전에는 호출측이 "GEMINI_API_KEY 미설정" 을 문자열로 박아 뒀다. 공급자를 openai 로
|
|
바꾼 뒤에도 그 문구가 그대로 나가서, **없는 것은 OPENAI_API_KEY 인데 화면은 Gemini 를
|
|
탓했다**(실측 2026-09-21: 로컬에서 소개문이 안 나와 Gemini 키를 한참 들여다봤다).
|
|
원인을 정확히 반대로 가리키는 종류라, 문구를 공급자에서 끌어오게 바꿨다."""
|
|
return "OPENAI_API_KEY" if active() is openai else "GEMINI_API_KEY"
|