docs: ChromaDB 임베딩 함수 불일치 문제 트러블슈팅 추가
- 25초 지연 원인 분석 - embedding_function 누락 문제 - 해결 방법 문서화
This commit is contained in:
parent
e419fb41c9
commit
db500b05e2
@ -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% 개선)
|
||||
- 모델 다운로드 제거
|
||||
- 벡터 일치로 정확도 향상
|
||||
|
||||
## 다음 작업
|
||||
|
||||
- [ ] 남은 하드코딩 환경변수화
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user