AAYMA
RU
Войти

QAITU · карта ответственности

Streamlit-приложение, сравнивающее комплекты документов оргструктуры «до» и «после» реорганизации: изменения подразделений, передача функций…

Доведённый продукт
Команда «AI-QAITU» 20💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: AI-QAITU
Кейс HackAlem.ai: Спецтрек — Казахтелеком
Стадия: Доведённый продукт

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

Суть

Streamlit-приложение, сравнивающее комплекты документов оргструктуры «до» и «после» реорганизации: изменения подразделений, передача функций, возможные потери и дубли ответственности в матрице «функция × подразделение» с цитатами, плюс модуль метрик из отчётов.

Как устроено

Экстракторы разбирают DOCX, PDF с текстовым слоем, XLSX/XLSM с локаторами (абзац, страница, лист/строка), локальный анализатор сопоставляет функции по сходству формулировок, действий и объектов и строит матрицу с эвристическими баллами уверенности. Опциональный ИИ-режим OpenAI предлагает смысловые сопоставления, каждое проходит проверку источников (цитата буквально есть в документе) и независимую смысловую перепроверку вторым запросом; непроверенное исключается. Экспорт в краткий/полный PDF (ReportLab), Excel из девяти листов, JSON и Markdown.

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

  • извлечение текста DOCX/PDF/XLSX
  • эвристическое сопоставление функций
  • матрица функция × подразделение
  • двухэтапная верификация LLM-выводов
  • ReportLab PDF-отчёты

Особенности

Жёсткая проверяемость ИИ: буквальная сверка цитат с источником и отдельный запрос-рецензент, самооценка модели ограничена 89%; тест test_no_causal_language запрещает причинные формулировки в модуле метрик.

Стек

Python · Streamlit · OpenAI API · ReportLab · Docker · GitHub Actions

Модели

gpt-5.4-mini


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

README

README.md

QAITU · карта ответственности

QAITU — что изменилось, кто отвечает, где источник

ИИ-агент для анализа организационной структуры и функций
HackAlem AI · спецтрек Казахтелеком · ветка mvp-nurtas

Возможности · Быстрый запуск · Демонстрация · Архитектура · Проверки

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

Дополнительный модуль сопоставляет изменения структуры с показателями из периодических отчётов: как изменились сроки, объём проверок, нагрузка и качество.

Рабочий прототип. Выводы показывают возможные риски и требуют проверки сотрудником. Демо, реальные документы и наблюдаемые эффекты явно разделены.

Что умеет QAITU

Вопрос сотрудникаРезультат в приложении
Какие подразделения изменились?Сохранённые, созданные, упразднённые и преобразованные подразделения с источниками
Куда перешли обязанности?Сопоставление функций, включая передачу между отделами и разделение одной обязанности на несколько
Что могло потеряться?Кандидаты на утрату закрепления с прежней формулировкой и рассмотренным новым контекстом
Где пересекается ответственность?Возможные дубли и конфликты исполнения и независимого контроля
На чём основан вывод?Документ, пункт или локатор, исходная цитата и идентификатор источника
Что передать руководителю?Краткий или полный PDF, аналитический Excel, Markdown и JSON

Форматы: DOCX · PDF с текстовым слоем · XLSX · XLSM. Можно загрузить несколько файлов в каждый комплект: положения, должностные инструкции, приказы и приложения.

Матрица «функция × подразделение»

Строка объединяет сопоставленные назначения одной функции. Колонки показывают подразделения до и после изменений. При выборе строки открываются обе редакции цитат и контекст, по которому определён ответственный.

Матрица показывает по 10 строк на странице. Кнопка «Развернуть» открывает большое окно с теми же фильтрами и отдельными страницами по 10 строк. Масштаб таблицы автоматически подстраивается под ширину и высоту окна, включая изменение его размера, чтобы текущая страница помещалась без прокрутки. После закрытия можно продолжить работу с отчётом.

СигналКак его читать
🔵 ИзменениеНазначение добавлено, передано или изменено
🔴 Ответственный после не найденВ новом комплекте не найдено подходящего назначения; требуется проверка
🟡 Несколько владельцевВозможное пересечение; нужно сверить предмет, роль и область ответственности
?Владельца или назначение нельзя уверенно определить
—Подразделение отсутствует в перечне этой редакции

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

