О проекте
Команда: freax
Кейс HackAlem.ai: Спецтрек — Казахтелеком
Стадия: Рабочий MVP
Задача кейса: Агент, сравнивающий документы оргструктуры до и после реорганизации
Суть
Веб-приложение для анализа оргизменений Казахтелекома. Оно сравнивает комплекты документов ДО/ПОСЛЕ (DOCX/PDF), находит изменения подразделений, потерю и дублирование функций, пересечения ответственности. Аналитик подтверждает или отклоняет выводы, задаёт вопросы агенту с цитатами и выгружает заключение в Markdown.
Как устроено
Python HTTP API читает DOCX и PDF (pypdf) и режет их на адресуемые фрагменты. Без API-ключа сравнение идёт по текстовым правилам. С моделью через OpenAI-совместимый API (в примере gpt-5.4) работает агент исследования с инструментами и гибридным поиском на эмбеддингах. Сервер проверяет адрес источника и точность цитаты. Снимки анализа и история чата хранятся локально, чат отвечает с цитатами по сохранённому анализу.
Ключевые решения
- agentic research with tools
- hybrid retrieval (embeddings + lexical)
- quote/citation verification
- rule-based DOCX diff fallback
- source-grounded chat over analysis snapshots
- OCR/Excel sources
Особенности
Команда собрала собственный синтетический датасет synthetic_orgdiff_ru из 10 кейсов ДО/ПОСЛЕ (org и functions в PDF/JSON) с разметкой expected_results.json для оценки. Режим обработки и неполнота анализа явно показываются пользователю.
Стек
Python · pypdf · HTML · CSS · JavaScript · unittest
Модели
gpt-5.4 · OpenAI-compatible API · embeddings
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-4411138e-freax.
README
README.mdTeleDoc — анализ организационных изменений
TeleDoc сравнивает документы до и после реорганизации: показывает изменения подразделений, возможную потерю и дублирование функций, пересечения ответственности. Каждый вывод можно проверить по исходному пункту документа, обсудить с агентом и включить в заключение после оценки сотрудником.
Как работать
- Загрузите комплекты «До» и «После» или используйте восемь учебных DOCX для проверки.
- Запустите анализ. Откройте найденные изменения и сравните цитаты из источников.
- Подтвердите или отклоните замечания, сохраните комментарии аналитика.
- Задайте вопрос под результатами. Агент использует сохранённый анализ, ищет исходные фрагменты и возвращает ответ с цитатами.
- Скачайте заключение в Markdown.
Без API-ключа доступно сравнение DOCX по текстовым правилам. Настроенная модель добавляет смысловой анализ и чат. Экран показывает фактический режим обработки и ограничения результата. «Посмотреть пример» открывает отдельное учебное дело C010.
Что установить
- Python 3.10 или новее с
pipиvenv. На Windows включите добавление Python в PATH. - Git.
Node.js и Docker для запуска приложения не нужны.
git clone https://github.com/BAITC-Hacks/hack-4411138e-freax.git
cd hack-4411138e-freax
Настройка и запуск
Скопируйте .env.example в .env, если файл ещё не создан. Укажите свой ключ и доступную вашему аккаунту модель:
OPENAI_API_KEY=ваш_ключ
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-5.4
.env хранится только локально и исключён из Git. После его изменения перезапустите сервер.
На Windows:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run.ps1
На Linux или macOS:
bash run.sh
Скрипты читают .env, создают .venv, устанавливают зависимости из requirements.txt и запускают приложение. При повторном запуске готовое окружение используется снова. Другой порт: .\run.ps1 --port 9000 или bash run.sh --port 9000.
Откройте TeleDoc. Оставьте терминал открытым; остановка — Ctrl+C. Проверка сервера возвращает status: ok и frontend: true.
Ручной запуск
Для запуска без скриптов создайте окружение и установите зависимости:
# Windows
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
$env:OPENAI_API_KEY = 'ваш_ключ'
$env:OPENAI_BASE_URL = 'https://api.openai.com/v1'
$env:OPENAI_MODEL = 'gpt-5.4'
.\.venv\Scripts\python.exe server.py --port 8765
# Linux / macOS
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
export OPENAI_API_KEY='ваш_ключ'
export OPENAI_BASE_URL='https://api.openai.com/v1'
export OPENAI_MODEL='gpt-5.4'
.venv/bin/python server.py --port 8765
При ручном запуске server.py настройки берутся из переменных окружения. Для загрузки настроек из .env используйте run.ps1 или run.sh.
Архитектура
flowchart LR
A[Интерфейс HTML / CSS / JavaScript] --> B[Python HTTP API]
B --> C[Чтение DOCX / PDF]
C --> D[Адресуемые фрагменты источников]
D --> E[Сравнение и агент исследования]
E --> F[Сохранённый анализ]
F --> G[Чат по анализу]
G --> D
F --> A
G --> A
Один Python-сервер раздаёт интерфейс и API. Для PDF используется pypdf. Модель подключается через OpenAI-совместимый API; исследование с поиском по смыслу также использует эмбеддинги. Сервер проверяет адрес источника и точность цитаты. Оценки аналитика и оригиналы хранятся в браузере, снимки анализа и история чата — локально на сервере. Текст для смысловой обработки передаётся настроенному провайдеру.
Основные модули: ayqyn/documents/ — чтение документов, ayqyn/retrieval/ — поиск, ayqyn/agent/ — исследование, ayqyn/chat/ — чат, ayqyn/api/ — HTTP API. Интерфейс находится в analysis.js, workspace.js и live-chat.js.
Форматы и ограничения
- Обычный анализ: 2–20 DOCX, до 100 МБ на файл и 200 МБ суммарно. Извлечённый XML ограничен 12 МиБ; анализ — 1500 абзацами и 250 000 символами на сторону.
- Исследование с поиском источников: DOCX и текстовый PDF, до 10 МБ на файл и 40 МБ суммарно. PDF — до 200 страниц. Для PDF укажите стороны вручную.
- OCR сканов, Excel и старый формат
.docне подключены. Колонтитулы и комментарии Word не анализируются. - Выводы требуют проверки сотрудником. Точная цитата подтверждает источник, но сама по себе не доказывает правильность интерпретации. Неполный анализ обозначается явно.
- Сервер рассчитан на локальную работу одного пользователя. Локальные оценки аналитика не передаются агенту автоматически.
Проверки и API
python -m unittest discover -s tests -q
Контракт чата · Устройство интеграции · Результаты проверок.
Авторы коммитов
История коммитов
- 2026-09-23 17:56Merge remote-tracking branch 'origin/main' into codex/backend-research-snapshotwinux125
- 2026-09-23 17:55docs: prepare release instructions and validation statuswinux125
- 2026-09-23 17:53fix: show document selection receipts beside upload fieldsMaussymzhan Makazhan
- 2026-09-23 17:52docs: record live model chat and source verificationBaubek Serikbay
- 2026-09-23 17:52docs: present TeleDoc usage architecture and setupBaubek Serikbay
- 2026-09-23 17:51docs: align integration handoff with latest frontendBaubek Serikbay
- 2026-09-23 17:50feat: add OCR and Excel research sourceswinux125
- 2026-09-23 17:50Merge remote-tracking branch 'origin/main' into codex/fullstack-integrationBaubek Serikbay
Все коммиты (40)
- 2026-09-23 17:49docs: document TeleDoc integrated launch and verified behaviorBaubek Serikbay
- 2026-09-23 17:47fix: align source actions and add collapsible chat headingMaussymzhan Makazhan
- 2026-09-23 17:45Merge branch 'codex/backend-research-snapshot' into codex/fullstack-integrationBaubek Serikbay
- 2026-09-23 17:44merge: adopt TeleDoc branding and modular 100 MB DOCX supportBaubek Serikbay
- 2026-09-23 17:43docs: record latest frontend integration changeswinux125
- 2026-09-23 17:43merge: add tested environment bootstrap and setup guideBaubek Serikbay
- 2026-09-23 17:42fix: preserve chat drafts and disclose incomplete researchBaubek Serikbay
- 2026-09-23 17:42docs: simplify setup and add cross-platform launcherswinux125
- 2026-09-23 17:40feat: rename product to TeleDoc and support 100 MB documentsMaussymzhan Makazhan
- 2026-09-23 17:36merge: integrate server analysis snapshots and evidence-based chatBaubek Serikbay
- 2026-09-23 17:36feat: add source-grounded chat for saved analyseswinux125
- 2026-09-23 17:35merge: keep dedicated finding pages alongside live analysis chatBaubek Serikbay
- 2026-09-23 17:35feat: connect research workflow and server chat below analysis resultsBaubek Serikbay
- 2026-09-23 17:33feat: add dedicated finding pages and compact Distingt chatMaussymzhan Makazhan
- 2026-09-23 17:30merge: preserve latest Distingt navigation and review improvementsBaubek Serikbay
- 2026-09-23 17:28merge: combine Distingt frontend with modular AYQYN backendBaubek Serikbay
- 2026-09-23 17:26Merge remote-tracking branch 'origin/main' into codex/fullstack-integrationBaubek Serikbay
- 2026-09-23 17:20feat: refine Distingt navigation and document review usabilityMaussymzhan Makazhan
- 2026-09-23 17:14feat: checkpoint agentic research backendwinux125
- 2026-09-23 16:49feat: integrate approved Distingt design and persistent case workspaceMaussymzhan Makazhan
- 2026-09-23 16:14merge: integrate latest AYQYN frontend from origin/mainBaubek Serikbay
- 2026-09-23 15:58feat: compose AYQYN landing and separate evidence-based demoMaussymzhan Makazhan
- 2026-09-23 15:58merge: sync origin/main and reconcile evaluation documentationBaubek Serikbay
- 2026-09-23 15:53data: preserve local evaluation materials and provenanceBaubek Serikbay
- 2026-09-23 15:24chore: merge packet UI with research APIwinux125
- 2026-09-23 15:22chore: merge analyst UI with agentic researchwinux125
- 2026-09-23 15:21feat: build AYQYN glass workspace with multi-document analysisMaussymzhan Makazhan
- 2026-09-23 15:18feat: add agentic document research and evaluationwinux125
- 2026-09-23 14:55feat: add branded multilingual analyst frontend with theme supportMaussymzhan Makazhan
- 2026-09-23 14:19feat: add split-pane evidence review workspaceMaussymzhan Makazhan
- 2026-09-23 14:05docs: add shared UI skill and 21st.dev design toolkitMaussymzhan Makazhan
- 2026-09-23 13:51feat: add evidence-based org analysis MVPwinux125
Структура репозитория (535 файлов)
.agents/skills/osnovanie-ui/SKILL.md .agents/skills/osnovanie-ui/agents/openai.yaml .agents/skills/osnovanie-ui/references/21st-components.md .agents/skills/osnovanie-ui/references/design-direction.md .env.example .gitattributes .gitignore AGENTS.md README.md REVIEW_HANDOFF.md agent-model.js analysis.js analyze.css analyze.html app.js assets/apple-touch-icon.png assets/ayqyn-mark.svg assets/c010/demo.json assets/c010/inputs/C010/after/functions.pdf assets/c010/inputs/C010/after/org.pdf assets/c010/inputs/C010/before/functions.pdf assets/c010/inputs/C010/before/org.pdf assets/favicon-16x16.png assets/favicon-32x32.png assets/favicon.svg assets/kazakhtelecom-logo.svg ayqyn.css ayqyn.js ayqyn/__init__.py ayqyn/agent/__init__.py ayqyn/agent/context.py ayqyn/agent/inventory.py ayqyn/agent/metrics.py ayqyn/agent/runner.py ayqyn/agent/state.py ayqyn/agent/tools.py ayqyn/analysis/__init__.py ayqyn/analysis/batch.py ayqyn/analysis/functions.py ayqyn/api/__init__.py ayqyn/api/chat.py ayqyn/api/server.py ayqyn/api/static.py ayqyn/api/workspace.py ayqyn/chat/__init__.py ayqyn/chat/agent.py ayqyn/chat/errors.py ayqyn/chat/service.py ayqyn/chat/snapshots.py ayqyn/chat/tools.py ayqyn/documents/__init__.py ayqyn/documents/analyzer.py ayqyn/documents/packets.py ayqyn/documents/pdf.py ayqyn/documents/store.py ayqyn/documents/text.py ayqyn/paths.py ayqyn/providers/__init__.py ayqyn/providers/embeddings.py ayqyn/providers/llm.py ayqyn/retrieval/__init__.py ayqyn/retrieval/hybrid.py ayqyn/storage/__init__.py ayqyn/storage/runs.py case-store.js cases.js dataset/README.md dataset/real_sources/DOWNLOAD_STATUS.md dataset/real_sources/LINKS_RU.md dataset/synthetic_orgdiff_ru/README_RU.md dataset/synthetic_orgdiff_ru/REUSE.md dataset/synthetic_orgdiff_ru/annotations/expected_results.json dataset/synthetic_orgdiff_ru/checksums.json dataset/synthetic_orgdiff_ru/frontend/mock_analysis_C010.json dataset/synthetic_orgdiff_ru/inputs/C001/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C001/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C001/after/org.json dataset/synthetic_orgdiff_ru/inputs/C001/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C001/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C001/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C001/before/org.json dataset/synthetic_orgdiff_ru/inputs/C001/before/org.pdf dataset/synthetic_orgdiff_ru/inputs/C002/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C002/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C002/after/org.json dataset/synthetic_orgdiff_ru/inputs/C002/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C002/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C002/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C002/before/org.json dataset/synthetic_orgdiff_ru/inputs/C002/before/org.pdf dataset/synthetic_orgdiff_ru/inputs/C003/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C003/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C003/after/org.json dataset/synthetic_orgdiff_ru/inputs/C003/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C003/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C003/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C003/before/org.json dataset/synthetic_orgdiff_ru/inputs/C003/before/org.pdf dataset/synthetic_orgdiff_ru/inputs/C004/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C004/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C004/after/org.json dataset/synthetic_orgdiff_ru/inputs/C004/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C004/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C004/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C004/before/org.json dataset/synthetic_orgdiff_ru/inputs/C004/before/org.pdf dataset/synthetic_orgdiff_ru/inputs/C005/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C005/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C005/after/org.json dataset/synthetic_orgdiff_ru/inputs/C005/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C005/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C005/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C005/before/org.json dataset/synthetic_orgdiff_ru/inputs/C005/before/org.pdf dataset/synthetic_orgdiff_ru/inputs/C006/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C006/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C006/after/org.json dataset/synthetic_orgdiff_ru/inputs/C006/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C006/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C006/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C006/before/org.json dataset/synthetic_orgdiff_ru/inputs/C006/before/org.pdf dataset/synthetic_orgdiff_ru/inputs/C007/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C007/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C007/after/org.json dataset/synthetic_orgdiff_ru/inputs/C007/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C007/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C007/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C007/before/org.json dataset/synthetic_orgdiff_ru/inputs/C007/before/org.pdf dataset/synthetic_orgdiff_ru/inputs/C008/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C008/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C008/after/org.json dataset/synthetic_orgdiff_ru/inputs/C008/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C008/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C008/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C008/before/org.json dataset/synthetic_orgdiff_ru/inputs/C008/before/org.pdf dataset/synthetic_orgdiff_ru/inputs/C009/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C009/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C009/after/org.json dataset/synthetic_orgdiff_ru/inputs/C009/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C009/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C009/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C009/before/org.json dataset/synthetic_orgdiff_ru/inputs/C009/before/org.pdf dataset/synthetic_orgdiff_ru/inputs/C010/after/functions.json dataset/synthetic_orgdiff_ru/inputs/C010/after/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C010/after/org.json dataset/synthetic_orgdiff_ru/inputs/C010/after/org.pdf dataset/synthetic_orgdiff_ru/inputs/C010/before/functions.json dataset/synthetic_orgdiff_ru/inputs/C010/before/functions.pdf dataset/synthetic_orgdiff_ru/inputs/C010/before/org.json dataset/synthetic_orgdiff_ru/inputs/C010/before/org.pdf dataset/synthetic_orgdiff_ru/manifest.json dataset/synthetic_orgdiff_ru/sources.json dataset/Положение_о_внутреннем_аудите_редакция_8_обезличено.docx dataset/Положение_о_внутреннем_аудите_редакция_9_обезличено.docx demo-agent.js demo-sources.js demo.js distingt-approved.css distingt-assets/demo.json distingt-assets/glass.png distingt-assets/inputs/C001/after/functions.json distingt-assets/inputs/C001/after/functions.pdf distingt-assets/inputs/C001/after/org.json distingt-assets/inputs/C001/after/org.pdf distingt-assets/inputs/C001/before/functions.json distingt-assets/inputs/C001/before/functions.pdf distingt-assets/inputs/C001/before/org.json distingt-assets/inputs/C001/before/org.pdf distingt-assets/inputs/C002/after/functions.json distingt-assets/inputs/C002/after/functions.pdf distingt-assets/inputs/C002/after/org.json distingt-assets/inputs/C002/after/org.pdf distingt-assets/inputs/C002/before/functions.json distingt-assets/inputs/C002/before/functions.pdf distingt-assets/inputs/C002/before/org.json distingt-assets/inputs/C002/before/org.pdf distingt-assets/inputs/C003/after/functions.json distingt-assets/inputs/C003/after/functions.pdf distingt-assets/inputs/C003/after/org.json distingt-assets/inputs/C003/after/org.pdf distingt-assets/inputs/C003/before/functions.json distingt-assets/inputs/C003/before/functions.pdf distingt-assets/inputs/C003/before/org.json distingt-assets/inputs/C003/before/org.pdf distingt-assets/inputs/C004/after/functions.json distingt-assets/inputs/C004/after/functions.pdf distingt-assets/inputs/C004/after/org.json distingt-assets/inputs/C004/after/org.pdf distingt-assets/inputs/C004/before/functions.json distingt-assets/inputs/C004/before/functions.pdf distingt-assets/inputs/C004/before/org.json distingt-assets/inputs/C004/before/org.pdf distingt-assets/inputs/C005/after/functions.json distingt-assets/inputs/C005/after/functions.pdf distingt-assets/inputs/C005/after/org.json distingt-assets/inputs/C005/after/org.pdf distingt-assets/inputs/C005/before/functions.json distingt-assets/inputs/C005/before/functions.pdf distingt-assets/inputs/C005/before/org.json distingt-assets/inputs/C005/before/org.pdf distingt-assets/inputs/C006/after/functions.json distingt-assets/inputs/C006/after/functions.pdf distingt-assets/inputs/C006/after/org.json distingt-assets/inputs/C006/after/org.pdf distingt-assets/inputs/C006/before/functions.json distingt-assets/inputs/C006/before/functions.pdf distingt-assets/inputs/C006/before/org.json distingt-assets/inputs/C006/before/org.pdf distingt-assets/inputs/C007/after/functions.json distingt-assets/inputs/C007/after/functions.pdf distingt-assets/inputs/C007/after/org.json distingt-assets/inputs/C007/after/org.pdf distingt-assets/inputs/C007/before/functions.json distingt-assets/inputs/C007/before/functions.pdf distingt-assets/inputs/C007/before/org.json distingt-assets/inputs/C007/before/org.pdf distingt-assets/inputs/C008/after/functions.json distingt-assets/inputs/C008/after/functions.pdf distingt-assets/inputs/C008/after/org.json distingt-assets/inputs/C008/after/org.pdf distingt-assets/inputs/C008/before/functions.json distingt-assets/inputs/C008/before/functions.pdf distingt-assets/inputs/C008/before/org.json distingt-assets/inputs/C008/before/org.pdf distingt-assets/inputs/C009/after/functions.json distingt-assets/inputs/C009/after/functions.pdf distingt-assets/inputs/C009/after/org.json distingt-assets/inputs/C009/after/org.pdf distingt-assets/inputs/C009/before/functions.json distingt-assets/inputs/C009/before/functions.pdf distingt-assets/inputs/C009/before/org.json distingt-assets/inputs/C009/before/org.pdf distingt-assets/inputs/C010/after/functions.json distingt-assets/inputs/C010/after/functions.pdf distingt-assets/inputs/C010/after/org.json distingt-assets/inputs/C010/after/org.pdf distingt-assets/inputs/C010/before/functions.json distingt-assets/inputs/C010/before/functions.pdf distingt-assets/inputs/C010/before/org.json distingt-assets/inputs/C010/before/org.pdf distingt-assets/mark.svg distingt-assets/telecom.svg distingt-integration.css distingt-public.css distingt-usability.css docs/AYQYN_DESIGN.md docs/AYQYN_FRONTEND_QA.md docs/DISTINGT_USABILITY.md docs/DISTINGT_WORKSPACE.md docs/FINAL_REPORT.md docs/FRONTEND_USAGE.md docs/INTEGRATION.md docs/api/analysis-chat-api.md docs/design/LUCIDE-LICENSE docs/design/kazakhtelecom-logo.svg docs/design/previous-vendor-notices.md docs/plans/analysis-chat-backend.md docs/research/agent-architecture.md docs/research/agentic-rag-evaluation.md docs/research/agentic-rag-r8r9-verdict.md docs/research/baseline-evaluation.md docs/research/control-procurement.md docs/research/file-architecture-proposal.md docs/research/function-gold-set.md docs/research/function-unit-evaluation.md docs/research/function-work-evaluation.md docs/research/latest-run-verdict.md docs/research/llm-evaluation.md docs/research/next-improvements-review.md docs/research/osnovanie-review-and-final-plan.md docs/research/r8r9-save-failure-diagnosis.md docs/research/research-planning-evaluation.md docs/research/research-result-repair-evaluation.md docs/research/search-g01-g15-evaluation.md docs/research/search-g01-g15-labels.json docs/research/search-g01-g15-queries.json docs/research/verification-candidates.md fonts/LICENSE fonts/manrope-cyrillic-ext-wght-normal.woff2 fonts/manrope-cyrillic-wght-normal.woff2 fonts/manrope-greek-wght-normal.woff2 fonts/manrope-latin-ext-wght-normal.woff2 fonts/manrope-latin-wght-normal.woff2 fonts/manrope-vietnamese-wght-normal.woff2 i18n.js icons.js index.html integration.css live-chat.js osnovanie_all_materials/01_synthetic_dataset/README_RU.md osnovanie_all_materials/01_synthetic_dataset/REUSE.md osnovanie_all_materials/01_synthetic_dataset/annotations/expected_results.json osnovanie_all_materials/01_synthetic_dataset/checksums.json osnovanie_all_materials/01_synthetic_dataset/frontend/mock_analysis_C010.json osnovanie_all_materials/01_synthetic_dataset/inputs/C001/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C001/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C001/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C001/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C001/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C001/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C001/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C001/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C002/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C002/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C002/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C002/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C002/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C002/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C002/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C002/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C003/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C003/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C003/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C003/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C003/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C003/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C003/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C003/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C004/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C004/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C004/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C004/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C004/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C004/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C004/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C004/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C005/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C005/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C005/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C005/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C005/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C005/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C005/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C005/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C006/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C006/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C006/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C006/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C006/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C006/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C006/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C006/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C007/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C007/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C007/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C007/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C007/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C007/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C007/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C007/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C008/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C008/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C008/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C008/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C008/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C008/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C008/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C008/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C009/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C009/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C009/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C009/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C009/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C009/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C009/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C009/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C010/after/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C010/after/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C010/after/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C010/after/org.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C010/before/functions.json osnovanie_all_materials/01_synthetic_dataset/inputs/C010/before/functions.pdf osnovanie_all_materials/01_synthetic_dataset/inputs/C010/before/org.json osnovanie_all_materials/01_synthetic_dataset/inputs/C010/before/org.pdf osnovanie_all_materials/01_synthetic_dataset/manifest.json osnovanie_all_materials/01_synthetic_dataset/sources.json osnovanie_all_materials/02_organizer/LINKS_RU.md osnovanie_all_materials/03_real_sources/DOWNLOAD_STATUS.md osnovanie_all_materials/03_real_sources/LINKS_RU.md osnovanie_all_materials/03_real_sources/original_pdfs/report_2022.pdf osnovanie_all_materials/03_real_sources/original_pdfs/risk_2021.pdf osnovanie_all_materials/04_public_dataset/LINKS_RU.md osnovanie_all_materials/05_project_links/LINKS_RU.md osnovanie_all_materials/START_HERE_RU.md osnovanie_all_materials/checksums_all.json osnovanie_all_materials/sources_manifest.json osnovanie_dataset_v1/README_RU.md osnovanie_dataset_v1/REUSE.md osnovanie_dataset_v1/annotations/expected_results.json osnovanie_dataset_v1/checksums.json osnovanie_dataset_v1/frontend/mock_analysis_C010.json osnovanie_dataset_v1/inputs/C001/after/functions.json osnovanie_dataset_v1/inputs/C001/after/functions.pdf osnovanie_dataset_v1/inputs/C001/after/org.json osnovanie_dataset_v1/inputs/C001/after/org.pdf osnovanie_dataset_v1/inputs/C001/before/functions.json osnovanie_dataset_v1/inputs/C001/before/functions.pdf osnovanie_dataset_v1/inputs/C001/before/org.json osnovanie_dataset_v1/inputs/C001/before/org.pdf osnovanie_dataset_v1/inputs/C002/after/functions.json osnovanie_dataset_v1/inputs/C002/after/functions.pdf osnovanie_dataset_v1/inputs/C002/after/org.json osnovanie_dataset_v1/inputs/C002/after/org.pdf osnovanie_dataset_v1/inputs/C002/before/functions.json osnovanie_dataset_v1/inputs/C002/before/functions.pdf osnovanie_dataset_v1/inputs/C002/before/org.json osnovanie_dataset_v1/inputs/C002/before/org.pdf osnovanie_dataset_v1/inputs/C003/after/functions.json osnovanie_dataset_v1/inputs/C003/after/functions.pdf osnovanie_dataset_v1/inputs/C003/after/org.json osnovanie_dataset_v1/inputs/C003/after/org.pdf osnovanie_dataset_v1/inputs/C003/before/functions.json osnovanie_dataset_v1/inputs/C003/before/functions.pdf osnovanie_dataset_v1/inputs/C003/before/org.json osnovanie_dataset_v1/inputs/C003/before/org.pdf osnovanie_dataset_v1/inputs/C004/after/functions.json osnovanie_dataset_v1/inputs/C004/after/functions.pdf osnovanie_dataset_v1/inputs/C004/after/org.json osnovanie_dataset_v1/inputs/C004/after/org.pdf osnovanie_dataset_v1/inputs/C004/before/functions.json osnovanie_dataset_v1/inputs/C004/before/functions.pdf osnovanie_dataset_v1/inputs/C004/before/org.json osnovanie_dataset_v1/inputs/C004/before/org.pdf osnovanie_dataset_v1/inputs/C005/after/functions.json osnovanie_dataset_v1/inputs/C005/after/functions.pdf osnovanie_dataset_v1/inputs/C005/after/org.json osnovanie_dataset_v1/inputs/C005/after/org.pdf osnovanie_dataset_v1/inputs/C005/before/functions.json osnovanie_dataset_v1/inputs/C005/before/functions.pdf osnovanie_dataset_v1/inputs/C005/before/org.json osnovanie_dataset_v1/inputs/C005/before/org.pdf osnovanie_dataset_v1/inputs/C006/after/functions.json osnovanie_dataset_v1/inputs/C006/after/functions.pdf osnovanie_dataset_v1/inputs/C006/after/org.json osnovanie_dataset_v1/inputs/C006/after/org.pdf osnovanie_dataset_v1/inputs/C006/before/functions.json osnovanie_dataset_v1/inputs/C006/before/functions.pdf osnovanie_dataset_v1/inputs/C006/before/org.json osnovanie_dataset_v1/inputs/C006/before/org.pdf osnovanie_dataset_v1/inputs/C007/after/functions.json osnovanie_dataset_v1/inputs/C007/after/functions.pdf osnovanie_dataset_v1/inputs/C007/after/org.json osnovanie_dataset_v1/inputs/C007/after/org.pdf osnovanie_dataset_v1/inputs/C007/before/functions.json osnovanie_dataset_v1/inputs/C007/before/functions.pdf osnovanie_dataset_v1/inputs/C007/before/org.json osnovanie_dataset_v1/inputs/C007/before/org.pdf osnovanie_dataset_v1/inputs/C008/after/functions.json osnovanie_dataset_v1/inputs/C008/after/functions.pdf osnovanie_dataset_v1/inputs/C008/after/org.json osnovanie_dataset_v1/inputs/C008/after/org.pdf osnovanie_dataset_v1/inputs/C008/before/functions.json osnovanie_dataset_v1/inputs/C008/before/functions.pdf osnovanie_dataset_v1/inputs/C008/before/org.json osnovanie_dataset_v1/inputs/C008/before/org.pdf osnovanie_dataset_v1/inputs/C009/after/functions.json osnovanie_dataset_v1/inputs/C009/after/functions.pdf osnovanie_dataset_v1/inputs/C009/after/org.json osnovanie_dataset_v1/inputs/C009/after/org.pdf osnovanie_dataset_v1/inputs/C009/before/functions.json osnovanie_dataset_v1/inputs/C009/before/functions.pdf osnovanie_dataset_v1/inputs/C009/before/org.json osnovanie_dataset_v1/inputs/C009/before/org.pdf osnovanie_dataset_v1/inputs/C010/after/functions.json osnovanie_dataset_v1/inputs/C010/after/functions.pdf osnovanie_dataset_v1/inputs/C010/after/org.json osnovanie_dataset_v1/inputs/C010/after/org.pdf osnovanie_dataset_v1/inputs/C010/before/functions.json osnovanie_dataset_v1/inputs/C010/before/functions.pdf osnovanie_dataset_v1/inputs/C010/before/org.json osnovanie_dataset_v1/inputs/C010/before/org.pdf osnovanie_dataset_v1/manifest.json osnovanie_dataset_v1/sources.json preferences.js report.js requirements.txt research-client.js run.ps1 run.sh scripts/bootstrap.py scripts/build_agent_control.py scripts/check-agent.cjs scripts/check-frontend.cjs scripts/check-integration.cjs scripts/check-ui.cjs scripts/evaluate_search_g01_g15.py scripts/extract-sources.ps1 scripts/generate-demo-packet.py scripts/profile_research_context.py scripts/replay_research_update.py scripts/run_analysis.py scripts/run_research.py server.py sources.js sources/AYQYN_ПРИМЕР_Аналитика_до.docx sources/AYQYN_ПРИМЕР_Аналитика_после.docx sources/AYQYN_ПРИМЕР_Аудит_до.docx sources/AYQYN_ПРИМЕР_Аудит_после.docx sources/AYQYN_ПРИМЕР_Планирование_до.docx sources/AYQYN_ПРИМЕР_Планирование_после.docx sources/AYQYN_ПРИМЕР_Структура_до.docx sources/AYQYN_ПРИМЕР_Структура_после.docx sources/Положение_о_внутреннем_аудите_редакция_8_обезличено.docx sources/Положение_о_внутреннем_аудите_редакция_9_обезличено.docx styles.css tests/fixtures/agent_revision.json tests/test_agent_transport.py tests/test_analyzer.py tests/test_batch.py tests/test_chat_core.py tests/test_chat_http.py tests/test_chat_service.py tests/test_duplication_colon.py tests/test_embeddings.py tests/test_function_analysis.py tests/test_function_work.py tests/test_http.py tests/test_hybrid_search.py tests/test_llm.py tests/test_packets.py tests/test_pdf_input.py tests/test_research.py tests/test_research_context.py tests/test_research_function_unit.py tests/test_research_http.py tests/test_research_planning.py tests/test_run_record.py tests/test_source_context.py tests/test_upload_limits.py workspace.css workspace.js
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.