add contract
collection.add() 는 평행 리스트를 받아: ids, documents, metadatas, 옵션으로 embeddings. documents 만 주고 embeddings 안 주면 Chroma 가 default embedding function 호출 (이게 프로덕션에서 원하는 거 아님 — 항상 모델은 본인이 컨트롤).
query contract
collection.query() 는 query_embeddings (또는 query_texts) 받고 top-k nearest 반환. 결과에 ids, documents, metadatas, distances 포함. distance 는 cosine DISTANCE 지 similarity 아냐 — 0 = 동일, 2 = 반대.
알아둘 결과 모드 셋
- Default — ids, distances, embeddings 반환. 텍스트/메타데이터 받으려면
include=['documents','metadatas']전달. - Embedding-only — 별도 모델로 re-rank 할 때 유용.
- Where-filtered — ranking 전 메타데이터로 pre-filter.