fix(discord_bot): unified prompt JSON '{' parsing fallback

This commit is contained in:
2026-03-23 20:43:41 +09:00
parent e5a52f68ab
commit c59c934ff5
5 changed files with 25 additions and 17 deletions

View File

@@ -74,6 +74,7 @@ Discord 메시지
## 최근 마일스톤
- **2026-03-23**: discord_bot unified prompt JSON 문법 누락 대응 로직 추가
- **2026-03-22**: debate-agent idle-state 처리 — 대기 규칙 + slug 탐색 + list-debates + handler 시그널 개선
- **2026-03-21**: debate-agent 분산 토론 시스템 — Wiki.js 기반 통신, AG 프로젝트 스캐폴딩, handler 리팩토링
- **2026-03-20**: AI Debate Room v2 — 파일 기반 자동 토론 + Flash 합의 판정 + Wiki.js 동기화

View File

@@ -183,3 +183,9 @@
- **원인**: Gemini에게 제목 요약 요청 시 `"신용리스크를 측정하는..."` 처럼 따옴표 포함 응답 → `WikiClient.slugify()`가 따옴표 미제거
- **해결**: (1) 프롬프트를 영문 2-3단어 키워드로 변경, (2) `.strip('"\'')` + `re.sub(r'[^\w\s-]', '')` 로 특수문자 제거, (3) slug 30자 제한
- **주의**: AI 응답을 slug/경로/파일명에 사용 시 **반드시 특수문자 sanitize** 필수. 따옴표, 괄호, 마크다운 기호 등 모두 제거
### [2026-03-23] unified prompt — JSON 여는 중괄호 누락
- **증상**: Gemini 응답에 `{"mode": ...}` 대신 `"mode": ...}`로 출력되어 JSON 파싱이 실패하고 chat 롤백됨
- **원인**: 통합 프롬프트 특성상 LLM이 가끔 첫 `{`를 생략하거나 코드문법 없이 바로 출력함
- **해결**: `api/discord_bot.py``_parse_unified_response``{` 누락 시 `{...}` 로 감싸 재파싱하는 fallback 추가
- **주의**: LLM의 JSON 출력 포맷이 항상 완벽할 것이라 가정하지 말고 방어적 파싱 로직 적용 필수