Что такое Chroma?
Chroma — открытая векторная база данных, специально разработанная для AI-приложений. Она встраивается в Python без дополнительных сервисов (embedded mode) или работает как отдельный сервер. Идеальна для RAG-систем на небольших и средних объёмах данных.
Установка
pip install chromadbEmbedded режим (без сервера)
import chromadb
# Постоянное хранилище на диске
client = chromadb.PersistentClient(path="./my_chroma_db")
# Создание коллекции
collection = client.get_or_create_collection("documents")
# Добавление документов
collection.add(
documents=["VDS сервер предоставляет выделенные ресурсы", "Хостинг подходит для небольших сайтов"],
metadatas=[{"source": "faq"}, {"source": "faq"}],
ids=["doc1", "doc2"]
)
# Поиск
results = collection.query(
query_texts=["какой хостинг выбрать для высокой нагрузки?"],
n_results=2
)
print(results["documents"])Server режим (для продакшна)
docker run -d \
--name chroma \
-p 8000:8000 \
-v chroma_data:/chroma/chroma \
--restart always \
chromadb/chromaИнтеграция с LangChain
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import OllamaEmbeddings
embeddings = OllamaEmbeddings(model="nomic-embed-text")
db = Chroma(persist_directory="./chroma_db", embedding_function=embeddings)
# Поиск похожих документов
docs = db.similarity_search("вопрос пользователя", k=3)
for doc in docs:
print(doc.page_content)Chroma vs Qdrant: Chroma проще в старте, подходит для прототипов. Qdrant мощнее для продакшна с большими объёмами (миллионы векторов).