AAYMA
RU
Войти

TeleDoc

Веб-приложение для анализа оргизменений Казахтелекома.

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

О проекте

Команда: 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.md

TeleDoc — анализ организационных изменений

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

Как работать

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

Без API-ключа доступно сравнение DOCX по текстовым правилам. Настроенная модель добавляет смысловой анализ и чат. Экран показывает фактический режим обработки и ограничения результата. «Посмотреть пример» открывает отдельное учебное дело C010.

Что установить

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

Контракт чата · Устройство интеграции · Результаты проверок.

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

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

Baubek Serikbay 18winux125 11Maussymzhan Makazhan 11

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

  • 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
Ветки (4)

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

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

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