Веб-сервис, для автоматического анализа текста двух документов в формате .docx, осуществляющий поиск соответствий между документами и присваивающий статус соответствия. Сравнение осуществляется при помощи LLM.
Документы (в формате .docx):
- Документ с техническими требованиями
- Техническое описание
Файл в формате .csv, содержащий пункты из обоих документов, а также статус соответствия между пунктами
📁 dataset — примеры входных данных 📁 womparator - код приложения
- 📁 frontend - код веб-интерфейса
- 📁 backend - код сервера
- 📁 api - код для взаимодействия с LLM (Yandex GPT)
Проект состоит из двух компонент:
- Клиент (frontend) - обрабатывает ввод пользователя, получает от него файлы для сравнения, отправляет данные на сервер
- Сервер (backend) - получает данные от клиента, парсит файлы
.docx, доставая из них текст и передает их с помощью API в LLM. После получения ответа, преобразует данные в формат.csvи отправляет файл на клиент для отображения в веб-интерфейсе
Процесс сравнения организован следующим образом:
- Из текста с техническими требованиями выделяются конкретные пункты требований
- Документ с техническим описанием разбивается на части, на их основе строится векторную база ембедингов
- Для каждого пункта из 1. строится ембединг и ищется похожее в базе из 2. (1-3 ближайшие части текста). Затем у LLM запрашивается статус соответствия пункта найденным частям текста
Требуется установленный docker и docker-compose
В корне репозитория выполнить команду:
docker-compose upДанная команда выполняет следующие действия:
- Собирает контейнеры для клиента и сервера
- Осуществляет отображение внутренних портов контейнеров на порты хостовой машины:
- frontend:3000 ->
${WOMP_FRONT_PORT} - backend:8080 ->
${WOMP_BACK_PORT}
- frontend:3000 ->
- Запускает клиент и сервер
ПРИМЕЧАНИЕ: Для работы LLM требуется задать переменные среды
YC_FOLDER_IDиYC_IAM_TOKEN
Хостовые порты клиента и сервера задаются через переменные окружения. По умолчанию их значения берутся из файла .env, расположенного в корне репозитория.
Номера портов возможно менять, задавая конкретные значения соответствующих переменных среды при запуске docker-compose.
После поднятия контейнеров, нужно открыть веб-страницу по адресу
http://localhost:${WOMP_FRONT_PORT} для доступа к веб-интерфейсу.
Бэкэнд доступен по адресу http://localhost:${WOMP_BACK_PORT}