/demo_rag_vsegpt

Demo RAG realization for VseGPT service

Primary LanguagePythonMIT LicenseMIT

Демонстрационная реализация RAG для сервиса VseGPT.ru

RAG - набор методов, направленных на то, чтобы

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

Применяется в случае, когда у вас есть МНОГО документов, не влезающих в контекст и когда надо по ним отвечать на запросы пользователя.

Базируется на базе данных FAISS - https://python.langchain.com/v0.2/docs/integrations/vectorstores/faiss/

Использование:

  • Установите зависимости через requirements.txt
  • Добавьте свой ключ VseGPT в нужные места кода в файлы rag_db_create.py и rag_db_search.py
os.environ["OPENAI_API_KEY"] = "your_vsegpt_key"
  • Запустите файл rag_db_create. Он сделает следующее:
    • Разобьет файл sun.txt (информация о Солнце из Википедии) на кусочки (chunks)
    • Для каждого кусочка сделает embedding (векторное выражение смысла) через API
    • Получившуюся базу сохранит в docs_db_index (т.к. базу имеет смысл сделать 1 раз)
  • Запустите файл rag_db_search. Он сделает следующее:
    • Загрузит базу из docs_db_index
    • Найдет 3 чанка из базы данных, самых похожих на запрос пользователя
    • Добавит эти чанки в запрос к ChatGPT как точную информацию
    • Получит результат.

В текущем варианте:

  • Вопрос: "Расстояние от Земли до Солнца?"
  • Будет получен ответ: "Расстояние от Земли до Солнца составляет приблизительно 149,6 миллионов километров, что примерно равно астрономической единице."