Phase G: Kei API 통신 정상화 — streaming 전환 + Sonnet fallback 제거
G-1: httpx non-streaming → streaming 전환 (3개 파일)
- client.post() → client.stream("POST") + response.aiter_lines()
- SSE 토큰을 실시간 수신 (30분+ 무응답 해소)
G-2: Sonnet fallback 완전 제거
- kei_client.py: classify_content()에서 _call_anthropic_direct() 호출 제거
- content_editor.py: fill_content()에서 Sonnet fallback 분기 제거
- Kei API만 사용. 실패 시 manual_classify() 또는 _apply_defaults() 안전망
G-3: _parse_json() 마크다운 제거 3파일 동기화
- content_editor.py, design_director.py에 kei_client.py와 동일한 전처리 추가
G-4: FAISS를 CPU로 전환 (GPU 메모리 경쟁 해소)
- block_search.py + build_block_index.py: device="cpu"
G-5: streaming 파서에 event:error 처리
- persona_agent 에러 시 무한 대기 방지. 즉시 중단.
G-6: content_editor.py None 가드
- Kei API 실패 시 _parse_json(None) TypeError 방지
G-7: "mode" → "mode_hint" 필드명 수정 (3개 파일)
- persona_agent의 실제 필드명에 맞춤
persona_agent 수정: 0건
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -274,6 +274,33 @@ CLAUDE.md 요구사항 전수검토 결과 발견된 미구현/부분구현/위
|
||||
|
||||
---
|
||||
|
||||
## Phase G: Kei API 통신 정상화 (4개)
|
||||
|
||||
> **실행 상세:** [IMPROVEMENT-PHASE-G.md](IMPROVEMENT-PHASE-G.md)
|
||||
> design_agent만 수정. persona_agent 코드 수정 0건.
|
||||
|
||||
### G-1: httpx non-streaming → streaming 전환 (핵심)
|
||||
- **문제:** httpx `client.post()`가 SSE 전체 응답 완료까지 대기 (30분+)
|
||||
- **해결:** `client.stream("POST", ...)`로 전환. SSE 토큰 실시간 수신.
|
||||
- **파일:** kei_client.py, content_editor.py, design_director.py
|
||||
|
||||
### G-2: Sonnet fallback 완전 제거
|
||||
- **문제:** 사용자 요청 "Kei API만 사용"인데 Sonnet fallback이 남아있음
|
||||
- **해결:** fallback 분기 제거. Kei API 실패 시 에러 반환.
|
||||
- **파일:** kei_client.py, content_editor.py
|
||||
|
||||
### G-3: `_parse_json()` 마크다운 제거 3파일 동기화
|
||||
- **문제:** kei_client.py에만 `- ` 제거 있고, content_editor/design_director에 없음
|
||||
- **해결:** 3개 파일의 `_parse_json()` 동기화
|
||||
- **파일:** content_editor.py, design_director.py
|
||||
|
||||
### G-4: FAISS를 CPU로 전환 (GPU 메모리 경쟁 해소)
|
||||
- **문제:** persona_agent + design_agent가 같은 GPU 경쟁 → OOM
|
||||
- **해결:** design_agent의 FAISS를 CPU로 전환 (46개 블록이므로 충분히 빠름)
|
||||
- **파일:** block_search.py, build_block_index.py
|
||||
|
||||
---
|
||||
|
||||
## Phase별 의존 관계
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user