Почему такая оценка

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

БаллУровень
90–99%Очень высокая
70–89%Высокая
40–69%Требует проверки
0–39%Слабый сигнал

Это эвристические оценки, а не вероятность нарушения или тяжесть последствий. Оценка помогает выбрать порядок экспертной проверки; 100% и автоматического подтверждения нарушения нет. Слабые сигналы можно показать отдельным фильтром; полный экспорт их сохраняет.

Отметка Все необходимые документы «после» загружены — заявление пользователя, учитываемое при следующем анализе. Успешное чтение файлов само по себе не доказывает полноту комплекта. Эти оценки основного сравнения отличаются от уровней уверенности в связях с метриками.

Быстрый запуск

Понадобятся Python 3.10+, Git и доступ к репозиторию. Для локального демо ключ OpenAI не нужен. После обновления существующей установки повторите python -m pip install -r requirements.txt: PDF-экспорт использует добавленный ReportLab и включённые в проект кириллические шрифты.

git clone --branch mvp-nurtas https://github.com/BAITC-Hacks/hack-0dd0a2e7-ai-qaitu.git
cd hack-0dd0a2e7-ai-qaitu

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m streamlit run app.py

Откройте localhost:8501 или адрес, который выведет Streamlit. Нажмите «Запустить контрольный пример» в центре стартового экрана — этот пример всегда выполняется локально.

Windows · PowerShell

После клонирования репозитория выполните в его корне:

py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe -m streamlit run app.py

Активация окружения не требуется. В дальнейших командах заменяйте python на .\.venv\Scripts\python.exe.

Docker · запуск с сохранением результатов метрик
docker build -t qaitu .
docker run --rm -p 8501:8501 \
  -v qaitu-data:/app/data \
  -v qaitu-runs:/app/runs \
  qaitu

Образ использует Python 3.12. Именованные тома сохраняют базу знаний и результаты после остановки контейнера.

Для ИИ-режима передайте заранее заданные переменные окружения, добавив к docker run параметры --env OPENAI_API_KEY --env OPENAI_MODEL перед именем образа.

От документов к заключению

  1. В разделе «Структура и функции» загрузите комплекты «До изменений» и «После изменений». Порядок редакций задаёте вы.
  2. Выберите «Локальное сравнение» или «ИИ + локальное сравнение» и нажмите «Сравнить документы».
  3. Начните с результата сравнения и вопросов для проверки. Перейдите к структуре, матрице или ИИ-сравнению через навигацию над результатами; раскройте причины оценки выбранного кандидата.
  4. Откройте интересующий вывод и проверьте цитаты. Фильтры и страницы матрицы не сокращают полный экспорт.
  5. В разделе «Экспорт отчёта» выберите краткий или полный PDF, Excel либо JSON. Markdown доступен в блоке «Дополнительно · технический формат».

Для Word источник указывает абзац или строку таблицы, для PDF — физическую страницу, для Excel — лист и строку. Номер пункта сохраняется в тексте, если присутствует в извлечённом фрагменте.

Отчёт для чтения и анализа

ФорматЧто внутри
Краткий PDFСводка, изменения структуры, до 10 кандидатов с оценкой от 40%, до 8 передач и до 8 новых закреплений; до 5 принятых ИИ-сопоставлений
Полный PDFВсе кандидаты, включая слабые сигналы, передачи, новые закрепления и принятые ИИ-сопоставления; полная матрица и каталог источников в приложениях
ExcelДевять листов: Сводка, Изменения структуры, Риски, ИИ-сравнение, Матрица функций, Потери, Переданные функции, Новые функции и Источники
JSON / MarkdownПолный результат для обработки или текстовое заключение с источниками

PDF и Excel формируются локально по нажатию кнопки, без нового обращения к API. Экранные фильтры не меняют состав экспорта; краткий PDF имеет собственную явно обозначенную выборку. Полный PDF может быть большим: он предназначен для подробной сверки. Кириллические шрифты DejaVu включены в проект с лицензией.

