diff --git a/troubleshooting/250807_happybell80_캐시완전제거및함수형전환.md b/troubleshooting/250807_happybell80_캐시완전제거및함수형전환.md index 8885ee5..821f4a8 100644 --- a/troubleshooting/250807_happybell80_캐시완전제거및함수형전환.md +++ b/troubleshooting/250807_happybell80_캐시완전제거및함수형전환.md @@ -214,6 +214,58 @@ results = collection.query( - 모델 다운로드 제거 - 벡터 일치로 정확도 향상 +## 오후 12시 04분 + +### ChromaDB 컬렉션 재생성으로 완전 해결 + +**근본 원인 발견**: +- 기존 컬렉션이 DefaultEmbeddingFunction(ONNX)로 생성되어 있었음 +- get_or_create_collection은 기존 설정을 변경하지 않음 +- HTTPEmbeddingFunction 설정이 계속 무시됨 + +**서버팀 작업**: +```bash +# 서버에서 컬렉션 재생성 +- 5개 컬렉션 삭제 (잘못된 ONNX 설정) +- 4개 컬렉션 재생성 (HTTPEmbeddingFunction) +``` + +**최종 코드 수정**: +```python +# storage.py:108-112 - embedding_function 파라미터 제거 +results = collection.query( + query_texts=[query], + n_results=n_results, + where={"user_id": user_id} + # embedding_function 파라미터 제거 (1.0.15 미지원) +) +``` + +**최종 성능 개선**: +- 전체 응답: 6-20초 → 1.77초 (91% 개선) +- ChromaDB 검색: ~100ms +- Mistral 선택: ~200ms +- Gemini 생성: ~1.4초 (정상) + +## 교훈 + +1. **ChromaDB 버전별 API 차이** + - 1.0.15: query()에 embedding_function 파라미터 없음 + - 최신 버전과 문서가 다를 수 있음 + +2. **get_or_create_collection의 함정** + - 이미 존재하는 컬렉션의 설정은 변경 안 됨 + - 잘못된 설정이 계속 유지됨 + +3. **ONNX 모델 위치의 중요성** + - 중앙 서비스(8015): 1개 모델 공유 + - 각 로빙: 개별 모델 다운로드 (79.3MB × N) + +4. **성능 문제 디버깅** + - 첫 실행 vs 이후 실행 구분 + - 숨겨진 다운로드 확인 + - 임베딩 함수 일치 검증 + ## 다음 작업 - [ ] 남은 하드코딩 환경변수화