feat: JSON 배열 처리 및 오류 메시지 개선
- `_parse_json()` 메서드에서 최상위 JSON 배열을 허용하고, 이를 `actions` 리스트로 래핑하여 정상적인 파이프라인으로 이어지도록 개선 - JSON 파싱 실패 시 원인 파악을 돕기 위해 오류 메시지에 첫 비공백 문자를 포함 - 새로운 단위 테스트를 추가하여 JSON 객체 및 배열 파서의 회귀 방지 - README.md 및 문서에 변경 사항 반영
This commit is contained in:
19
docs/plan.md
19
docs/plan.md
@@ -263,3 +263,22 @@
|
||||
### README
|
||||
- `GLM API 연결 문제 디버깅` 절 추가
|
||||
|
||||
---
|
||||
## GLM 응답 형식 편차: JSON 객체 외(배열) 처리 강화
|
||||
|
||||
### 문제 관찰
|
||||
- 로그에서 `ValueError: JSON 파싱 실패 ('{' 없음)`이 반복됨
|
||||
- `_parse_json()`은 기본적으로 JSON 객체(`{...}`)를 기대하므로, GLM이 최상위에서 JSON 배열(`[...]`)로 응답하면 파싱 실패로 떨어질 수 있음
|
||||
|
||||
### 변경 목표
|
||||
1. `_parse_json()`이 최상위 JSON 배열을 `actions` 리스트로 래핑해 정상 파이프라인으로 이어지게 함
|
||||
2. 실패 시 원인 파악을 돕기 위해 `raw`의 첫 비공백 문자를 오류 메시지에 포함
|
||||
3. `tests/test_ai_planner_parse_json.py`로 회귀 방지
|
||||
|
||||
### 구현 범위
|
||||
- `ai_planner.py`
|
||||
- `_parse_json()`에서 JSON `list`도 허용하고, `{' 없음`일 때 `[...]`를 균형 추출 후 래핑
|
||||
- 실패 원인 로깅(첫 비공백 문자)
|
||||
- `tests/`
|
||||
- JSON 객체/배열 파서 단위 테스트 추가
|
||||
|
||||
|
||||
Reference in New Issue
Block a user