В Excel одна строка матрицы — назначение одному владельцу в одной редакции; общий ID связывает обе стороны. Уверенность записана числом с процентным форматом, пустая оценка означает отсутствие расчёта. Длинные записи разбиваются на части с сохранением текста; содержимое документов не превращается в формулы.

ИИ-раздел экспорта сохраняет статус, охват, результат смысловой перепроверки и доступные сведения о токенах. Неполные данные о расходе помечаются отдельно. Принятые сопоставления сопровождаются цитатами и адресами источников; краткий PDF показывает до двух цитат на вывод, полный PDF и Excel — все принятые цитаты. Если ИИ не запускался, это указано явно. Самооценка модели ограничена 89% и не становится объективной вероятностью после перепроверки.

ИИ, которому можно задать вопрос «откуда это?»

ИИ-проверка дополняет локальное сопоставление. Каждый публикуемый ИИ-вывод проходит два этапа:

  1. Проверка источников: идентификатор существует, цитата буквально присутствует в документе, стороны «до» и «после» указаны корректно.
  2. Независимая смысловая проверка: второй запрос оценивает, подтверждают ли источники предложенное утверждение с учётом контекста и ограничений.

Если проверка не завершилась, непроверенные ИИ-выводы исключаются. Локальный результат остаётся доступным. Интерфейс показывает статус, охват источников и доступные сведения о расходе токенов.

Подключить OpenAI

Создайте в корне проекта файл .streamlit/secrets.toml:

OPENAI_API_KEY = "<ваш API-ключ>"
OPENAI_MODEL = "gpt-5.4-mini"

Файл исключён из Git и Docker-контекста. Вместо него можно задать переменные окружения с теми же именами — они имеют приоритет. OPENAI_MODEL необязателен, .env автоматически не читается.

При наличии серверного ключа основной интерфейс выбирает ИИ-режим по умолчанию, но запрос начинается только по кнопке запуска. Центральная кнопка «Запустить контрольный пример» всегда запускает локальное демо; кнопка «Запустить контрольный пример» в боковой панели следует выбранному режиму. У модуля метрик свои отдельные действия ИИ.

ИИ-режим передаёт в OpenAI текстовые фрагменты и их контекст и расходует API-бюджет. Модельная перепроверка помогает отсеивать ошибки, но не гарантирует правильность всех трактовок.

Настройки, CLI, ограничения пакетов и значения статусов →

Эффективность и оптимизация

Второй рабочий раздел отвечает на следующий вопрос: что наблюдается в показателях после изменения структуры? Он запускается отдельно от сравнения положений.

РазделЧто можно сделать
ОтчётыЗагрузить Excel, PDF или Word, проверить числа по источникам и подтвердить неоднозначные сопоставления
Дашборд метрикПосмотреть временные ряды, даты реорганизаций и подтверждённую контрольную группу
Изменение → эффектИзучить предполагаемый механизм, уверенность, альтернативные объяснения и вердикт оппонента
Прогноз vs фактПроверить наступившие прогнозы по отчётам и увидеть определённые и неопределённые результаты
РекомендацииРассмотреть действия с основаниями и сохранить решение: принять, отклонить или обсудить
База знанийПосмотреть накопленные наблюдения и число независимых случаев

Модуль выбирает простое сравнение, поправку на тренд или разность разностей при подходящей контрольной группе. Объёмные показатели дополнительно нормализуются на FTE, если есть соответствующие данные. Периоды, пересекающие дату изменения, исключаются; проценты не суммируются, разные валюты не сравниваются без приведения.

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

Отчёты можно загрузить через интерфейс или разместить в data/reports/. Неизвестные показатели поступают на подтверждение как custom_*. Для извлечения из свободного текста PDF/Word доступен отдельный ИИ-режим.

# Сгенерировать тестовые отчёты отдельно от интерфейса
python scripts/gen_synthetic_reports.py --output data/synthetic_reports

# Запустить только основное сравнение документов
METRICS_MODULE=off python -m streamlit run app.py

Наблюдаемое изменение показателя не устанавливает причину. Статистическая значимость не рассчитывается. Реальные и синтетические данные обрабатываются раздельно.

Этапы M1–M9, правила уверенности и ограничения модуля →

