AAYMA
RU
Войти

Анализ организационной структуры и функций

Streamlit-прототип сравнивает документы оргструктуры «до» и «после» (DOCX/PDF/XLSX), находит изменённые, потерянные, дублирующиеся и пересекающиеся…

Рабочий MVP
Команда «West side» 4💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: West side
Кейс HackAlem.ai: Спецтрек — Казахтелеком
Стадия: Рабочий MVP

Задача кейса: Агент, сравнивающий документы оргструктуры до и после реорганизации

Суть

Streamlit-прототип сравнивает документы оргструктуры «до» и «после» (DOCX/PDF/XLSX), находит изменённые, потерянные, дублирующиеся и пересекающиеся функции со ссылками на источник и экспортирует заключение в Markdown.

Как устроено

Экстракторы (python-docx, PyMuPDF, openpyxl) извлекают текст и фрагменты. Эвристические правила выделяют подразделения и функции. Функции двух версий сопоставляются по текстовому сходству, по результатам формируются наблюдения об изменениях, потерях, дублировании и пересечениях с исходными фрагментами. В последнем коммите добавлена приоритизация подразделений по риску. Внешний AI API не используется.

Ключевые решения

  • heuristic function extraction
  • text similarity matching
  • department risk prioritization

Особенности

Решение полностью локальное, без LLM, у каждого наблюдения указан исходный фрагмент документа.

Стек

Python · Streamlit · python-docx · PyMuPDF · openpyxl · pytest


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-a4cdff0f-west-side.

README

README.md

Анализ организационной структуры и функций

Прототип для автоматизированного сравнения двух версий организационных документов — «До» и «После».

Система извлекает текст из документов, сопоставляет функции и формирует аналитическое заключение с указанием источников. Решение помогает находить изменения функций, потенциальные потери, дублирование, пересечения ответственности и изменения подразделений.

Что реализовано

  • загрузка документов версий «До» и «После»;
  • поддержка DOCX, PDF, XLSX и XLSM;
  • извлечение текста и фрагментов документов;
  • определение подразделений и функций;
  • сопоставление функций между версиями документов;
  • поиск изменений функций;
  • выявление потенциально потерянных функций;
  • выявление возможного дублирования и пересечения ответственности;
  • отображение источника каждого наблюдения;
  • аналитическая сводка результатов;
  • экспорт заключения в Markdown;
  • интерфейс на Streamlit;
  • автоматические тесты основного сценария.

Как работает решение

  1. Пользователь загружает исходную версию документа в блок «До».
  2. Пользователь загружает обновлённую версию в блок «После».
  3. Система извлекает текст и структурирует фрагменты документов.
  4. Правила анализа определяют функции и подразделения.
  5. Функции версий «До» и «После» сопоставляются по текстовому сходству.
  6. Система формирует наблюдения об изменениях, потерях, дублировании и пересечениях.
  7. Для результатов отображаются исходные фрагменты документов.
  8. Пользователь может просмотреть аналитическое заключение и скачать его в Markdown.

Технологии и архитектура

  • Python
  • Streamlit
  • python-docx
  • PyMuPDF
  • openpyxl
  • pytest

Основные компоненты:

  • analyzer/extractors.py — извлечение данных из документов;
  • analyzer/findings.py — анализ функций и формирование наблюдений;
  • analyzer/matching.py — сопоставление функций;
  • analyzer/models.py — модели данных;
  • analyzer/report.py — формирование аналитического заключения;
  • app.py — пользовательский интерфейс Streamlit.

Установка

pip install -r requirements.txt

Запуск

streamlit run app.py

После запуска откройте локальный адрес, указанный Streamlit в терминале.

Проверка

Для запуска автоматических тестов:

pytest

Основной пользовательский сценарий:

  1. Загрузить документ «До».
  2. Загрузить документ «После».
  3. Нажать «Запустить анализ».
  4. Проверить найденные изменения и их источники.
  5. Просмотреть сопоставление функций и аналитическое заключение.

Данные и внешние сервисы

Документы обрабатываются локально приложением. Текущая версия прототипа не требует внешнего AI API для выполнения основного анализа.

Ограничения

  • Определение подразделений и функций основано на эвристических правилах и зависит от структуры исходных документов.
  • В сложных или нестандартно оформленных документах название подразделения может быть определено неточно.
  • Результаты автоматического анализа носят рекомендательный характер и требуют экспертной проверки.
  • Старые форматы .doc и .xls необходимо предварительно сохранить в современном формате.
  • Сопоставление функций основано на текстовом сходстве и не является полноценным семантическим анализом.

Команда

Проект разработан командой West Side в рамках HackAlem AI.

Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
16
Авторы
5
Файлы
17
Ветки
5

Авторы коммитов

Sabina Saratayeva 6Amanzhankyzy Amina 4nurlanf1 4Saratayeva Sabina 1aminaamanzhankyzy 1

История коммитов

  • 2026-09-23 17:55feat: add department risk prioritizationAmanzhankyzy Amina
  • 2026-09-23 17:13docs: update README and improve unit detectionSabina Saratayeva
  • 2026-09-23 16:24fix: correct test indentationSabina Saratayeva
  • 2026-09-23 16:11Merge pull request #3 from BAITC-Hacks/Fatimanurlanf1
  • 2026-09-23 16:04Merge pull request #2 from BAITC-Hacks/Sabina-SaratayevaSaratayeva Sabina
  • 2026-09-23 16:04Merge pull request #1 from BAITC-Hacks/Amina-Amanzhankyzyaminaamanzhankyzy
  • 2026-09-23 15:56report: improve findings formattingSabina Saratayeva
  • 2026-09-23 15:54report: add analysis summarySabina Saratayeva
Все коммиты (16)
  • 2026-09-23 15:51report: add expert review noticeSabina Saratayeva
  • 2026-09-23 15:35ui: add analysis disclaimernurlanf1
  • 2026-09-23 15:33ui: add document upload guidancenurlanf1
  • 2026-09-23 15:27docs: add project launch instructionsnurlanf1
  • 2026-09-23 15:08Add finding source validation testAmanzhankyzy Amina
  • 2026-09-23 15:07Add empty documents validation testAmanzhankyzy Amina
  • 2026-09-23 15:06Add empty after validation testAmanzhankyzy Amina
  • 2026-09-23 13:38Implement hackathon solutionSabina Saratayeva
Структура репозитория (17 файлов)
.env.example
.gitignore
README.md
analyzer/__init__.py
analyzer/extractors.py
analyzer/findings.py
analyzer/matching.py
analyzer/models.py
analyzer/report.py
app.py
pyproject.toml
requirements.txt
sample_data/README.md
sample_data/after.xlsx
sample_data/before.docx
sample_data/create_samples.py
tests/test_analysis.py
Ветки (5)

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.