docs: 최종 해결 방안 - 기존 handle_message() 활용
- router._call_internal_llm() 대신 handle_message() 호출 - 이미 모든 기능 구현됨 (최근 대화, 스킬 라우팅, 저장) - main.py에서 2줄 수정으로 완료
This commit is contained in:
parent
d35fb98711
commit
5be05a3846
@ -35,25 +35,23 @@
|
||||
- 함수명: `get_recent_conversations(user_id, limit=10)`
|
||||
- 쿼리: `SELECT message, response, timestamp FROM conversation_logs WHERE user_id = %s ORDER BY timestamp DESC`
|
||||
|
||||
### 3.2 해결 방안 (단계적 접근)
|
||||
- **즉시 적용 (Option 2)**: `_call_internal_llm()` 내부에서 최근 대화 조회
|
||||
### 3.2 최종 해결 방안 - 기존 handle_message() 활용
|
||||
- **최적 방안**: main.py 엔드포인트에서 `router.handle_message()` 호출
|
||||
```python
|
||||
# router.py _call_internal_llm() 내부
|
||||
if not context.get("recent_conversations"):
|
||||
context["recent_conversations"] = await get_recent_conversations(user_id)
|
||||
# main.py /api/message (Frontend)
|
||||
result = await router.handle_message(request.text, user_id, "frontend")
|
||||
|
||||
# main.py /api/slack/events (Slack)
|
||||
result = await router.handle_message(message, user_id, "slack")
|
||||
```
|
||||
- 장점: 한 곳 수정으로 모든 경로 해결
|
||||
- 단점: 책임 분리 원칙 위반
|
||||
- **장점**: 이미 구현된 모든 기능 활용 (최근 대화 조회, 스킬 라우팅, 저장)
|
||||
- **수정**: 단 2줄로 완료
|
||||
- **안전성**: 기존 테스트된 코드, channel 파라미터로 구분
|
||||
|
||||
- **장기 개선 (Option 2.5)**: main.py 엔드포인트에서 context 준비 후 전달
|
||||
```python
|
||||
# main.py 각 엔드포인트
|
||||
recent_conversations = await get_recent_conversations(user_id)
|
||||
context = {"recent_conversations": recent_conversations}
|
||||
await router._call_internal_llm(..., context=context)
|
||||
```
|
||||
- 장점: 깔끔한 책임 분리, 기존 context 파라미터 활용
|
||||
- TODO 주석 추가: "리팩토링 - context는 호출하는 쪽에서 준비"
|
||||
### 3.3 주의사항
|
||||
- Gmail 처리: "이메일" 키워드 감지 시 자동 처리 (의도된 기능)
|
||||
- 슬래시 명령어: Frontend는 `/` 명령어 사용 안함
|
||||
- thread_ts: Frontend는 None 전달
|
||||
|
||||
## 4. 주의사항
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user