Демонстрация для жюри

Оба встроенных сценария доступны без собственных файлов и оплачиваемых запросов.

СценарийКак запуститьЧто показать
Структура и функцииЦентральная кнопка «Запустить контрольный пример» на стартовом экранеПреобразование подразделения, передачу функций, возможную потерю, дубль и конфликт ролей; затем открыть подтверждающие цитаты
Эффективность«Эффективность и оптимизация» → «ТЕСТОВЫЕ ДАННЫЕ» → «Запустить демо эффективности»Рост задержки отчётности, изменение числа ИТ-проверок, найм как альтернативное объяснение, проверку прогнозов и накопление наблюдений

Синтетика метрик содержит 9 Excel-файлов, 19 показателей и 2 052 значения за 2021–2023 годы. Эффекты заданы в генераторе. Экраны, графики и выгрузки имеют метку «ТЕСТОВЫЕ ДАННЫЕ»; они не описывают фактические результаты компании.

Для предоставленной организатором пары порядок иной: редакция 8, протокол №13, 2021 год → редакция 9, протокол №7, 2022 год. Эти документы загружаются отдельно. На показе удобно начать с двух новых департаментов, затем открыть перенос функции и источники обеих редакций.

Как устроено решение

flowchart TB
    D["Документы до и после"] --> X["Текст и адресуемые источники"]
    X --> L["Локальное сопоставление структуры и функций"]
    X -. "Опциональный ИИ-режим" .-> A["OpenAI: смысловое сравнение"]
    A --> V["Проверка цитат + независимый смысловой оппонент"]
    L --> R["Матрица, заключение, PDF / Excel / Markdown / JSON"]
    V --> R
    L --> E["События с подтверждённой датой и механизмом"]
    P["Периодические отчёты"] --> M["Извлечение чисел и сравнение периодов"]
    E --> M
    M --> K["Атрибуции, проверка гипотез, база знаний"]
    K --> U["Дашборд и рекомендации для решения человеком"]
СлойТехнологии и код
ИнтерфейсStreamlit, Pandas, Altair · app.py, metrics_ui.py
ОформлениеДизайн из main, светлая и тёмная темы · presentation.py, workspace.css
Документыpypdf, pdfplumber, python-docx, openpyxl · extractors.py, metrics_ingest.py
Основной анализПравила, сопоставление, объяснения уверенности · analyzer.py, confidence.py, models.py
ИИ-сравнениеOpenAI Responses API, строгие JSON-схемы, проверка цитат и смысла · ai_agent.py, ai_verifier.py
МетрикиДетерминированные расчёты и опциональные ИИ-этапы · metrics_analysis.py, metrics_llm.py
ЭкспортReportLab, openpyxl, локальные шрифты · pdf_report.py, exports.py
СохранениеSQLite и JSON по этапам · metrics_store.py
Проверкиunittest, Streamlit AppTest, контрольные сценарии · tests/

Проверки и воспроизводимость

Проверка объединённой версии с main (98201bd) — 23 сентября 2026 года. Внешние ИИ-вызовы в автоматических тестах заменены тестовыми ответами:

ПроверкаРезультат
Автоматические тесты214 пройдено
Выбранные условия на реальных редакциях 8 и 919 из 19
Извлечение синтетических метрик с проверкой ячеек2 052 из 2 052
Браузерная проверкаДо объединения проверены компьютер, мобильный экран, разделы модуля и скачивание отчёта; новый интерфейс дополнительно проверен через Streamlit AppTest

Запустить автоматические тесты из корня проекта:

python -m unittest discover -s tests -v

Тесты API используют подменённые ответы и не выполняют оплачиваемые вызовы. Успешные проверки не являются оценкой полной точности на произвольном корпусе документов.

Проверить предоставленную пару положений

Исходные файлы в репозиторий не включены. Укажите свои пути:

python scripts/check_real_documents.py \
  --before "/path/to/edition-8.docx" \
  --after "/path/to/edition-9.docx"

Скрипт проверяет выбранные вручную условия, печатает PASS / FAIL и возвращает ненулевой код при несоответствии. Это ограниченная приёмочная выборка, а не официальный эталон всех выводов.

