Chroma adalah aplikasi database terbenam yang disematkan ke dalam kode kami dalam bentuk paket. Keunggulan Chroma adalah kesederhanaannya. Jika Anda memerlukan database vektor untuk mengimplementasikan memori LLM dalam mengembangkan aplikasi LLM, ini mendukung pencarian bahasa kesamaan teks dan Anda tidak ingin menginstal database vektor independen, Chroma adalah pilihan yang baik. Saat ini, perpustakaan Chroma mendukung dua bahasa: Python dan JavaScript. Tutorial ini didasarkan terutama pada Python.

1. Instal Chromadb

pip install chromadb

Catatan: Versi saat ini dari chromadb tidak ramah dengan Python 3.11. Disarankan untuk menurunkan versi python.

2. Inisialisasi klien Chroma

import chromadb
chroma_client = chromadb.Client()

3. Buat koleksi

Koleksi serupa dengan tabel dalam database chroma, di mana data vektor (termasuk dokumen dan data sumber lainnya) disimpan. Buat sebuah koleksi sebagai berikut:

collection = chroma_client.create_collection(name="tizi365")

4. Tambahkan data

Setelah mendefinisikan koleksi, tambahkan data ke dalam koleksi. Chroma akan menyimpan data kami dan membuat indeks vektor khusus berdasarkan vektor data teks untuk pencarian lebih mudah nantinya.

4.1. Hitung vektor menggunakan model sematan bawaan

collection.add(
    documents=["Ini adalah dokumen", "Ini adalah dokumen lain"],
    metadatas=[{"sumber": "sumber_saya"}, {"sumber": "sumber_saya"}],
    ids=["id1", "id2"]
)

4.2. Tentukan nilai vektor saat menambahkan data

collection.add(
    embeddings=[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],
    documents=["Ini adalah dokumen", "Ini adalah dokumen lain"],
    metadatas=[{"sumber": "sumber_saya"}, {"sumber": "sumber_saya"}],
    ids=["id1", "id2"]
)

5. Query data

Sekarang Anda dapat melakukan pencarian konten teks serupa, dan Chroma akan mengembalikan "n" hasil yang paling mirip. Berikut adalah contoh pencarian konten dokumen serupa berdasarkan parameter pencarian query_texts:

results = collection.query(
    query_texts=["Ini adalah dokumen pencarian"],
    n_results=2
)

Secara default, data di Chroma disimpan di memori, sehingga data hilang saat program di-restart. Tentu saja, Anda dapat mengatur Chroma untuk menyimpan data ke dalam hard disk, sehingga program akan memuat data dari disk saat dimulai.