58 lines
1.7 KiB
Markdown
58 lines
1.7 KiB
Markdown
# LLM 서비스 연결 문제 해결
|
|
|
|
## 문제 상황들
|
|
|
|
### 1. LLM 서비스 응답 속도 문제
|
|
- **증상**: "넌 누구니" 같은 간단한 질문에도 타임아웃 발생
|
|
- **원인**: Gemini CLI 모드 사용으로 인한 subprocess 오버헤드
|
|
|
|
### 2. 422 Unprocessable Entity 에러
|
|
- **증상 1**: 멘션이 포함된 메시지에서 에러 발생
|
|
- **증상 2**: execution_plan 필드가 포함되어 에러 발생
|
|
- **원인**: LLM 서비스가 예상하지 않은 필드 전달
|
|
|
|
### 3. 일반 대화 실패
|
|
- **증상**: "죄송합니다. 현재 해당 기능을 사용할 수 없습니다." 메시지 반환
|
|
- **원인**: LLM 서비스 호출 실패 시 폴백 메시지
|
|
|
|
## 해결 방법
|
|
|
|
### 1. Gemini API 모드로 전환 (권장)
|
|
```python
|
|
# /home/heejae/robing-llm-service/.env
|
|
GEMINI_USE_CLI=false # true -> false 변경
|
|
```
|
|
|
|
### 2. LLM 서비스 payload 최적화
|
|
```python
|
|
# /home/heejae/rb10408_test/app/router/router.py
|
|
if skill_type_enum != SkillType.LLM:
|
|
payload["action"] = skill.get("action")
|
|
payload["execution_plan"] = execution_plan
|
|
```
|
|
|
|
LLM 서비스에는 필수 필드만 전송:
|
|
- `message`
|
|
- `user_id`
|
|
- `channel`
|
|
- `robing_id`
|
|
|
|
### 3. 서비스 상태 확인
|
|
```bash
|
|
# LLM 서비스 실행 확인
|
|
ps aux | grep -E "(llm|8003)"
|
|
|
|
# 헬스체크
|
|
curl http://localhost:8003/health
|
|
```
|
|
|
|
## 기술적 세부사항
|
|
- LLM 서비스 위치: `/home/heejae/robing-llm-service/`
|
|
- 포트: 8003
|
|
- 기본 모델: gemini-flash
|
|
- CLI 타임아웃: 15초 (느린 원인)
|
|
|
|
## 관련 파일
|
|
- `/home/heejae/robing-llm-service/app/llm/gemini_handler.py`
|
|
- `/home/heejae/robing-llm-service/app/core/config.py`
|
|
- `/home/heejae/rb10408_test/app/router/router.py` |