Границы прототипа

  • Сложные исходники. Для PDF-сканов и графических оргсхем нужен предварительный OCR. Нетипичные таблицы, сокращения и сильные перефразировки могут требовать ручной сверки.
  • Охват выводов. Агент анализирует предоставленные материалы. Непереданная инструкция или приложение могут изменить результат; совпадение цитаты само по себе не доказывает правильность трактовки.
  • Метрики. Реальные периодические отчёты пока не предоставлены. Полный демонстрационный цикл проверен на явно обозначенной синтетике.
  • Прогнозы. Сейчас доступны ручные и демонстрационные гипотезы. Автоматического таймлайна, симулятора и редактора правок в ядре нет. Ручные прогнозы исключаются из показателя точности агента.
  • Внешняя оценка. Проверка законодательства и сравнение с другими операторами не реализованы; в исходном ТЗ это опциональные возможности.

Где находятся данные

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

ПутьСодержимое
.streamlit/secrets.tomlЛокальные настройки OpenAI
data/reports/Реальные отчёты, которые пользователь размещает для обработки
data/synthetic_reports/Сгенерированный тестовый комплект
runs/<run_id>/metrics/Результаты этапов M1–M9, включая источники
data/kb.sqliteБаза наблюдений, подтверждённые механизмы и решения по рекомендациям

Эти пути исключены из Git и Docker-контекста. Частный документ, помещённый в произвольную другую папку, автоматически от Git не защищён. При удалённом запуске данные обрабатываются и сохраняются на соответствующем сервере; в ИИ-режиме выбранные фрагменты также передаются в OpenAI. Ключи не включаются в отчёты.

Документация ветки


QAITU · от изменения в документе к проверяемому выводу

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

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

