From db500b05e202426457d746b12356720b573a3579 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Thu, 7 Aug 2025 11:31:47 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20ChromaDB=20=EC=9E=84=EB=B2=A0=EB=94=A9?= =?UTF-8?q?=20=ED=95=A8=EC=88=98=20=EB=B6=88=EC=9D=BC=EC=B9=98=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=ED=8A=B8=EB=9F=AC=EB=B8=94=EC=8A=88=ED=8C=85=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 25초 지연 원인 분석 - embedding_function 누락 문제 - 해결 방법 문서화 --- ...80_캐시완전제거및함수형전환.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/troubleshooting/250807_happybell80_캐시완전제거및함수형전환.md b/troubleshooting/250807_happybell80_캐시완전제거및함수형전환.md index 19c264a..8885ee5 100644 --- a/troubleshooting/250807_happybell80_캐시완전제거및함수형전환.md +++ b/troubleshooting/250807_happybell80_캐시완전제거및함수형전환.md @@ -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% 개선) +- 모델 다운로드 제거 +- 벡터 일치로 정확도 향상 + ## 다음 작업 - [ ] 남은 하드코딩 환경변수화