docs: Gmail Calendar 재인증 및 통합 테스트 결과 추가
This commit is contained in:
parent
19c7b3ad58
commit
21bed502f5
@ -177,6 +177,96 @@ WHERE user_id = '53529291-5050-4daa-89fb-008b546feb63';
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**작업 완료**: 문서 작성
|
---
|
||||||
**다음 단계**: auth-server scope 수정 → 사용자 재인증
|
|
||||||
|
## 7. 테스트 결과 (2025-11-14)
|
||||||
|
|
||||||
|
### Calendar Scope 추가 성공 ✅
|
||||||
|
- auth-server에 calendar scope 추가 완료
|
||||||
|
- 김종태 계정 Gmail 재인증 완료
|
||||||
|
- Google Cloud Console Calendar API 활성화 완료
|
||||||
|
- skill-calendar → Google Calendar API 이벤트 생성 성공
|
||||||
|
|
||||||
|
### Calendar 통합 테스트 결과 ⚠️
|
||||||
|
|
||||||
|
#### 성공 케이스 (4/10)
|
||||||
|
- ✅ "11월 30일 오후 2시 서울역에서 클라이언트 **미팅**" → calendar_event 감지됨
|
||||||
|
- ✅ "11월 18일 오전 11시 사무실에서 **회의**" → calendar_event 감지됨
|
||||||
|
- ✅ skill-calendar API 직접 호출 시 정상 작동
|
||||||
|
- ✅ Google Calendar에 실제 이벤트 생성 확인
|
||||||
|
|
||||||
|
#### 실패 케이스 (6/10)
|
||||||
|
- ❌ "11월 20일 오후 3시에 팀 미팅" → intent 감지 실패 (LLM으로 우회)
|
||||||
|
- ❌ "11월 23일 오후 3시 **카페**" → intent 감지 실패 ("카페"는 패턴에 없음)
|
||||||
|
- ❌ "11월 18일 14시 개발팀 **스프린트**" → intent 감지 실패 ("스프린트"는 패턴에 없음)
|
||||||
|
- ❌ 승인 응답 ("네", "좋아", "ㅇㅇ") → approval로 변환 안됨 (컨텍스트 비어있음)
|
||||||
|
|
||||||
|
### 근본 원인 분석
|
||||||
|
|
||||||
|
#### 1. Intent 패턴 부족
|
||||||
|
```python
|
||||||
|
# decision_engine.py의 calendar_event 패턴
|
||||||
|
IntentType.CALENDAR_EVENT: [
|
||||||
|
r"\d+월\s*\d+일.*(검진|미팅|회의|회식|약속|일정)", # 현재
|
||||||
|
# 부족: 카페, 스프린트, 약속, 미팅, 회의, 점심, 저녁, 피팅 등
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
**문제**: 일정 키워드가 제한적이라 다양한 표현 감지 못함
|
||||||
|
**해결**: 패턴 확장 + LLM fallback 활용
|
||||||
|
|
||||||
|
#### 2. Recent Conversations 로딩 실패
|
||||||
|
```
|
||||||
|
[DecisionEngine] 의도 분석 시작: '네'
|
||||||
|
Loaded 0 recent conversations for user ...
|
||||||
|
[Approval] 직전 intent 없음 → UNKNOWN
|
||||||
|
```
|
||||||
|
|
||||||
|
**문제**:
|
||||||
|
- PostgreSQL `conversation_log_pk` 중복 키 에러 발생 중
|
||||||
|
- 따라서 conversation_log에 저장이 안 되고, 조회도 빈 배열
|
||||||
|
- approval 로직은 recent_conversations에 의존하므로 작동 불가
|
||||||
|
|
||||||
|
**근본 원인**:
|
||||||
|
- `conversation_log` 테이블의 `id` 시퀀스가 out-of-sync
|
||||||
|
- 이미 존재하는 id (1149, 1151, 1153 등)를 insert하려고 시도
|
||||||
|
|
||||||
|
**해결 방안**:
|
||||||
|
```sql
|
||||||
|
-- 51123 서버에서
|
||||||
|
SELECT MAX(id) FROM conversation_log; -- 현재 최대값 확인
|
||||||
|
SELECT nextval('conversation_log_id_seq'); -- 시퀀스 현재값 확인
|
||||||
|
-- 시퀀스를 MAX(id) + 1로 재설정
|
||||||
|
SELECT setval('conversation_log_id_seq', (SELECT MAX(id) FROM conversation_log) + 1);
|
||||||
|
```
|
||||||
|
|
||||||
|
### 개선 사항
|
||||||
|
|
||||||
|
#### 우선순위 1: DB 시퀀스 수정 (필수)
|
||||||
|
- 없이는 approval 로직 완전 불능
|
||||||
|
- PostgreSQL 시퀀스 재정렬 필요
|
||||||
|
|
||||||
|
#### 우선순위 2: Intent 패턴 확장
|
||||||
|
```python
|
||||||
|
IntentType.CALENDAR_EVENT: [
|
||||||
|
# 기존
|
||||||
|
r"\d+월\s*\d+일.*(검진|미팅|회의|회식|약속|일정)",
|
||||||
|
# 추가
|
||||||
|
r"\d+월\s*\d+일.*\d{1,2}시", # 시간만 있으면 일정으로 간주
|
||||||
|
r"(내일|모레|다음주).*(시|점심|저녁|미팅|회의|약속)",
|
||||||
|
r"\d+월\s*\d+일", # 날짜만 있어도 일정 가능성 고려
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 우선순위 3: LLM Fallback 강화
|
||||||
|
- calendar_confirm이 이미 LLM 기반으로 파싱 수행
|
||||||
|
- Intent 감지 실패 시 LLM에게 "일정인가?" 질문 후 calendar_confirm 호출
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**작업 완료**: Gmail Calendar 재인증 성공, skill-calendar API 작동 확인
|
||||||
|
**다음 단계**:
|
||||||
|
1. PostgreSQL `conversation_log` 시퀀스 수정 (필수)
|
||||||
|
2. calendar_event 패턴 확장 (선택)
|
||||||
|
3. 전체 E2E 재테스트
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user