Descriere & Utilizare
Lucrul cu datele în ChromaDB este centrat pe două metode fundamentale ale obiectului Collection: add() și query().
Metoda add() primește liste paralele: ids (identificatori unici), documents (textele brute), metadatas (dicționare pentru filtrare) și opțional embeddings (dacă ai deja vectorii). Datele sunt indexate instantaneu.
Metoda query() îți permite să cauți direct trimițând textul întrebării prin query_texts=["..."] (fără să îl vectorizezi manual!) sau prin vectori precalculați query_embeddings=[[...]]. Răspunsul conține un dicționar cu documents, metadatas și distances ordonate după relevanță.
Cum să o reții ușor
💡 Adaugi fișiere într-un dosar punând o etichetă pe fiecare (add), iar când ai o întrebare, dosarul se deschide automat exact la paginile care conțin cele mai bune răspunsuri (query).
Opțiuni și parametri tehnici
n_results: numărul de documente similare dorite la ieșire (Top K).where={"cat": "devops"}: filtrare exactă pe metadate (suportă operatori precum$eq,$in,$gt,$and).where_document={"$contains": "Linux"}: filtrare suplimentară pe conținutul textului brut.include=["documents", "metadatas", "distances"]: specifică ce câmpuri să fie returnate pentru a economisi memorie.
Exemple practice și cazuri de utilizare
- Filtrare combinată cu $and:
colectie.query(query_texts=["..."], where={"$and": [{"cat": "devops"}, {"an": {"$gte": 2025}}]}). - Actualizarea sau inserarea (Upsert): folosește
colectie.upsert(...)în loc deadd()pentru a nu primi eroare la ID-uri duplicate. - Extragerea documentelor găsite:
for doc in rezultate["documents"][0]: print(doc).
Sfaturi de configurare & capcane
Atenție la structura returnată de query(): rezultatele sunt împachetate ca o listă de liste (ex: rezultate["documents"][0]), deoarece metoda acceptă interogarea mai multor întrebări simultan!
Comenzi și ghiduri înrudite
chromadb-client-collections: Resursă asociată din acest modul.qdrant-search-filtering: Resursă asociată din acest modul.hybrid-search-rrf: Resursă asociată din acest modul.