Chroma: la base de datos integrada de código abierto .
¡La forma más rápida de crear aplicaciones LLM de Python o JavaScript con memoria!
| | Documentos | Página principal
pip install chromadb # python client
# for javascript, npm install chromadb!
# for client-server mode, chroma run --path /chroma_db_path
La API principal tiene solo 4 funciones (ejecute nuestra plantilla Google Colab o Replit):
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 y js), ? LlamaIndex
y más pronto Por ejemplo, el caso de uso "Chat your data"
:
GPT3
para realizar resúmenes o análisis adicionales. ¿Qué son las incrustaciones?
[1.2, 2.1, ....]
. Este proceso hace que los documentos sean "comprensibles" para un modelo de aprendizaje automático.Las bases de datos incrustadas (también conocidas como bases de datos vectoriales ) almacenan incrustaciones y le permiten buscar por vecinos más cercanos en lugar de por subcadenas como una base de datos tradicional. De forma predeterminada, Chroma usa Sentence Transformers para incrustar por usted, pero también puede usar incrustaciones de OpenAI, incrustaciones de Cohere (multilingüe) o las suyas propias.
Chroma es un proyecto en rápido desarrollo. Damos la bienvenida a contribuyentes de relaciones públicas e ideas sobre cómo mejorar el proyecto.
#contributing
Good first issue tag
Cadencia de lanzamiento Actualmente lanzamos nuevas versiones etiquetadas de los paquetes pypi
y npm
los lunes. Las revisiones se publican en cualquier momento durante la semana.
apache 2.0