Михаил Омельченко | AI&IT
5.3K subscribers
975 photos
190 videos
4 files
710 links
ИИ в работе, разработка, веб. Агенты, автоматизация, инструменты. Веду я, Михаил Омельченко, внешний технический директор по ИИ и ментор.

Менторство, реклама и сотрудничество: djwoms.ru
Telegram - @DJWOMS
YouTube - https://www.youtube.com/c/DjangoSchool
Download Telegram
Chroma DB: Что это, как работает и зачем нужно?

В эпоху ИИ эффективное хранение и поиск векторных данных стало критически важным. Традиционные базы данных не справляются с задачами, требующими анализа смысловой близости текста, изображений и аудио.

Chroma DB — это векторная база данных, которая решает эти задачи, обеспечивая скорость, точность и масштабируемость. Вместо хранения привычных строк и чисел, она работает с векторами-эмбеддингами, позволяя находить информацию по "смыслу".

Например, при поиске в каталоге по запросу "уютный дом с садом", Chroma DB найдет похожие объекты, даже если в их описании нет этих конкретных слов.

Эта база данных становится основой для приложений с ИИ.

Она используется в:
▫️ Чат-ботах на базе RAG. Chroma DB выступает "памятью" для больших языковых моделей (LLM), помогая им находить релевантные данные в огромных массивах информации для генерации точных ответов.

▫️ Системах рекомендаций, она может находить похожие товары или фильмы на основе их характеристик, а не только по тегам.

▫️ Поиске по изображению. Пользователь загружает картинку, а система находит похожие изображения в базе.

Chroma DB можно развернуть локально и она проста в интеграции с такими фреймворками, как LangChain или CrewAI.

👉 Мой частный клуб по нейросетям

#chromadb #ai #datascience #vectordatabase #rag
2👍11
Пример использования Chroma DB

Для использования Chroma DB, вам нужно установить её и затем выполнить несколько простых шагов: инициализировать клиент, создать коллекцию, добавить в неё данные и выполнить поиск.

Установка

Установите библиотеку chromadb с помощью pip:
pip install chromadb


Этот код демонстрирует базовый процесс: от создания коллекции до семантического поиска.
import chromadb

# 1. Инициализация клиента Chroma DB
# Можно запустить в памяти (in-memory) или подключиться к серверу
client = chromadb.Client()

# 2. Создание коллекции (collection)
# Это аналог таблицы в обычной БД
collection = client.create_collection(name="my_documents")

# 3. Добавление данных
# Здесь мы добавляем документы вместе с их ID и метаданными
collection.add(
documents=["Это статья о машинах", "Это статья о компьютерах", "Это о космосе"],
metadatas=[{"source": "статья_1"}, {"source": "статья_2"}, {"source": "статья_3"}],
ids=["doc1", "doc2", "doc3"]
)

# 4. Выполнение поиска
# Ищем документ, который наиболее похож по смыслу на наш запрос
results = collection.query(
query_texts=["Машина времени"],
n_results=1
)

# 5. Вывод результатов
# Векторный поиск найдет "Это статья о машинах", так как "Машина времени" семантически ближе к "машинам", чем к "компьютерам" или "космосу"
print(results)


Разбор кода
client = chromadb.Client() - создаёт клиента, который будет работать с базой данных. В этом примере база данных запускается в памяти.

client.create_collection(...) - коллекция — это основная единица хранения в Chroma DB, куда вы будете добавлять данные.

collection.add(...) - метод add принимает списки: documents (тексты, которые нужно сохранить), metadatas (дополнительная информация о каждом документе) и ids (уникальные идентификаторы).

collection.query(...) - это метод для векторного поиска. Вы передаёте ему query_texts, ваш запрос, и n_results количество ближайших результатов, которые нужно вернуть.

print(results) - выводит найденные документы, которые по смыслу ближе всего к вашему запросу, даже если нет точного совпадения слов.

👉 Мой частный клуб по нейросетям

#chromadb #ai #datascience #vectordatabase #rag
3👍9🔥3