Chroma – die Open-Source-Einbettungsdatenbank .
Der schnellste Weg, Python- oder JavaScript-LLM-Apps mit Speicher zu erstellen!
| | Dokumente | Homepage
pip install chromadb # python client
# for javascript, npm install chromadb!
# for client-server mode, chroma run --path /chroma_db_path
Die Kern-API besteht nur aus 4 Funktionen (führen Sie unsere Google Colab- oder Replit-Vorlage aus):
import chromadb
# setup Chroma in-memory, for easy prototyping. Can add persistence easily!
client = chromadb . Client ()
# Create collection. get_collection, get_or_create_collection, delete_collection also available!
collection = client . create_collection ( "all-my-documents" )
# Add docs to the collection. Can also update and delete. Row-based API coming soon!
collection . add (
documents = [ "This is document1" , "This is document2" ], # we handle tokenization, embedding, and indexing automatically. You can skip that and add your own embeddings as well
metadatas = [{ "source" : "notion" }, { "source" : "google-docs" }], # filter on these!
ids = [ "doc1" , "doc2" ], # unique for each doc
)
# Query/search 2 most similar results. You can also .get by id
results = collection . query (
query_texts = [ "This is a query document" ],
n_results = 2 ,
# where={"metadata_field": "is_equal_to_this"}, # optional filter
# where_document={"$contains":"search_string"} # optional filter
)
?️? LangChain
(Python und js), ? LlamaIndex
und mehr bald Zum Beispiel der Anwendungsfall "Chat your data"
:
GPT3
für eine zusätzliche Zusammenfassung oder Analyse. Was sind Einbettungen?
[1.2, 2.1, ....]
. Dieser Prozess macht Dokumente für ein maschinelles Lernmodell „verständlich“.Einbettungsdatenbanken (auch als Vektordatenbanken bekannt) speichern Einbettungen und ermöglichen Ihnen die Suche nach nächsten Nachbarn und nicht nach Teilzeichenfolgen wie bei herkömmlichen Datenbanken. Standardmäßig verwendet Chroma Satztransformatoren zum Einbetten für Sie, Sie können jedoch auch OpenAI-Einbettungen, Cohere-Einbettungen (mehrsprachig) oder Ihre eigenen verwenden.
Chroma ist ein sich schnell entwickelndes Projekt. Wir freuen uns über PR-Mitwirkende und Ideen zur Verbesserung des Projekts.
#contributing
-KanalGood first issue tag
Veröffentlichungsrhythmus Wir veröffentlichen derzeit montags neue getaggte Versionen der Pakete pypi
und npm
. Hotfixes werden jederzeit während der Woche veröffentlicht.
Apache 2.0