RAG с нуля: разговорный RAG без LangChain или LlamaIndex
Автор: Pradip Nichite
Загружено: 2024-10-29
Просмотров: 6097
Описание:
Устали от «чёрного ящика» фреймворков, таких как LangChain и LlamaIndex? В этом подробном руководстве мы покажем вам, как создать полнофункциональный разговорный чат-бот RAG (Retrieval-Augmented Generation), используя только основные библиотеки, такие как OpenAI и ChromaDB. Получите глубокое понимание и контроль, необходимые для лучшей отладки и расширенной настройки.
Код: https://blog.futuresmart.ai/building-...
Мы подробно рассмотрим каждый компонент готовой к использованию системы RAG, от обработки ваших личных документов до управления разговорной памятью для беспрепятственного ответа на уточняющие вопросы.
💡 Что вы изучите и создадите:
• Обработка и индексирование документов: научитесь загружать, разделять и разбивать на фрагменты ваши PDF- и DOCX-файлы без использования загрузчиков фреймворков. • Настройка векторной базы данных: настройте и используйте ChromaDB для хранения вложений документов для эффективного семантического поиска. Для создания вложений мы будем использовать модели Sentence Transformer с открытым исходным кодом.
• Семантический поиск: реализуйте функцию для обработки запроса пользователя и извлечения наиболее релевантных фрагментов документов из вашей базы знаний.
• Разработка динамических подсказок: создайте надежную подсказку, которая объединяет запрос пользователя, извлеченный контекст из ваших документов и историю чата.
• Разговорная память: ключ к созданию настоящего чат-бота! Узнайте, как управлять историей чата для точной обработки дополнительных вопросов.
• Контекстуализация запросов: мы решим распространенную проблему RAG, преобразуя дополнительные вопросы (например, «Где это находится?») в полноценные, автономные вопросы (например, «Где находится Green Grow Innovations?»), чтобы обеспечить точный поиск документов каждый раз.
⚙️ Ключевые библиотеки и концепции:
• LLM: API автодополнения чата OpenAI
• Векторная база данных: ChromaDB
• Встраивание: преобразователи предложений (все MiniLM-L6-v2)
• Базовая логика: создание загрузчиков, разделителей текста и управление сеансами на Python.
• Архитектура RAG: извлечение, дополнение и генерация с нуля.
🕒 Временные метки:
00:00 — Зачем разрабатывать RAG с нуля (без LangChain)?
01:12 — Полный обзор архитектуры системы RAG
03:57 — Часть 1: Обработка и индексирование документов
04:30 — Шаг 1: Загрузка документов (PDF, DOCX, TXT)
07:58 — Шаг 2: Разделение текста на фрагменты (логика разделения на фрагменты)
11:27 — Шаг 3: Настройка ChromaDB и функций встраивания
13:28 — Шаг 4: Добавление обработанных документов в ChromaDB
17:03 — Часть 2: Семантический поиск и извлечение
17:13 — Тестирование извлечения с помощью примера запроса
19:38 — Форматирование извлеченного контекста для LLM
20:32 — Часть 3: Генерация с помощью OpenAI
20:46 — Как использовать API завершения чата OpenAI
23:19 — Выполнение полного запроса RAG (извлечение и Generate)
24:52 - Часть 4: Делаем это диалоговым
25:22 - Сложности с дополнительными вопросами в RAG
25:35 - Управление историей чата и сеансами пользователей
28:28 - Ключевой шаг: контекстуализация запросов для точности
30:59 - Заключительная диалоговая функция RAG (подборка)
32:23 - ДЕМОНСТРАЦИЯ: С контекстуализацией запросов и без неё
35:36 - Полный обзор системы
#RAG #LLM #OpenAI #Python #AI #MachineLearning #GenerativeAI #FutureSmartAI
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: