Chroma to aplikacja bazy danych wbudowana w nasz kod w formie pakietu. Zaletą Chroma jest jej prostota. Jeśli potrzebujesz bazy danych wektorowej do implementacji pamięci LLM w tworzeniu aplikacji LLM, która obsługuje wyszukiwanie języka podobieństwa tekstu i nie chcesz instalować niezależnej bazy danych wektorowej, Chroma jest dobrym wyborem. Obecnie biblioteka Chroma obsługuje dwa języki: Python i JavaScript. Ten samouczek oparty jest głównie na języku Python.
1. Instalacja Chromadb
pip install chromadb
Uwaga: Obecna wersja chromadb nie jest kompatybilna z Pythonem 3.11. Zaleca się wycofanie wersji Pythona.
2. Inicjalizacja klienta Chroma
import chromadb
chroma_client = chromadb.Client()
3. Utwórz kolekcję
Kolekcja jest podobna do tabeli w bazie danych Chroma, gdzie przechowywane są dane wektorowe (w tym dokumenty i inne dane źródłowe). Utwórz kolekcję w następujący sposób:
collection = chroma_client.create_collection(name="tizi365")
4. Dodaj dane
Po zdefiniowaniu kolekcji dodaj dane do kolekcji. Chroma przechowa nasze dane i utworzy specjalny indeks wektorowy na podstawie wektora danych tekstowych, co ułatwi późniejsze zapytania.
4.1. Oblicz wektory za pomocą wbudowanego modelu osadzania
collection.add(
documents=["To jest dokument", "To jest kolejny dokument"],
metadatas=[{"źródło": "moje_źródło"}, {"źródło": "moje_źródło"}],
ids=["id1", "id2"]
)
4.2. Określ wartości wektorów podczas dodawania danych
collection.add(
embeddings=[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],
documents=["To jest dokument", "To jest kolejny dokument"],
metadatas=[{"źródło": "moje_źródło"}, {"źródło": "moje_źródło"}],
ids=["id1", "id2"]
)
5. Zapytaj o dane
Teraz możesz wyszukać podobną zawartość tekstu, a Chroma zwróci "n" najbardziej podobnych wyników. Poniżej przedstawiono przykład wyszukiwania podobnej zawartości dokumentu na podstawie parametru zapytania_texts:
results = collection.query(
query_texts=["To jest dokument z zapytaniem"],
n_results=2
)
Domyślnie dane w Chroma są przechowywane w pamięci, więc dane zostaną utracone po ponownym uruchomieniu programu. Oczywiście możesz ustawić Chroma, aby zachowywała dane na dysku twardym, dzięki czemu program będzie ładował dane z dysku podczas uruchamiania.