Nurtas 19Uban2 12Codex 6Askat 3Codex 1

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

  • 2026-09-23 17:48Add local document linting and persistent review checklistCodex
  • 2026-09-23 17:43ui: restore full control-example button labelNurtas
  • 2026-09-23 17:34Merge latest main viewport fitting into mvp-nurtasNurtas
  • 2026-09-23 17:32Merge main into mvp-nurtas with AI, metrics and complete exportsNurtas
  • 2026-09-23 17:31Fit expanded matrix to viewport (#4)Askat
  • 2026-09-23 17:31Fit expanded matrix to the available viewportCodex
  • 2026-09-23 17:17Merge remote-tracking branch 'origin/main'Uban2
  • 2026-09-23 17:17Add readable PDF reports and analytical Excel exportUban2
Все коммиты (41)
  • 2026-09-23 17:09Focus report and expand matrix (#3)Askat
  • 2026-09-23 17:08Present QAITU with a polished branch README and visual overviewNurtas
  • 2026-09-23 17:08Integrate confidence review without adding report clutterCodex
  • 2026-09-23 17:06Focus report composition and add expanded matrix overlayCodex
  • 2026-09-23 17:01Save current progress and historical planning materialsNurtas
  • 2026-09-23 16:58Add explainable confidence bands and evidence for review candidatesUban2
  • 2026-09-23 16:48Keep metrics charts and controls comparable across periods and currenciesNurtas
  • 2026-09-23 16:44Add the metrics workspace in the main design with source review and dashboardsNurtas
  • 2026-09-23 16:44Add source-backed metrics analysis, forecast checks and learning registryNurtas
  • 2026-09-23 16:38Guard the welcome demo from automatic API callsNurtas
  • 2026-09-23 16:38Merge latest main integration checksNurtas
  • 2026-09-23 16:28Merge main design for the metrics workspaceNurtas
  • 2026-09-23 16:24Reconcile published design merge and preserve integration checksUban2
  • 2026-09-23 16:21Fit semantic verification within the bounded response budgetNurtas
  • 2026-09-23 16:20Merge latest report design and keep summary-first workflowUban2
  • 2026-09-23 16:19Merge QAITU design and report navigation (#2)Askat
  • 2026-09-23 16:19Tighten semantic review of titles and unchanged clausesNurtas
  • 2026-09-23 16:17Merge latest main and preserve summary-first report flowCodex
  • 2026-09-23 16:17Merge Liquid Glass design with current analysis fixesUban2
  • 2026-09-23 16:15Merge latest main fixes for false losses and nonfunctional rowsNurtas
  • 2026-09-23 16:15Show semantic AI comparisons, citations and review status in the appNurtas
  • 2026-09-23 16:15Add evidence-checked OpenAI comparison and semantic verificationNurtas
  • 2026-09-23 16:13Improve report navigation, table layout and reading hierarchyCodex
  • 2026-09-23 15:54Reduce false losses and nonfunctional audit rowsUban2
  • 2026-09-23 15:53Load OpenAI credentials from private server settingsNurtas
  • 2026-09-23 15:46Refresh workspace with Liquid Glass-inspired designCodex
  • 2026-09-23 15:29Merge MVP analysis and matrix interfaceUban2
  • 2026-09-23 15:14Exclude staffing position titles from function assignmentsNurtas
  • 2026-09-23 15:11Build traceable function ownership matrix and robust comparison MVPNurtas
  • 2026-09-23 15:11Fix word-per-line PDF extraction and noisy findingsUban2
  • 2026-09-23 15:04Keep local report available when LLM review failsUban2
  • 2026-09-23 14:54Improve provision parsing and analytical summaryUban2
  • 2026-09-23 14:36Add QAITU organization analysis MVPUban2
Структура репозитория (78 файлов)
.dockerignore
.github/workflows/tests.yml
.gitignore
.streamlit/config.toml
.streamlit/secrets.toml.example
DEMO_SCENARIO.md
Dockerfile
FUNCTION_MATRIX_SPEC.md
IMPLEMENTATION_PLAN.md
MVP_ALEN_REVIEW.md
PROGRESS.md
README.md
REQUIREMENTS_AUDIT.md
TEST_DOCUMENTS_REVIEW.md
app.py
docs/AI_COMPARISON.md
docs/METRICS_MODULE_IMPLEMENTATION.md
docs/METRICS_REQUIREMENTS_AUDIT.md
docs/assets/qaitu-banner.svg
docs/superpowers/specs/2026-09-23-liquid-glass-design.md
docs/superpowers/specs/2026-09-23-report-focus-design.md
qaitu/__init__.py
qaitu/ai_agent.py
qaitu/ai_reviewer.py
qaitu/ai_verifier.py
qaitu/analyzer.py
qaitu/confidence.py
qaitu/config.py
qaitu/demo.py
qaitu/exports.py
qaitu/extractors.py
qaitu/llm/prompts/metrics/attribute.md
qaitu/llm/prompts/metrics/challenge_attribution.md
qaitu/llm/prompts/metrics/extract_metrics.md
qaitu/llm/prompts/metrics/recommend.md
qaitu/metrics_analysis.py
qaitu/metrics_catalog.py
qaitu/metrics_ingest.py
qaitu/metrics_llm.py
qaitu/metrics_models.py
qaitu/metrics_service.py
qaitu/metrics_store.py
qaitu/metrics_ui.py
qaitu/models.py
qaitu/pdf_report.py
qaitu/presentation.py
qaitu/report.py
qaitu/reporting.py
qaitu/static/fonts/DejaVuSans-Bold.ttf
qaitu/static/fonts/DejaVuSans.ttf
qaitu/static/fonts/LICENSE.txt
qaitu/static/matrix-fit.html
qaitu/static/theme-bridge.html
qaitu/static/workspace.css
requirements.txt
scripts/check_real_documents.py
scripts/compare_with_ai.py
scripts/gen_synthetic_reports.py
tests/test_ai_agent.py
tests/test_ai_reviewer.py
tests/test_ai_verifier.py
tests/test_analyzer.py
tests/test_attribution.py
tests/test_confidence.py
tests/test_config.py
tests/test_exports.py
tests/test_extractors.py
tests/test_ingestion.py
tests/test_metrics_extraction.py
tests/test_metrics_llm.py
tests/test_metrics_review_regressions.py
tests/test_metrics_service.py
tests/test_metrics_ui.py
tests/test_no_causal_language.py
tests/test_regressions.py
tests/test_reporting.py
tests/test_synthetic_flag.py
tests/test_ui.py
Ветки (8)

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

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

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