Как стать автором
Обновить

RAG-технология в действии: как создать интеллектуальную систему поиска по нормативным документам

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров11K
Всего голосов 16: ↑16 и ↓0+20
Комментарии18

Комментарии 18

Попробовал, один из немногих действительно полезных ботов на сегодня!

Спасибо за статью. Решаю подобную задачу сейчас, но без использования сторонних сервисов. Нужно развернуть локальную модель на железе 4cpu 4-8gb

Кстати, очень сложно построить rag, когда у тебя документация - это описание методов какого нибудь фреймворка.
Без контекста итд.

8192 токена у ChatGPT было во времена версии 3.5 Сейчас окно 128к токенов

RAG это просто поиск информации, его обычно более чем недостаточно, часто даже вредно.

Помимо поиска релевантной информации, необходимо итеративное исследование задачи (запроса пользователя) о том, хватит ли уже собранной информации, какая информация может понадобиться для решения, нет ли противоречия в данных, ну и само собой полезная ли эта релевантная информация.

Вместо слепого добавления найденных кусков документов в итоговое контекстное окно, можно пройтись по документу с анализом и самморизацией в контексте задачи пользователя (типа что из этого документа может понадобиться что бы решить следующую задачу ...)

Все что попало по простому в контекстное окно может воспрениматься gpt как неприложная истина, неплохо было бы заставить модель сомневаться, особенно если это размышляющая.

Ну и в догонку, если документы - изображения/pdf, можно получить еще больше проблем, если предварительно их не проанализировать и не распарсить как набор текста и картинок, и этот процесс сам по себе не простой, иначе, просто добавив в визуальную модель картинки, можно получить отвратительный результат.

Полностью согласен, без фильтрации результатов RAG в контекст попадает много мусорной информации. Поэтому есть отсеивание по релевантности и на пост-процессе выборка наиболее релевантных кусков контекста для формирования референтных источников уже самой LLM, т.е.на финале модель проверяет свой ответ и ссылки на документы, что бы убедиться что ответ соответствует ожиданиям пользователя.

Статья просто супер то что нужно.

Скинь гитхаб, пожалуйста. Хочу попробовать на юридическом корпусе и прогнать на бенчмарке

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

Так, ну я потестил. Вот результат для юридического домена:

Инициализация модели эмбеддингов... Модель эмбеддингов успешно инициализирована. Запуск программы... Обработка запроса: Какие права есть у арендатора по Гражданскому кодексу РФ? Начало генерации ответа... Проверка наличия существующего векторного хранилища... Попытка загрузки векторного хранилища из vector_store... Vector store успешно загружен из: vector_store Существующий vector store успешно загружен. Попытка загрузки векторного хранилища из vector_store... Vector store успешно загружен из: vector_store Предобработка пользовательского запроса... Запрос успешно предобработан. Подготовленный запрос: Какие права арендатора предусмотрены Гражданским кодексом РФ? Извлечение до 15 релевантных документов... Извлечено 15 документов. Вычисление косинусной похожести документов... Косинусная похожесть вычислена для 15 документов. Отфильтровано 3 релевантных документов. Релевантные документы: Документ 1: собственнику вырученных от продажи средств за вычетом расходов на исполнение судебного решения. 2. П... Документ 2: имущества, переходящего в порядке наследования по закону в собственность Российской Федерации, а так... Документ 3: 1. В Российской Федерации признаются частная, государственная, муниципальная и иные формы собственно... Контекст, переданный модели: Content: собственнику вырученных от продажи средств за вычетом расходов на исполнение судебного решения. 2. Правила, предусмотренные настоящей статьей, применяются к отношениям, связанным с прекращением права собственности на бесхозяйственно содержимые жилые помещения, с особенностями, предусмотренными Жилищным кодексом Российской Федерации. 3. Правила, предусмотренные настоящей статьей, применяются к машино-местам, если иное не предусмотрено законом и не вытекает из существа правоотношений.

Content: имущества, переходящего в порядке наследования по закону в собственность Российской Федерации, а также порядок передачи его в собственность субъектов Российской Федерации или в собственность муниципальных образований определяется законом. (В редакции Федерального закона от 29.11.2007 № 281-ФЗ)

Content: 1. В Российской Федерации признаются частная, государственная, муниципальная и иные формы собственности. 2. Имущество может находиться в собственности граждан и юридических лиц, а также Российской Федерации, субъектов Российской Федерации, муниципальных образований. 3. Особенности приобретения и прекращения права собственности на имущество, владения, пользования и распоряжения им в зависимости от того, находится имущество в собственности гражданина или юридического лица, в собственности Российской Федерации, субъекта Российской Федерации или муниципального образования, могут устанавливаться лишь законом. Законом определяются виды имущества, которые могут находиться только в государственной или муниципальной собственности. 4. Права всех собственников защищаются равным образом.

Проверка релевантности запроса...
Максимальная похожесть: 0.7461, порог: 0.6
Постобработка ответа LLM...
Ответ успешно постобработан.

ВОПРОС:
Какие права есть у арендатора по Гражданскому кодексу РФ?

ОТВЕТ ОТ LLM:
Права арендатора по Гражданскому кодексу РФ

Хотя предоставленный контекст не содержит прямого упоминания прав арендатора, согласно общим положениям Гражданского кодекса РФ (ГК РФ), арендатор обладает следующими основными правами:

  1. Право пользования имуществом – арендатор вправе использовать имущество в соответствии с условиями договора и его назначением (ст. 606 ГК РФ).

  2. Преимущественное право на возобновление договора – при добросовестном исполнении обязательств арендатор имеет приоритет в заключении договора на новый срок (ст. 621 ГК РФ).

  3. Право на возмещение затрат – если арендатор улучшил имущество с согласия арендодателя, он может требовать компенсации (ст. 623 ГК РФ).

  4. Сохранение договора при смене собственника – договор аренды остается в силе даже при переходе права собственности на имущество (ст. 617 ГК РФ).

  5. Право на досрочное расторжение – в случаях, предусмотренных законом или договором (например, при существенных недостатках имущества).

Для уточнения деталей рекомендуется обратиться к главе 34 ГК РФ.

Источники:

  • Гражданский кодекс РФ (ст. 606, 617, 621, 623).

References: Russian Civil Code dataset

ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ:
['Russian Civil Code Text']
Программа завершена.
Press any key to continue . . .




Контекст вообще не в теме и модель это сама увидела

Спасибо за тест! Залью в гитхаб скелет от продакт версии бота, там посерьёзнее настройки, но позже, нужно подготовить. Самому интересно стал потестить на юридическом корпусе.

Использовать 20 кол релеватных частей неэффективно + нету слой классификации вопроса тем самым сужать круг поиска

День добрый, зачетный RAG бот. я тоже новичок и начал делать по нормативке. 2ю неделю топтаюсь чтобы агент понимал пункты, парсинг сделал но он подставляет другие пункты, вроде промт написал чтобы не придумывал от себя. у меня структура из OpenAI и база данных Supabase.

Не вешайте на LLM указание места (пункта) источника, он не справится. Номер страницы или номер пункта нужно вытаскивать программно. Примерно так: большой объем текстовой информации (стандартов) разделяете на чанки и эти чанки сохраняете в документе. Текст в document.page_content, номер страницы в document.page_number, номер пункта document.section_number. В LLM в качестве контекста улетят чанки наиболее приближенные к вопросу пользователя, и вы уже будете знать на в каком месте документа они расположены, вытаскиваете эту информацию и прикрепляете к ответу LLM.

так интересно, но многое непонятно

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации