Chroma是一個開源的AI應用資料庫,專門設計用於儲存和檢索向量嵌入(embeddings)。它是一個嵌入資料庫(也稱為向量資料庫),可以通過最近鄰搜索而不是傳統資料庫的子字串搜索來查找資料。
GitHub地址: https://github.com/chroma-core/chroma
Chroma集成了多種功能,包括嵌入、向量搜索、文檔儲存、全文搜索、元數據過濾和多模態檢索,所有功能都集成在一個平台中。
默認情況下,Chroma使用Sentence Transformers進行嵌入,但也可以使用OpenAI embeddings、Cohere(多語言)等其他嵌入模型。
支持多種部署模式,包括記憶體模式、檔案儲存模式和伺服器模式。
支持不同的儲存後端,如DuckDB用於本地使用,ClickHouse用於擴展大型應用程式。
在RAG系統中,首先將文檔嵌入並儲存在ChromaDB集合中,然後通過ChromaDB運行查詢來找到語義相關的內容。
在語義搜索中,ChromaDB能夠基於向量嵌入找到彼此相似的數據點,這對於通過分析內容或含義來識別可比較的文檔、圖像或其他數據類型非常有用。
通過向量空間中的距離計算,快速找到與查詢最相似的內容。
pip install chromadb
import chromadb
client = chromadb.Client()
collection = client.create_collection("my_collection")
collection.add(
documents=["This is document 1", "This is document 2"],
metadatas=[{"source": "doc1"}, {"source": "doc2"}],
ids=["id1", "id2"]
)
results = collection.query(
query_texts=["search query"],
n_results=2
)
Chroma已經與LangChain深度集成,可以作為向量儲存組件使用。
Chroma已經與OpenAI的嵌入函數集成,支持任意元數據儲存和過濾。
Chroma是現代AI應用開發中不可或缺的基礎設施組件,特別適合需要語義搜索、RAG系統和向量相似性匹配的應用場景。其簡潔的API、強大的功能和良好的生態集成使其成為開發者的首選向量資料庫解決方案。