Chroma, kodumuza bir paket biçiminde gömülü bir gömülü veritabanı uygulamasıdır. Chroma'nın avantajı basitliğidir. LLM uygulamaları geliştirirken LLM belleğini uygulamak için bir vektör veritabanına ihtiyacınız varsa, metin benzerliği dil aramasını destekler ve bağımsız bir vektör veritabanı kurmak istemiyorsanız, Chroma iyi bir seçenektir. Şu anda Chroma kütüphanesi Python ve JavaScript olmak üzere iki dili desteklemektedir. Bu kılavuzun odak noktası genellikle Python'a dayanmaktadır.
1. Chromadb'yi Yükleyin
pip install chromadb
Not: Mevcut chromadb sürümü Python 3.11 ile uyumlu değildir. Python sürümünü düşürmeniz önerilir.
2. Chroma istemcisini başlatın
import chromadb
chroma_istemcisi = chromadb.Client()
3. Bir koleksiyon oluşturun
Koleksiyon, vektör verilerin (belgeler ve diğer kaynak veriler dahil) depolandığı yer olan chroma veritabanındaki bir tabloya benzer. Koleksiyonu aşağıdaki gibi oluşturun:
koleksiyon = chroma_istemcisi.create_collection(name="tizi365")
4. Veri ekleyin
Bir koleksiyon tanımladıktan sonra, veriyi koleksiyona ekleyin. Chroma, verilerimizi depolayacak ve daha sonra kolay sorgulama için metin verisinin vektörüne dayalı özel bir vektör indeksi oluşturacaktır.
4.1. Dahili gömme modelini kullanarak vektörleri hesaplayın
koleksiyon.add(
documents=["Bu bir belgedir", "Bu başka bir belgedir"],
metadatas=[{"source": "benim_kaynak"}, {"source": "benim_kaynak"}],
ids=["id1", "id2"]
)
4.2. Veri eklerken vektör değerlerini belirtin
koleksiyon.add(
embeddings=[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],
documents=["Bu bir belgedir", "Bu başka bir belgedir"],
metadatas=[{"source": "benim_kaynak"}, {"source": "benim_kaynak"}],
ids=["id1", "id2"]
)
5. Veri sorgulama
Artık benzer metin içeriği sorgulayabilirsiniz ve Chroma "n" en benzer sonuçları döndürecektir. Aşağıda, query_texts sorgu parametresine dayanarak benzer belge içeriğini sorgulamanın bir örneği bulunmaktadır:
sonuçlar = koleksiyon.query(
query_texts=["Bu bir sorgu belgesidir"],
n_results=2
)
Varsayılan olarak, Chroma'daki veriler bellekte depolanır, bu nedenle program yeniden başlatıldığında veriler kaybolur. Tabii ki, Chroma'yı verileri sabit diske kaydedecek şekilde ayarlayabilirsiniz, böylece program başladığında verileri diskinizden yükler.