Полный пример кода для подготовки и поиска данных в Chroma DB
Этот код включает в себя обе части — подготовку данных и поиск.
Сохраните этот код в файл
Убедитесь, что у вас в той же папке есть два текстовых файла:
Установка зависимостей
Для Windows может еще понадобиться
Код
После первого запуска скрипт создаст файл
👉 Мой частный клуб по нейросетям
#ai #chromadb
Этот код включает в себя обе части — подготовку данных и поиск.
Сохраните этот код в файл
main.py и запустите. Он создаст коллекцию и выполнит поиск в ней.Убедитесь, что у вас в той же папке есть два текстовых файла:
article1.txt и article2.txt.Установка зависимостей
pip install chromadb langchain sentence-transformers
Для Windows может еще понадобиться
pip install hf_xetс
Код
import os
import chromadb
from langchain.text_splitter import RecursiveCharacterTextSplitter
from sentence_transformers import SentenceTransformer
## 1. Настройки и подготовка
FILE_PATHS = ['article1.txt', 'article2.txt']
DB_PATH = './my_chroma_db'
COLLECTION_NAME = 'my_text_chunks'
QUERY_TEXT = "почему люди путешествуют?"
## 2. Инициализация клиента
client = chromadb.PersistentClient(path=DB_PATH)
## 3. Получение или создание коллекции
collection = client.get_or_create_collection(name=COLLECTION_NAME)
## 4. Проверка и индексация данных (если коллекция пуста)
if collection.count() == 0:
print("🚀 Коллекция пуста. Начинаем подготовку данных из двух файлов...")
all_chunks = []
all_metadatas = []
all_ids = []
# Загружаем и разделяем тексты из всех файлов
for file_path in FILE_PATHS:
if os.path.exists(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
text_data = f.read()
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=500,
chunk_overlap=50
)
chunks = text_splitter.split_text(text_data)
# Добавляем метаданные для каждого фрагмента, чтобы знать его источник
metadatas = [{"source": file_path} for _ in chunks]
ids = [f"{os.path.basename(file_path)}_id_{i}" for i in range(len(chunks))]
all_chunks.extend(chunks)
all_metadatas.extend(metadatas)
all_ids.extend(ids)
print(f"✅ Файл '{file_path}' обработан. Найдено {len(chunks)} фрагментов.")
else:
print(f"⚠️ Файл '{file_path}' не найден. Проверьте путь.")
# Генерируем векторы для всех фрагментов
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
embeddings = model.encode(all_chunks).tolist()
# Сохраняем данные в коллекцию
collection.add(
documents=all_chunks,
embeddings=embeddings,
metadatas=all_metadatas,
ids=all_ids
)
print(f"✅ Данные успешно проиндексированы. Всего документов: {collection.count()}")
else:
print("✅ Коллекция уже содержит данные. Переходим к поиску.")
## 5. Выполнение поиска
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
query_embedding = model.encode([QUERY_TEXT]).tolist()
results = collection.query(
query_embeddings=query_embedding,
n_results=2, # Ищем два самых релевантных результата
include=['documents', 'distances', 'metadatas']
)
## 6. Вывод результатов
print(f"\n🔍 Запрос: '{QUERY_TEXT}'")
print("-" * 30)
for doc, dist, meta in zip(results['documents'][0], results['distances'][0], results['metadatas'][0]):
print(f"📄 Найден документ: {doc}\n Источник: {meta['source']}\n Степень схожести: {dist:.4f}")
print("-" * 30)
После первого запуска скрипт создаст файл
my_chroma_db и сохранит в нём коллекцию. При последующих запусках он сразу перейдёт к поиску.👉 Мой частный клуб по нейросетям
#ai #chromadb
👍10 1
Что такое графовая база данных?
Обычные базы данных хранят данные в таблицах: строки, колонки, связи через ключи. Такой подход хорошо работает, если нужно хранить структурированную информацию и искать её по точному совпадению.
Например, вы ищете товар по артикулу или сотрудника по ID.
Но что делать, когда данные связаны между собой гораздо сложнее? Когда важен не только сам объект, но и отношения между ним и другими объектами? Именно для этого существуют графовые базы данных.
Графовая модель строится вокруг узлов и рёбер.
Узлы — это сущности: пользователи, товары, проекты. Рёбра описывают отношения: "друг", "купил", "работает над", "смотрел". Причём и узлы, и связи могут иметь свойства. Такой подход ближе к тому, как устроен реальный мир.
Например, нужно найти друзей друзей, которые любят те же фильмы, что и вы. В реляционной базе для этого понадобятся сложные JOINы. В графовой базе достаточно пройти всего два узла, и мы получаем результат.
Где это используется
▫️в соцсетях и рекомендательных системах (Netflix, Amazon и т.д.)
▫️в логистике для поиска оптимальных маршрутов
▫️в медицине при анализе связей между генами, белками и болезнями
▫️в построении knowledge graphs, которые помогают ИИ лучше рассуждать и опираться на факты
Главное преимущество графовых БД в том, что они работают со связями напрямую. Там, где реляционной системе нужны десятки объединений, графовая база идёт по готовым рёбрам. А такие языки, как Cypher в Neo4j или Gremlin, позволяют описывать запросы буквально в терминах связей.
👉 Мой частный клуб по нейросетям
#graphdatabase #ai #neo4j
Обычные базы данных хранят данные в таблицах: строки, колонки, связи через ключи. Такой подход хорошо работает, если нужно хранить структурированную информацию и искать её по точному совпадению.
Например, вы ищете товар по артикулу или сотрудника по ID.
Но что делать, когда данные связаны между собой гораздо сложнее? Когда важен не только сам объект, но и отношения между ним и другими объектами? Именно для этого существуют графовые базы данных.
Графовая модель строится вокруг узлов и рёбер.
Узлы — это сущности: пользователи, товары, проекты. Рёбра описывают отношения: "друг", "купил", "работает над", "смотрел". Причём и узлы, и связи могут иметь свойства. Такой подход ближе к тому, как устроен реальный мир.
Например, нужно найти друзей друзей, которые любят те же фильмы, что и вы. В реляционной базе для этого понадобятся сложные JOINы. В графовой базе достаточно пройти всего два узла, и мы получаем результат.
Где это используется
▫️в соцсетях и рекомендательных системах (Netflix, Amazon и т.д.)
▫️в логистике для поиска оптимальных маршрутов
▫️в медицине при анализе связей между генами, белками и болезнями
▫️в построении knowledge graphs, которые помогают ИИ лучше рассуждать и опираться на факты
Главное преимущество графовых БД в том, что они работают со связями напрямую. Там, где реляционной системе нужны десятки объединений, графовая база идёт по готовым рёбрам. А такие языки, как Cypher в Neo4j или Gremlin, позволяют описывать запросы буквально в терминах связей.
👉 Мой частный клуб по нейросетям
#graphdatabase #ai #neo4j
👍10🔥5❤🔥2
Вот думаю, может стрим сегодня сделать?
Посидеть проект поделать, покодить. А то скучно одному 😂
Посидеть проект поделать, покодить. А то скучно одному 😂
👍16🔥5
Приглашаю вас на прямой эфир с экспертом из компании IT_One — Сергеем Мехоношиным!
Мы обсудим:
➡️ первые шаги и главные уроки карьеры
➡️ переломные точки и рост до lead-позиций
➡️ как не застрять на одном уровне и остаться востребованным
Регистрируйтесь прямо сейчас — отправляйте в бот слово «старт».
🔥Вас ждёт драйвовый разбор карьеры в IT. До встречи 15 сентября в 19:00 (МСК)!
Сергей — старший Android-разработчик, People Manager и Scrum-мастер⚡️
У него более 6 лет опыта в IT, за плечами успешные стартапы. С 2022 года он работает в Газпромбанке, а с 2023 года руководит командой как People Manager и Scrum-мастер. Сергей знает, как совмещать код, управление и построение процессов.
Мы обсудим:
Всем участникам эфира по кодовому слову будет доступен полезный материал: «15 шагов к формированию сплоченной команды»
Регистрируйтесь прямо сейчас — отправляйте в бот слово «старт».
🔥Вас ждёт драйвовый разбор карьеры в IT. До встречи 15 сентября в 19:00 (МСК)!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Neo4j графовая база
Neo4j — это графовая СУБД с открытым исходным кодом. В отличие от реляционных баз, данные здесь хранятся в виде узлов и связей (nodes и relationships), у которых есть свойства.
Главная особенность Neo4j это index-free adjacency. Каждый узел хранит ссылки на соседей, поэтому переход по связям выполняется напрямую, без пересчёта таблиц. Это делает обход графа предсказуемым по времени и позволяет работать даже с очень большими сетями.
База написана на Java, есть драйверы для Python, PHP, Go и других языков. Также реализован REST API.
Для запросов используется язык Cypher. Он декларативны, вы описываете паттерн связей, а не алгоритм обхода.
Пример
Этот запрос находит статьи, прочитанные другими читателями, которые читали те же категории статей, что и Alice, и исключает статьи, которые Alice уже прочитала.
Инструменты
▫️ Neo4j Browser, встроенный интерфейс для запросов и визуализации.
▫️ Neo4j Bloom — графовый просмотрщик для тех, кто не пишет на Cypher.
▫️ Graph Data Science Library это набор инструментов, алгоритмов и библиотек для анализа графовых данных.
Где используют
▫️ В рекомендациях товаров и контента.
▫️ В анализе социальных графов и выявлении мошенничества.
▫️ Для построения knowledge graphs.
▫️ В ритейле для анализа корзин и товаров.
#neo4j
Neo4j — это графовая СУБД с открытым исходным кодом. В отличие от реляционных баз, данные здесь хранятся в виде узлов и связей (nodes и relationships), у которых есть свойства.
Главная особенность Neo4j это index-free adjacency. Каждый узел хранит ссылки на соседей, поэтому переход по связям выполняется напрямую, без пересчёта таблиц. Это делает обход графа предсказуемым по времени и позволяет работать даже с очень большими сетями.
База написана на Java, есть драйверы для Python, PHP, Go и других языков. Также реализован REST API.
Для запросов используется язык Cypher. Он декларативны, вы описываете паттерн связей, а не алгоритм обхода.
Пример
MATCH (alice:Reader {nickname: "Alice"})-[:READS]->(alice_article:Article)
MATCH (alice_article)-[:BELONGS_TO]->(category:Category)
MATCH (other_reader:Reader)-[:READS]->(other_article:Article)-[:BELONGS_TO]->(category)
WHERE alice <> other_reader AND alice_article <> other_article
RETURN DISTINCT other_article.titleЭтот запрос находит статьи, прочитанные другими читателями, которые читали те же категории статей, что и Alice, и исключает статьи, которые Alice уже прочитала.
Инструменты
▫️ Neo4j Browser, встроенный интерфейс для запросов и визуализации.
▫️ Neo4j Bloom — графовый просмотрщик для тех, кто не пишет на Cypher.
▫️ Graph Data Science Library это набор инструментов, алгоритмов и библиотек для анализа графовых данных.
Где используют
▫️ В рекомендациях товаров и контента.
▫️ В анализе социальных графов и выявлении мошенничества.
▫️ Для построения knowledge graphs.
▫️ В ритейле для анализа корзин и товаров.
#neo4j
👍9
Стрим сегодня в 19:00 по мск.
Начну погружение в тему создание агентов на фреймворке CrewAI.
UPD:
Запись стрима в частном клубе
#crewai #ai
Начну погружение в тему создание агентов на фреймворке CrewAI.
UPD:
Запись стрима в частном клубе
#crewai #ai
Telegram
Бот клуба
Бот для доступа в клуб по нейросетям Михаила Омельченко
🔥11👍4❤🔥2
Залетайте на стрим, посидим покодим, потупим и порефакторим. Главное пообщаемся.
Стрим в 20:00 по мск
UPD:
Запись стрима в частном клубе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Please open Telegram to view this post
VIEW IN TELEGRAM
2🎉22👍2❤🔥1
Приглашаю вас на стрим сегодня в 19:15 по мск.
Продолжим работу над ai агентами в CrewAI.
Отметим день программиста🥳
UPD:
Запись стрима в клубе
Продолжим работу над ai агентами в CrewAI.
Отметим день программиста
UPD:
Запись стрима в клубе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Многие пробуют нейросети для работы с текстами, генерации изображений и видео, или чтобы упростить рутинные задачи.
Но результат часто не тот, который ожидался. Возможно пугает разнообразие инструментов и не понятно какой лучше взять.
С какими трудностями чаще всего сталкиваются:
✖️ нейросеть пишет красиво, но не по делу
✖️ нейросеть пишет не в том стиле и формате который нужен
✖️ приходится десятки раз переформулировать запрос, а ответ всё равно не подходит
✖️ одно и то же задание даёт разные результаты — непредсказуемость мешает использовать нейросеть в работе
✖️ непонятно, как объяснить задачу модели так, чтобы она сделала именно то, что нужно
✖️ вместо экономии времени получается потеря времени
На самом деле проблема не в самой нейросети. Нейросеть работает ровно настолько хорошо, насколько точно сформулирован запрос.
Правильно составленный промпт превращает нейросеть в инструмент:
— для написания текстов, генерации изображений и видео под конкретные задачи
— для упрощения и автоматизации рутины
— для получения понятных и применимых ответов без “воды”
Я помогаю:
✅ разбирать ваши задачи и переводить их в правильные промпты
✅ объясняю, как работать с LLM так, чтобы они давали предсказуемый результат
✅ обучаю приёмам, которые позволяют использовать нейросеть как помощника
На консультации разберем конкретно ваш кейс: помогу правильно выбрать инструменты и научу получать результат, а не случайные ответы.
Если хотите научиться, 👉 пишите мне и записывайтесь на консультацию.
Но результат часто не тот, который ожидался. Возможно пугает разнообразие инструментов и не понятно какой лучше взять.
С какими трудностями чаще всего сталкиваются:
✖️ нейросеть пишет красиво, но не по делу
✖️ нейросеть пишет не в том стиле и формате который нужен
✖️ приходится десятки раз переформулировать запрос, а ответ всё равно не подходит
✖️ одно и то же задание даёт разные результаты — непредсказуемость мешает использовать нейросеть в работе
✖️ непонятно, как объяснить задачу модели так, чтобы она сделала именно то, что нужно
✖️ вместо экономии времени получается потеря времени
На самом деле проблема не в самой нейросети. Нейросеть работает ровно настолько хорошо, насколько точно сформулирован запрос.
Правильно составленный промпт превращает нейросеть в инструмент:
— для написания текстов, генерации изображений и видео под конкретные задачи
— для упрощения и автоматизации рутины
— для получения понятных и применимых ответов без “воды”
Я помогаю:
На консультации разберем конкретно ваш кейс: помогу правильно выбрать инструменты и научу получать результат, а не случайные ответы.
Если хотите научиться, 👉 пишите мне и записывайтесь на консультацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12
Выкатил на сайт обновление.
Добавил раздел с промптами для генерации изображений.
Теперь буду работать над его заполнением.
https://aisferaic.ru
Добавил раздел с промптами для генерации изображений.
Теперь буду работать над его заполнением.
https://aisferaic.ru
🔥28❤🔥3
Уже несколько месяцев вынашиваю идею сделать на базе клуба по нейросетям, обучение "вайбкодеров".
Цель, научить и показать людям, которые не разработчики, что им нужно знать, чтобы правильно сделать свой проект. Насколько нужно знать язык, инструменты, технологии и безопасность.
Предназначено для людей которые не ставят перед собой цель стать разработчиком, но хотят сделать свой проект. Так как таких людей довольно много, хочу помочь им.
(Для тех кто будет в меня кидаться💩 . Люди всё равно это будут делать, так лучше им помочь, подсказать и научить)
Как это будет устроено
Вы приходите со своим проектом или идей.
У вас есть вопросы и проблемы по нейросетям, и самой разработке.
Один раз в неделю проводим онлайн встречи длительностью до 2-х часов + можно смотреть в записи. Доступ в чат с участниками и материалами.
На онлайн встречах
Я отвечаю на ваши вопросы.
Разбираем ваши кейсы, подсказываю что именно вам понадобиться изучать для реализации проекта.
Как приступить к разработке, что для старта нужно.
Какие модели для чего лучше всего подходят.
Объясняю, что можно доверить нейросети, что нет, где проверять ее.
Как ей ставить задачи, чтобы она делала, то что необходимо.
На примере своего пет проекта, показываю как работать с нейросетью, какие инструменты есть и как их использовать.
Также сюда входит обучение использование нейросетей для генерации: текста, изображений и видео.
Данная идея возникла после того, как ко мне обратилось несколько человек с вопросом, по вайбкодингу.
Если соберется группа минимум из 5 человек, то стартую такую активность.
Предположительная стоимость месяца участия 5000р.
Вопросы, предложения и желание принять участие, пишите в личку @DJWOMS
Цель, научить и показать людям, которые не разработчики, что им нужно знать, чтобы правильно сделать свой проект. Насколько нужно знать язык, инструменты, технологии и безопасность.
Предназначено для людей которые не ставят перед собой цель стать разработчиком, но хотят сделать свой проект. Так как таких людей довольно много, хочу помочь им.
(Для тех кто будет в меня кидаться
Как это будет устроено
Вы приходите со своим проектом или идей.
У вас есть вопросы и проблемы по нейросетям, и самой разработке.
Один раз в неделю проводим онлайн встречи длительностью до 2-х часов + можно смотреть в записи. Доступ в чат с участниками и материалами.
На онлайн встречах
Я отвечаю на ваши вопросы.
Разбираем ваши кейсы, подсказываю что именно вам понадобиться изучать для реализации проекта.
Как приступить к разработке, что для старта нужно.
Какие модели для чего лучше всего подходят.
Объясняю, что можно доверить нейросети, что нет, где проверять ее.
Как ей ставить задачи, чтобы она делала, то что необходимо.
На примере своего пет проекта, показываю как работать с нейросетью, какие инструменты есть и как их использовать.
Также сюда входит обучение использование нейросетей для генерации: текста, изображений и видео.
Данная идея возникла после того, как ко мне обратилось несколько человек с вопросом, по вайбкодингу.
Если соберется группа минимум из 5 человек, то стартую такую активность.
Предположительная стоимость месяца участия 5000р.
Вопросы, предложения и желание принять участие, пишите в личку @DJWOMS
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥21🤔2💯2❤🔥1
Вот думаю запускать сегодня стрим по ai агентам? В 19:00 по мск.
Ставьте 🔥 если если ждете стрим.
Ставьте 🔥 если если ждете стрим.
1🔥18👎3
Стрим сегодня в 19:00 по мск.
Cоздание AI агентов на фреймворке CrewAI.
UPD:
Запись стрима в частном клубе
#stream
Cоздание AI агентов на фреймворке CrewAI.
UPD:
Запись стрима в частном клубе
#stream
1👍6
Diffusion Studio Pro — новый веб-редактор видео с ИИ. Работает в браузере, обрабатывает часть данных локально, интегрирует 16+ моделей для генерации и апскейла.
https://pro.diffusion.studio/
https://pro.diffusion.studio/
1🔥6
Хочу понять целевую аудиторию своего телеграм канала, чтобы делать релевантный и интересный контент.
Можно выбрать несколько вариантов. Если не нашли подходящий, напишите в комментариях.
Можно выбрать несколько вариантов. Если не нашли подходящий, напишите в комментариях.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
На данный момент (но может измениться) больше всего голосов за программирование и разработку.
Напишите в комментариях, что именно интересует.
А то ролики снимаю, но никто не смотрит 😊 (конечно может💩 снимаю).
Но мы тут про текстовый формат.
Напишите в комментариях, что именно интересует.
А то ролики снимаю, но никто не смотрит 😊 (конечно может
Но мы тут про текстовый формат.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6