Skip to content

106-inc/womparator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

womparator

Веб-сервис, для автоматического анализа текста двух документов в формате .docx, осуществляющий поиск соответствий между документами и присваивающий статус соответствия. Сравнение осуществляется при помощи LLM.

Входные данные

Документы (в формате .docx):

  1. Документ с техническими требованиями
  2. Техническое описание

Выходные данные

Файл в формате .csv, содержащий пункты из обоих документов, а также статус соответствия между пунктами

Структура проекта

📁 dataset — примеры входных данных 📁 womparator - код приложения

  • 📁 frontend - код веб-интерфейса
  • 📁 backend - код сервера
    • 📁 api - код для взаимодействия с LLM (Yandex GPT)

Архитектура решения

Проект состоит из двух компонент:

  1. Клиент (frontend) - обрабатывает ввод пользователя, получает от него файлы для сравнения, отправляет данные на сервер
  2. Сервер (backend) - получает данные от клиента, парсит файлы .docx, доставая из них текст и передает их с помощью API в LLM. После получения ответа, преобразует данные в формат .csv и отправляет файл на клиент для отображения в веб-интерфейсе

Процесс сравнения организован следующим образом:

  1. Из текста с техническими требованиями выделяются конкретные пункты требований
  2. Документ с техническим описанием разбивается на части, на их основе строится векторную база ембедингов
  3. Для каждого пункта из 1. строится ембединг и ищется похожее в базе из 2. (1-3 ближайшие части текста). Затем у LLM запрашивается статус соответствия пункта найденным частям текста

Запуск

Требуется установленный docker и docker-compose

В корне репозитория выполнить команду:

docker-compose up

Данная команда выполняет следующие действия:

  1. Собирает контейнеры для клиента и сервера
  2. Осуществляет отображение внутренних портов контейнеров на порты хостовой машины:
    1. frontend:3000 -> ${WOMP_FRONT_PORT}
    2. backend:8080 -> ${WOMP_BACK_PORT}
  3. Запускает клиент и сервер

ПРИМЕЧАНИЕ: Для работы LLM требуется задать переменные среды YC_FOLDER_ID и YC_IAM_TOKEN

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

Номера портов возможно менять, задавая конкретные значения соответствующих переменных среды при запуске docker-compose.

После поднятия контейнеров, нужно открыть веб-страницу по адресу http://localhost:${WOMP_FRONT_PORT} для доступа к веб-интерфейсу.

Для разработчиков

Бэкэнд доступен по адресу http://localhost:${WOMP_BACK_PORT}

About

State of the art ML-based solution for documents comparison

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors