| 모델 티어링 |
배치 번역: Pro / 실시간 검색: Flash |
비용 × 품질 트레이드오프 명시적 분리. 1회성 고품질 vs 매 요청 저비용. |
| 2-pass RAG |
search() — 1차 ID 선택, 2차 답변 생성 |
전체 팁 컨텍스트 낭비 방지. 관련 팁만 Pro에 노출해 응답 품질 유지. |
| thinking 예산 제어 |
1차: thinkingBudget=0 / 2차: thinking ON |
선택 단계는 속도, 생성 단계는 추론 품질. 각 패스의 역할에 맞게 명시적 설정. |
| 문화 컨텍스트 주입 |
번역 프롬프트 + 답변 생성 모두 |
home_norm + key_friction으로 AI가 "차이"를 판단하는 근거 제공. DB 미스 시에도 적용. |
| 구조화 출력 강제 |
번역 · 검색 · 대화 모든 AI 호출 |
responseMimeType=application/json + 출력 형식 명시. 파싱 실패 방지. |
| 폴백 체인 |
ChatSession — GLM-4 → Gemini Pro |
단일 모델 의존성 제거. GLM-4 장애·할당량 초과 시 무중단 서비스 유지. |
| 히스토리 슬라이딩 윈도우 |
ChatSession.history (max 20턴) |
컨텍스트 무한 증가 방지. 오래된 턴 자동 제거로 토큰 비용 통제. |
| 결정론적 큐레이션 |
curator.pick_daily() — MD5 날짜 시드 |
AI 호출 없이 날짜만으로 재현 가능한 결과. CDN 캐싱 / 서버리스 환경에 유리. |