Skip to content

Archkras/T1_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Чат-бот (интеллектуальный советник с RAG)

Описание задачи

Создание чат бота для ответов на вопросы с RAG по базе документов из корпуса Lenta.ru. Основные требования:

  • ответ по тексту из RAG
  • обработка нерелевантных документам из RAG вопросов.

Техническое решение

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

  • Младший менеджер (AI сущность отвечающая на вопросы на основе документов из RAG) Отвечает на основе базы данных в RAG. В случае релевантного вопроса, нахождения документов и способности дать ответ на вопрос возвращает ответ и ссылки на используемые документы. По ссылке можно перейти на портал Lenta.ru. В случае неспособности дать ответ перенаправляет запрос Старшему менеджеру.
  • Старший менеджер (живой человек или как реализовано AI сущность использующая веб поиск для ответа на вопрос, если не получается ответить младшему менеджеру) Отвечает на вопрос переданный от младшего менеджера, на основании документа полученного путем веб поиска.

Для решения используется:

  • Colab(Jupyter) для прототипирования и запуска чата
  • основной фреймворк Langgraph
  • Open AI API для доступа к генеративной LLM и модели эмбединга
  • Gradio для отображения чата
  • Chroma векторная база данных для построения RAG
  • Tavily сервис для веб поиска
  • Langsmith для трейсинга ответов

Запуск

Зайти в файл T1_langgraph_rag.ipynb щелкнуть Open in Colab. В открывшемся колабе в разделе Setup заполнить ключи доступа к OPENAI и TAVILY.

OPENAI_API_KEY = "" # add you OPENAI_API_KEY here
TAVILY_API_KEY = "" # add you TAVILY_API_KEY here

Далее запустить все ячейки. Перейти в раздел UI Gradio внизу откроется чат куда можно задавать вопросы. Ниже представлены примеры вопросов: Q_relevant вопросы сгенерированные к некоторым данным находящимся в RAG Q_not_relevant сгенерированные вопросы не относящиеся к данным находящимся в RAG

Описание основных элементов системы

Retrivers - создание, загрузка векторной базы данных

LLMs - сущности для подготовки запросов для последующего создания графа

  • Router: определение соответствия вопроса документам в БД
  • Retrieval Grader: оценка документа из DB на соответствие вопросу
  • Generate: Генерация ответа на вопрос на основании документов
  • Hallucination Grader: Проверка основывается ли ответ на фактах
  • Answer Grader: Проверка отвечает ли ответ на вопрос
  • Question Re-writer: Переписывает вопрос для улучшения поиска релевантных документов
  • Web Search Tool: поиск в интернете, имитация живого человека

Construct the Graph - создание графа на основе ранее определенных сущностей

Graph schema - визуальная схема графа

Use Graph - несколько тестов графа

UI Gradio - запуск чата на Gradio

link to Langsmith - ссылка на трейсинг запроса "Югославия" (есть документы в БД, но документы не дают ответ на вопрос)

Возможности доработки и улучшения

  • Доработать БД до гибридного поиска к примеру BM25
  • Добавить реранжирование документов из БД
  • Доработать Router для возможности поддержания разговора
  • Улучшить промты

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published