add가 받는 값
collection.add()는 길이가 같은 ids, documents, metadatas 목록과 선택적인 embeddings를 받아. 문서만 주고 임베딩을 생략하면 Chroma가 기본 임베딩 함수를 호출해. 실제 서비스에서는 모델을 직접 통제해야 하므로 원하는 동작이 아니야.
query가 돌려주는 값
collection.query()는 query_embeddings 또는 query_texts를 받아 가장 가까운 상위 k개 결과를 돌려줘. 결과에는 ID, 문서, 메타데이터, 거리가 들어 있어. 여기서 distance는 코사인 유사도가 아니라 코사인 거리야. 0이면 같은 방향이고 2면 반대 방향이지.
알아둘 결과 형태 세 가지
- 기본 결과 — ID, 거리, 임베딩을 반환해. 텍스트와 메타데이터가 필요하면
include=['documents','metadatas']를 넘겨. - 임베딩만 받기 — 별도 모델로 순위를 다시 매길 때 유용해.
- where 필터 적용 — 순위를 매기기 전에 메타데이터로 후보를 걸러.