Титульный лист (преподаватель Гуненков М.Ю.): титульник_дз_нлп_гуненков.docx
Титульный лист (преподаватель Бугаенко И.Е.): титульник_дз_нлп_бугаенко.docx
Получить практические навыки построения и разработки RAG-системы, включающей backend-часть (логика обработки запросов пользователей, поиска релевантных документов и формирования запросов к LLM) и web-интерфейс.
Большие языковые модели сегодня активно применяются в коммерческих IT-продуктах, в том числе в замкнутом корпоративном контуре. Одним из наиболее распространенных кейсов языкового моделирования являются вопросно-ответные системы. Решения на базе RAG сегодня являются стандартом генеративных реализации генеративных вопросно-ответных систем.
Особенно хорошо данный подход применяется для работы с правовыми базами знаний, поскольку правовые документы имеют хорошую структуру (деление на статьи, пункты и подпункты, забегая вперед, по этой причине такие документы очень удобно дробить на чанки).
В домашнем задании требуется сформировать и реализовать RAG-систему для поиска правовых статей из Конституции Российской Федерации с использованием языка программирвоания Python (никакого n8n 😈), а также спроектировать и разработать web-приложение для взаимодействия с базой знаний.
Результаты работы необходимо представить в виде отчета, оформленного по требованиям нормоконтроля, принятого на кафедре.
Предполагается использование open source решений, выполнение ДЗ не требует финансовых вложений для аренды серверов, мощностей и платных API!
Структура этапов выполнения ДЗ соответствует структуре разделов и подразделов отчёта
Необходимо определиться с теми технологиями, которые вы планируете использовать для разработки приложения. Нужно зафиксировать инструментарий для следующих компонентов:
Результат данного раздела: сформированный стек технологий
2.1. Первоначально загрузите базу знаний и проанализируйте ее структуру (обратите внимание на то, что является минимальной единицей текста в документе, а также какие разделы присутствуют в документе).
2.2. Выполните чанкирование текстового документа. По возможности, сохраните метаинформацию о чанках (номер статьи, главы, страница документа и т.д.).
2.3. Выполните векторизацию чанков с использованием отобранной модели.
2.4. Сохраните полученные эмбеддинги в векторной базе данных.
Результат данного раздела: Векторизированная и разделенная база знаний, сохраненная в векторной БД
3.1. Используя выбранный фреймворк, сформируйте пайплайн по отбору релевантных документов из базы знаний в соответствие с запросом пользователя.
3.2. Выберите реранкер и примените его для переранжирования отобранных релевантных документов.
3.3. Сформируйте системный промпт, который позволит решить исходную задачу. Промпт обязательно должен содержать:
3.4. Создайте функционал по обращению к LLM с системным промптом, запросом пользователя и отобранным контекстом.
Результат данного раздела: функционал по генерации ответа LLM с учетом запроса пользователя и релевантных документов
Используя выбранный фреймворк, разработайте API для получения результата работы LLM. API должен состоять минимум из одного эндпоинта, который принимает на вход запрос пользователя, а возвращает ответ модели.
Результат данного раздела: API для получения ответа LLM
Используя выбранный подход по созданию клиентской части, разработайте web-приложение, которое позволяет вводить пользовательский запрос, а также получать ответ из базы знаний. Опционально, можно добавить историю чата.
Результат данного раздела: web-приложение для работы с базой знаний.
Отчет обязательно должен содержать:
Отчёт оформляется в соответствии с требованиями
Для списка источников отдельные требования к оформлению
Домашнее задание считается выполненным, если оно подписано, загружено через электронный кабинет ОмГТУ и принято преподавателем
Преподаватель оставляет за собой право отклонить работу без объяснения причин, если оформление отчёта и списка источников не соответствует требованиям нормоконтроля
Берется титульный лист с инициалами преподавателя, которому вы идете сдавать работу