docs: ChromaDB 컬렉션 재생성 및 최종 해결 문서화
- 근본 원인: 기존 컬렉션의 잘못된 임베딩 설정 - 해결: 컬렉션 재생성 + 코드 수정 - 성능: 6-20초 → 1.77초 (91% 개선)
This commit is contained in:
parent
db500b05e2
commit
9b811504c5
@ -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 이후 실행 구분
|
||||||
|
- 숨겨진 다운로드 확인
|
||||||
|
- 임베딩 함수 일치 검증
|
||||||
|
|
||||||
## 다음 작업
|
## 다음 작업
|
||||||
|
|
||||||
- [ ] 남은 하드코딩 환경변수화
|
- [ ] 남은 하드코딩 환경변수화
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user