docs: ChromaDB 임베딩 함수 불일치 문제 트러블슈팅 추가

- 25초 지연 원인 분석
- embedding_function 누락 문제
- 해결 방법 문서화
This commit is contained in:
happybell80 2025-08-07 11:31:47 +09:00
parent e419fb41c9
commit db500b05e2

View File

@ -169,6 +169,51 @@ async def call_mistral_api(request_body: Dict, api_key: str)
- core는 순수 비즈니스 로직
- 계층 분리 명확히
## 오전 11시 30분
### ChromaDB 임베딩 함수 불일치 문제
**증상**:
- 첫 쿼리 시 25초 지연
- 이후 쿼리도 6-20초 소요
- 서버 로그: 79.3MB all-MiniLM-L6-v2 모델 다운로드
**근본 원인**:
```python
# 컬렉션 생성 시 - HTTPEmbeddingFunction 사용
collection = client.get_or_create_collection(
embedding_function=HTTPEmbeddingFunction() # ✅
)
# 쿼리 시 - embedding_function 누락
collection.query(
query_texts=[query],
where={"user_id": user_id}
# ❌ embedding_function 파라미터 없음
)
```
**문제 메커니즘**:
1. 저장: HTTPEmbeddingFunction → skill-embedding:8015 → 특정 벡터
2. 검색: 기본 ONNX 모델 → 다른 벡터 → 매칭 실패
3. 첫 실행 시 79.3MB 모델 다운로드 (20초)
**해결**:
```python
# storage.py:108-113 수정
results = collection.query(
query_texts=[query],
n_results=n_results,
where={"user_id": user_id},
embedding_function=HTTPEmbeddingFunction() # 추가
)
```
**개선 효과**:
- 25초 → 1-2초 (95% 개선)
- 모델 다운로드 제거
- 벡터 일치로 정확도 향상
## 다음 작업
- [ ] 남은 하드코딩 환경변수화