AAYMA
RU
Войти

TaldauAI

Локальный помощник секретаря: запись совещания превращается в транскрипт с говорящими, поручения и саммари.

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

О проекте

Команда: TaldauAI
Кейс HackAlem.ai: Инновации — Самрук-Казына
Стадия: Рабочий MVP

Задача кейса: «Хаттама»: протокол и поручения по аудиозаписи совещания (каз./рус./смешанная речь)

Суть

Локальный помощник секретаря: запись совещания превращается в транскрипт с говорящими, поручения и саммари. После ручной проверки выгружается DOCX, затем идёт контроль сроков и автонапоминания.

Как устроено

FastAPI сохраняет аудио и запускает ml.process_meeting в BackgroundTasks. Пайплайн: ffmpeg, затем локальный Mixed CTC ASR (альтернатива Whisper) с beam decoding, диаризация pyannote, опциональная коррекция KazLLM. Qwen 7B через Ollama извлекает поручения, ответственных, сроки и саммари в JSON v1. Адаптер валидирует JSON и связывает поручения с репликами через source_segment_ids. Результат пишется в PostgreSQL (SQLAlchemy/Alembic), затем в React-редакторе идёт ручная проверка с контролем ревизий (409 на устаревшую версию), экспорт DOCX и напоминания за 2 дня, в день срока и при просрочке.

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

  • Mixed CTC ASR
  • CTC beam decoding
  • CTC adaptation (дообучение)
  • faster-whisper
  • pyannote diarization
  • KazLLM correction
  • Ollama
  • urgency по сроку
  • optimistic locking expected_revision
  • python-docx

Особенности

Полностью локальный стек: собственный Mixed CTC для рус/каз речи с дообучением и beam-декодированием, сравнение с Whisper large-v3 и KazLLM. Поручения привязаны к исходным репликам, каждое требует ручного подтверждения. Если срок не прозвучал, модель его не выдумывает. README честно описывает ограничения.

Стек

Python · FastAPI · SQLAlchemy · Alembic · PostgreSQL · React · TypeScript · Vite · Tailwind · Radix UI · Docker Compose · ffmpeg

Модели

Qwen 7B (Ollama) · KazLLM · Whisper large-v3 · faster-whisper


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

README

README.md

TaldauAI — протокол совещания с проверяемыми поручениями

Локальный прототип для секретаря: запись → транскрипт → говорящие → поручения и саммари → ручная проверка → DOCX → контроль сроков. Он помогает фиксировать поручения, ответственных и сроки, которые легко потерять при ручном протоколировании. Результат ИИ — черновик, а не утверждённый протокол.

Финальная интеграция 23.09.2026: объединены ML/backend, редактор с ручной проверкой, уведомления, новый интерфейс и лендинг фронтендера dc4cd0f. Лендинг открывается на /, рабочее приложение — на /app. Старые адреса перенаправляются. История проверок и ограничения приведены ниже.

Оглавление

Возможности и статус требований

ТребованиеФактическое состояние
Русский, казахский, смешанная речьЛокальный Mixed CTC; Whisper — альтернатива. Есть синтетические языковые проверки; ошибки на естественной речи сохраняются
ДиаризацияЛокальная pyannote, метки голосов и ссылки на реплики. SPEAKER_00 — не установленная личность
Исполнитель, действие, срокQwen через локальную Ollama; возможны пропуски, дубли, ошибки имени и даты
СаммариТема, обсуждение, решения и открытые вопросы при наличии опоры в транскрипте; структурированные поручения
Ручная проверкаПереименование участников; исправление текста/срока; свободный ввод внешнего ответственного; добавление, удаление и отдельное подтверждение поручений
ЭкспортDOCX после подтверждения всех поручений. PDF не реализован; DOCX покрывает вариант «PDF/DOCX»
КонтрольСтатусы исполнения, срочность, общий журнал автоматических локальных напоминаний
Ввод записиФайл; микрофон; на /live — микрофон и звук выбранной вкладки при поддержке браузера. Обработка после остановки и отправки
Teams / Zoom / Google MeetБот-участник и прямая интеграция отсутствуют. Запись вкладки не является такой интеграцией
Дополнительные функцииСЭД, идентификация по тембру, email/мессенджер-рассылка отсутствуют

Для новых автоматически извлечённых поручений реализована предварительная классификация срочности по сроку, а не по смыслу: до 2 дней включительно и просрочка — высокая, 3–7 дней — средняя, более 7 дней — низкая. Без даты используется средняя срочность без выдумывания срока. Расчёт выполняется на день обработки в TALDAU_TIMEZONE; результат остаётся на ручную проверку. Старые и вручную добавленные поручения не пересчитываются; после изменения даты секретарь проверяет срочность самостоятельно. Классификация по направлению не реализована.

При работающем backend напоминания создаются автоматически за два дня до срока, в день срока и отдельно при просрочке, только для подтверждённых незавершённых поручений. Интервал по умолчанию — 60 секунд; уникальность версии поручения и вида уведомления предотвращает повторы. /notifications — общий локальный журнал, фильтр по имени не является личным кабинетом или доставкой адресату. Сценарий персональной автоматической рассылки выполнен частично. Ручной /remind формирует текст, но не отправляет email.

Архитектура и данные

Браузер → React/Vite → /api → FastAPI
                              ├─ аудио → backend/data/uploads/
                              ├─ BackgroundTasks → Python ml.process_meeting
                              │   ffmpeg → Mixed CTC / Whisper → pyannote
                              │   → необязательная KazLLM → Qwen/Ollama → JSON
                              └─ SQLAlchemy → PostgreSQL
                                  → редактор / подтверждение / DOCX / уведомления

ML вызывается внутри процесса API, не отдельным HTTP-сервисом. Backend и ML устанавливаются в одно Python-окружение. Тяжёлые задачи последовательно проходят через внутрипроцессную блокировку. Запускайте один Uvicorn worker, без --reload. Это не долговечная очередь: после аварии незавершённая задача сама не возобновляется, запись нужно загрузить заново. Готовые результаты и правки остаются в PostgreSQL.

В БД хранятся совещания, путь к аудио, согласие, дата, участники, сегменты, поручения, саммари, предупреждения, исходный ML JSON и уведомления. Аудио находится в файловой системе. Схема создаётся миграциями Alembic; личный дамп и seed для реальной обработки не нужны.

Адаптер валидирует JSON v1, а не извлекает поля заново из прозы. Исходный ASR-текст и таймкоды сохраняются; source_segment_ids связывают поручения с репликами, warnings показывают ограничения. Полный ответ ML и его исходный needs_review хранятся отдельно от человеческого подтверждения: каждое новое поручение требует ручной проверки. suggested_name и assignment_quote сохраняются в сыром JSON, отдельного интерфейса для этих полей нет. При наличии KazLLM UI показывает suggested_text рядом с исходным текстом.

Результат сохраняется одной транзакцией. Исключение переводит совещание в failed; отсутствие модели не подменяется демоданными. Подтверждение требует ответственного и даты: если срок не прозвучал, секретарь должен уточнить его, модель не должна выдумывать дату.

Редактирование требует expected_revision, устаревшая версия получает 409. Сначала сохраняются правки, затем отдельно подтверждается новая версия. Изменение текста, исполнителя, срока, срочности или имени связанного участника снимает подтверждение. Отметка «Проверено» появляется после успешного ответа API; статус исполнения меняется отдельно.

Саммари проверяет дословные цитаты в сегментах, но совпадение цитаты не гарантирует правильность её толкования. При сбое генерации остаются отмеченные выдержки и предупреждение. Ручные изменения поручений не обновляют саммари автоматически. Из backend/ можно обновить его без повторного ASR командой ../.venv/bin/python -m app.refresh_summary MEETING_ID (PowerShell: ..\.venv\Scripts\python.exe -m app.refresh_summary MEETING_ID). Команда учитывает текущие поручения, сохраняет исходный ML JSON и проверяет версии перед записью.

Окружение и зависимости

Проверено: macOS 26.5.2 arm64, Apple M4 Pro, 24 GiB объединённой памяти, Python 3.11.15, Node 25.8.0, npm 11.11.0, ffmpeg 9.0.2, PostgreSQL 16. ASR/диаризация — TALDAU_DEVICE=cpu; Ollama управляет ускорением самостоятельно. Это характеристики проверенной машины, не минимальные требования. Пиковая память и минимальное железо не измерены. Windows, WSL2, Linux и CUDA в этой проверке не запускались.

Используйте Python 3.11. Для других версий отдельно проверяйте совместимость ML wheels. Установка FastAPI не доказывает совместимость torch/pyannote. Node 25 использован при проверке; полный прогон с другой версией не заявляется.

КомпонентЗависимости
API / БДFastAPI 0.115.6, Uvicorn 0.34.0, SQLAlchemy 2.0.44, Alembic 1.14.0, psycopg 3.3.2
DOCXpython-docx 1.1.2
MLfaster-whisper 1.2.1, pyannote.audio 4.0.7; torch/onnxruntime и другие транзитивные пакеты
UIReact 18, TypeScript 5.6, Vite 6, Tailwind 3, Radix UI, Lucide, React Router

Источники версий: backend/requirements.txt, requirements-ml.txt, frontend/package.json, package-lock.json. npm ci использует lockfile. Python requirements не фиксируют все транзитивные версии: полная побитовая воспроизводимость окружения пока не обеспечена. requirements-training.txt нужен только для обучения, не для приёмки.

В Git: код, примеры конфигурации, миграции, тесты, синтетические WAV и отчёты. Отдельно: Python/Node, Docker/PostgreSQL, ffmpeg, Ollama, библиотеки и веса. Не коммитьте .venv, модели, исполняемые файлы Ollama, базу, .env, приватные записи или токены.

Измеренный местный размер .venv — около 1.2 GiB; обязательные ASR/диаризация — около 753 MiB; Qwen 7B — 4 683 087 332 байт. Это не полный расход установки: добавляются npm, Docker-образ/volume, кэши, временное WAV и записи. Общий минимум свободного места не измерен. Другие размеры и версии — MODELS.md.

Установка и запуск

Порядок: чистый клон → единая .venv в корне → зависимости → backend/.env → PostgreSQL → миграции → веса/Ollama → doctor → API → frontend → приёмка ниже. Для сдачи используйте объединённую ветку main.

docker compose up -d postgres поднимает только PostgreSQL. По умолчанию: БД 127.0.0.1:5433, API 127.0.0.1:8000, UI http://127.0.0.1:5173, Ollama 127.0.0.1:11434. Vite проксирует /api в backend. Swagger: http://127.0.0.1:8000/docs. Публичная deployed-версия не заявляется.

/api/health проверяет API и БД, не модели. ml.doctor проверяет наличие файлов/модулей/моделей Ollama, но не заменяет inference. Запущенный frontend также не доказывает работоспособность всего приложения.

Переменные окружения

backend/.env читает app.config; переменные процесса имеют приоритет. После изменения перезапустите API. Относительные пути ASR, диаризации и фикстуры в backend разрешаются от корня репозитория. Отдельный python -m ml не читает .env: передайте переменные и запускайте из корня либо используйте абсолютные пути. Корневой .env не является конфигурацией API.

Параметр backendПо умолчанию в кодеРеальный запуск / назначение
DATABASE_URLpostgresql+psycopg://postgres:postgres@localhost:5433/taldauСогласовать с БД; это пример локальной учебной БД
ASR_BACKENDlocal_mllocal_ml
LLM_BACKENDlocal_mllocal_ml
TALDAU_TIMEZONEAsia/AlmatyЧасовой пояс дат и напоминаний
TALDAU_ASR_ENGINEwhisper в MLmixed-ctc, как в примере .env
TALDAU_ASR_MODELНе заданОбязательно models/mixed-stt
TALDAU_DIARIZATION_MODELНе заданОбязательно models/speaker-diarization-community-1
TALDAU_LLM_MODELqwen2.5:7bЛокальная модель поручений и саммари
TALDAU_SUMMARY_MODELИспользуется TALDAU_LLM_MODELНеобязательно qwen2.5:14b, после установки
TALDAU_KAZLLM_MODELНе заданНеобязательная коррекция; базовый запуск — отключено
TALDAU_OLLAMA_URLhttp://127.0.0.1:11434Только loopback HTTP, без облачного fallback
TALDAU_DEVICEcpucuda требует отдельной подготовки и проверки
TALDAU_ML_RESULT_FIXTUREНе заданНе задавать: непустой путь имеет приоритет над настоящим ML
TALDAU_REMINDERS_ENABLEDtrueАвтоматический локальный журнал
TALDAU_REMINDERS_INTERVAL_SECONDS60Минимум 1 секунда
TALDAU_CTC_BEAM_SIZE1Необязательный эксперимент 1–64; основной запуск — 1
LLM_BASE_URL, LLM_MODELhttp://localhost:11434/v1, qwen2.5:7bСтарый демонстрационный extractor, не замена TALDAU_*

frontend/.env читает Vite отдельно; после изменений перезапустите Vite:

ПараметрПо умолчаниюПример
VITE_USE_MOCKSВыключено, включается только строкой truefalse для API-приёмки
TALDAU_API_PROXYhttp://127.0.0.1:8000Адрес API для dev proxy

Переменные процесса Vite также могут перекрывать .env. TALDAU_DB_PORT относится к Compose: при смене порта измените и DATABASE_URL. Инструкции создают .env только при отсутствии и не перезаписывают существующие настройки.

Настоящий сценарий приёмки

  1. Откройте лендинг http://127.0.0.1:5173 и перейдите в приложение /app. Используйте React-приложение, не отдельные HTML-макеты с демоданными.
  2. Создайте совещание, дата 23.09.2026. Подтвердите уведомление участников и согласие на запись/ИИ-обработку. Флажок фиксирует заявление оператора, а не заменяет реальное уведомление.
  3. Загрузите acceptance_mixed.wav, укажите 2 говорящих. Это синтетический вымышленный диалог из сценария.
  4. Дождитесь done. Не перезапускайте API во время обработки. При failed изучите сообщение и журнал backend.
  5. Проверьте транскрипт, таймкоды, говорящих, саммари, предупреждения и источники поручений. Метки голосов могут переставиться между запусками.
  6. Только теперь сравните с эталоном: два поручения — договор к 24.09.2026 и отчёт к 25.09.2026. Эталон не передаётся модели; дата и число участников — исходные метаданные, не готовые ответы.
  7. Проверьте имена по репликам. Исправьте участника, ответственного (можно внешний отдел), срок. Сохраните. Добавьте пропущенное поручение и удалите ошибочное/дублированное.
  8. Подтвердите каждое поручение отдельно. При ошибке API подтверждение не должно выглядеть сохранённым; после изменения требуется новая проверка.
  9. Скачайте DOCX, откройте и сравните с правками. До подтверждения всех поручений экспорт блокируется.
  10. Проверьте /tasks и /notifications. Уведомления зависят от текущей даты. В отдельной тестовой БД можно создать подтверждённое тестовое поручение с сегодняшним/прошедшим сроком и дождаться интервала сканирования.
  11. После завершения обработки остановите API через Ctrl+C и запустите той же командой. Обновите UI: результат, правки и DOCX должны сохраниться. Для проверки БД используйте docker compose restart postgres, без удаления volume.

Одна смешанная запись не оценивает все языковые режимы. Отдельно проверьте русский, казахский и смешанный WAV с известным текстом; для полного языкового сценария нужны два голоса, поручение и срок в каждом. ML_EVALUATION.md содержит результаты пяти коротких синтетических ASR-примеров. Реальные демонстрационные записи анонимизируйте и не публикуйте без разрешения.

Проверки и измерения

Повторено при подготовке документации: 35 ML-тестов — passed, 0 skipped/failed; 9 backend-тестов — passed, 0 skipped/failed, включая PostgreSQL в случайной временной схеме. Alembic current: 20260923_0003 (head); check: изменений нет. Frontend 6990bba проверен в отдельной чистой копии: npm ci установил 292 пакета, build прошёл, lint — 0 ошибок, 2 предупреждения Fast Refresh. Это чистая копия кода на подготовленной машине, не чистая ОС.

Команды, реальные прогоны и границы доказательств: VALIDATION.md. API-тесты подменяют ML-ответ только внутри теста и не измеряют ASR. PostgreSQL-тесты создают/удаляют отдельную случайную схему; TEST_DATABASE_URL задаётся явно. Браузерная приёмка создаёт записи — используйте отдельную тестовую БД.

Сохранённые отчёты команды: 6/6 текстовых сценариев, 2/2 поручения и 4/4 преобладающих голоса. Последнее — сопоставление меток по четырём синтетическим репликам, не DER и не независимый holdout. Отчёт содержит прежнюю версию саммари. Два пилота адаптации CTC не улучшили Dev WER; приложение использует исходные веса. Добавление training-скриптов не означает улучшение модели.

Безопасность и ограничения

В реальном режиме аудио получает локальный backend; ffmpeg/ASR/pyannote работают локально. Ollama получает текст сегментов, метаданные и инструкции для извлечения/саммари, не исходное аудио. ML задаёт offline-режим Hugging Face, отключает телеметрию pyannote/ONNX Runtime и разрешает Ollama только на loopback без proxy/redirect. Интернет нужен для первоначальной установки. Для закрытого контура заранее подготовьте пакеты, Docker-образ, полные веса и повторите приёмку с отключённой внешней сетью. Полного сетевого аудита в этой проверке не было.

localhost внутри Docker/WSL — другая среда. Базовая конфигурация запускает API и Ollama на одном хосте, в Docker — только БД. Для WSL запускайте Ollama рядом с backend в той же среде. Не заменяйте её внешним облачным API.

Прототип не готов для чувствительных корпоративных данных без доработки: нет авторизации, ролей, TLS в приложении, прикладного шифрования записей/БД и полноценного аудита. Не публикуйте API/БД в интернете. backend/data/uploads, PostgreSQL и диагностические результаты требуют контроля доступа ОС. Удаление поручения реализовано; удаления совещания вместе с аудио через UI/API и автоматической политики хранения нет. Удаление поручения не удаляет исходную запись и сырой ML JSON.

Остаются ошибки ASR/диаризации, неопределённые имена, пропуски/дубли поручений, неоднозначные сроки и ошибки смысла саммари. CPU-обработка длинных записей может быть длительной. Нет долговечной очереди/восстановления, персональной доставки уведомлений, PDF, СЭД и бота видеоконференций. Windows/WSL, CUDA, полный автономный запуск без сети и масштабирование не подтверждены.

Диагностика

СимптомДействие
PostgreSQL недоступенDocker запущен; из корня docker compose ps, docker compose exec postgres pg_isready -U postgres -d taldau; порт совпадает с URL
Занят 5433Другой TALDAU_DB_PORT и тот же порт в DATABASE_URL; не запускайте две БД на одном порту
Занят 8000 / 5173Остановите свой прежний процесс либо выберите другой порт; обновите proxy. --strictPort не даст Vite незаметно сменить порт
Неверный URL БДФормат postgresql+psycopg://user:[скрыто]@host:port/database, правильное окружение и отсутствие старой переменной процесса
Нет таблицИз backend/ тем же Python: -m alembic upgrade head, затем current и check
Нет onnxruntime/torch/pyannoteПроверьте python -c "import sys; print(sys.executable)"; ML requirements должны стоять в окружении API
Нет ffmpegУстановите системный ffmpeg; ffmpeg -version должен работать в терминале API
Не найдены весаDoctor с backend config, правильный engine и полный каталог. Отдельный CLI не читает .env
Ollama / модель недоступнаollama list, /api/tags, один ollama serve; заранее ollama pull qwen2.5:7b
Не хватает памятиОстановите лишние ML-процессы, отключите необязательные KazLLM/14B, один worker, короткий WAV
Windows-путь / PowerShell / WSLСм. отдельную инструкцию; не переносите macOS .venv в Windows; Ollama в той же среде
CORS / UI не видит backendОткрывайте через Vite; проверьте /api, proxy и health. Не открывайте index.html напрямую
Подозрительно быстрый результатУберите фикстуру и stub, выключите VITE_USE_MOCKS=true, перезапустите API/Vite
failedСмотрите error_message и stderr API; исправьте причину, загрузите заново. Фикстура не является исправлением
Задача прервана перезапускомОчередь не восстанавливается; повторно загрузите запись, не очищайте БД
DOCX заблокированdone, заполненные исполнитель/дата, сохранение и отдельное подтверждение всех задач
@/api не найден / маркеры конфликтовПроверьте src/api.ts, Vite config и git status; согласованно завершите merge. Скрытие overlay ошибку не исправляет

Остановка: дождитесь обработки, Ctrl+C у API/Vite, docker compose stop postgres из корня. Повторный запуск: PostgreSQL, Ollama, API, Vite. Не используйте docker compose down -v для остановки или ремонта — он удаляет данные.

Сторонние компоненты и сдача

Работа команды: интеграция, контракт/валидация, сроки, редактор/подтверждение, хранение, DOCX, локальные уведомления, запись и тесты. Речевые/языковые модели не обучены командой с нуля. Источники и лицензии — MODELS.md; библиотеки перечислены в зависимостях. UI использует Tailwind, Radix/shadcn-подход и Lucide; отдельные дизайн-макеты не заменяют приложение. Лицензия проекта не изменяет права на чужие веса, библиотеки, шаблоны и данные.

Эксперименты использовали Tim2190/kazakh-codeswitch-asr и ISSAI KSC2; атрибуция, разбиения и результаты — TRAINING.md. Эти датасеты не нужны для запуска. Синтетические тесты созданы командой через macOS TTS. Допуск синтетики в ТЗ не заменяет проверку прав распространения конкретных голосов/артефактов; перед передачей офлайн-комплекта проверьте их отдельно. Личные записи и протоколы из переписки в этой задаче не публиковались.

CASE_REQUIREMENTS.md: работоспособность 25, реализация 25, README/воспроизводимость 25, ценность 15, развитие 10. Проверки помогают оценить проект, но не обещают баллы. HACKATHON_PLAN.md — сохранённые командой требования, не замена актуальному регламенту. В переданном Положении нет основной части 5.2–5.8: формат дополнительных материалов, обязательность видео/презентации и условия доступа эксперта уточните у организаторов. Офлайн-комплект и видео можно предложить дополнительно.

Чек-лист сдачи:

  • Актуальные frontend/backend/ML и документация согласованно объединены в main, конфликтов нет.
  • Финальный коммит доступен в основном GitHub, эксперту открыт приватный репозиторий.
  • Чистый клон запускается по инструкции, пройден настоящий сценарий до DOCX и после перезапуска.
  • Веса доступны эксперту согласованным способом; gated-доступ решён без передачи личного токена участника.
  • Нет секретов, приватных записей, локальной БД и весов в коммите.
  • Основной сценарий показан, ограничения раскрыты; вклад команды подтверждается историей работы.
  • Капитан подал материалы в формате организаторов; push в GitHub не заменяет сдачу на платформе.
Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
47
Авторы
3
Файлы
142
Ветки
7

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

Karaul Shyngys 29Almaz Bukayev 10beka 8

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

  • 2026-09-23 17:52docs: record final restart and persistence verificationKaraul Shyngys
  • 2026-09-23 17:50feat: suggest task urgency from deadlines with human reviewKaraul Shyngys
  • 2026-09-23 17:46fix: finalize documentation merge and mobile landing boundsKaraul Shyngys
  • 2026-09-23 17:46feat: integrate landing page and final verified applicationKaraul Shyngys
  • 2026-09-23 17:43feat: integrate reviewed meeting interfaceKaraul Shyngys
  • 2026-09-23 17:41docs: document final setup and verified acceptance resultsKaraul Shyngys
  • 2026-09-23 17:31feat: add TaldauAI landing pagebeka
  • 2026-09-23 17:06feat: generate evidence-linked narrative meeting summariesKaraul Shyngys
Все коммиты (47)
  • 2026-09-23 17:02feat: align frontend with TaldauAI preview designbeka
  • 2026-09-23 16:54feat: merge live meeting frontend with reviewed workflowKaraul Shyngys
  • 2026-09-23 16:41chore: ignore generated Vite cacheKaraul Shyngys
  • 2026-09-23 16:40feat: add reliable task review and automatic local remindersKaraul Shyngys
  • 2026-09-23 16:36feat: add live meeting assistant recording flowbeka
  • 2026-09-23 16:24Merge remote-tracking branch 'origin/almaz/backend' into bekasil/ui-previewbeka
  • 2026-09-23 16:16feat: add Notion-style meeting assistant prototypebeka
  • 2026-09-23 16:05chore: merge verified ML branch at 4efd70fAlmaz Bukayev
  • 2026-09-23 16:04feat: integrate local ML processing with PostgreSQL review workflowAlmaz Bukayev
  • 2026-09-23 15:51fix: preserve CTC target boundaries and record adaptation resultsKaraul Shyngys
  • 2026-09-23 15:47fix: verify exported CTC adaptation weightsKaraul Shyngys
  • 2026-09-23 15:47feat: add local CTC adaptation and corpus preparationKaraul Shyngys
  • 2026-09-23 15:33feat: add standalone UI design previewbeka
  • 2026-09-23 15:25fix: ground deadlines in transcript and document backend handoffKaraul Shyngys
  • 2026-09-23 15:15Merge remote-tracking branch 'origin/main' into kashyyn/mlKaraul Shyngys
  • 2026-09-23 15:14fix: verify task assignees and validate meeting acceptance flowKaraul Shyngys
  • 2026-09-23 15:05Merge pull request #1 from BAITC-Hacks/bekasil/docsBekasyl
  • 2026-09-23 15:02docs: add environment preflight checksbeka
  • 2026-09-23 15:01fix: route fixture processing through ML adapterAlmaz Bukayev
  • 2026-09-23 14:58fix: mark curated demo tasks as reviewedAlmaz Bukayev
  • 2026-09-23 14:56Merge remote-tracking branch 'origin/almaz/backend' into almaz/backendAlmaz Bukayev
  • 2026-09-23 14:56feat: add end-to-end meeting processing workflowAlmaz Bukayev
  • 2026-09-23 14:55feat: add offline meeting ML pipelineAlmaz Bukayev
  • 2026-09-23 14:50feat: add protocol export and acceptance evaluation toolsKaraul Shyngys
  • 2026-09-23 14:36feat: add evaluated CTC beam decoding and improve ML reliabilityKaraul Shyngys
  • 2026-09-23 14:16chore: integrate ML pipeline into mainKaraul Shyngys
  • 2026-09-23 14:14chore: merge main and resolve ignore rulesKaraul Shyngys
  • 2026-09-23 14:09docs: record local KazLLM end-to-end evaluationKaraul Shyngys
  • 2026-09-23 13:59fix: pass decoded audio to local diarizationKaraul Shyngys
  • 2026-09-23 13:54chore: ignore generated TypeScript build filesAlmaz Bukayev
  • 2026-09-23 13:53feat: add meeting protocol frontend prototypeAlmaz Bukayev
  • 2026-09-23 13:45feat: benchmark mixed speech and improve speaker alignmentKaraul Shyngys
  • 2026-09-23 13:40feat: add mixed speech ASR and KazLLM correction suggestionsKaraul Shyngys
  • 2026-09-23 13:23feat: evaluate mixed Russian Kazakh speech separatelyKaraul Shyngys
  • 2026-09-23 13:17docs: document ML setup and verificationKaraul Shyngys
  • 2026-09-23 13:15feat: add local meeting ML processing pipelineKaraul Shyngys
  • 2026-09-23 13:10docs: define ML integration contract for meeting processingKaraul Shyngys
  • 2026-09-23 12:30chore: add AGENTS.md and .gitignoreAlmaz Bukayev
  • 2026-09-23 12:17Add hackathon preparation planKaraul Shyngys
Структура репозитория (142 файлов)
.env.example
.gitignore
ACCEPTANCE.md
AGENTS.md
BACKEND_HANDOFF.md
CASE_REQUIREMENTS.md
HACKATHON_PLAN.md
ML_CONTRACT.md
ML_EVALUATION.md
ML_RUN.md
READINESS.md
README.md
TRAINING.md
backend/.env.example
backend/alembic.ini
backend/alembic/env.py
backend/alembic/script.py.mako
backend/alembic/versions/20260923_0001_initial.py
backend/alembic/versions/20260923_0002_ml_contract.py
backend/alembic/versions/20260923_0003_review_notifications.py
backend/app/__init__.py
backend/app/asr/__init__.py
backend/app/asr/base.py
backend/app/asr/stub.py
backend/app/config.py
backend/app/database.py
backend/app/llm/__init__.py
backend/app/llm/base.py
backend/app/llm/ollama.py
backend/app/llm/stub.py
backend/app/main.py
backend/app/models.py
backend/app/refresh_summary.py
backend/app/schemas.py
backend/app/seed.py
backend/app/services/__init__.py
backend/app/services/export.py
backend/app/services/ml_adapter.py
backend/app/services/processor.py
backend/app/services/reminders.py
backend/requirements-test.txt
backend/requirements.txt
backend/tests/test_integration.py
backend/tests/test_ml_adapter.py
docker-compose.yml
docs/MODELS.md
docs/SETUP_MACOS.md
docs/SETUP_WINDOWS.md
docs/VALIDATION.md
examples/acceptance_reference.json
examples/acceptance_scenario.json
examples/audio/acceptance_mixed.wav
examples/audio/kk_control.wav
examples/audio/meeting_demo.wav
examples/audio/mixed_action.wav
examples/audio/mixed_deadline.wav
examples/audio/mixed_owner.wav
examples/audio/ru_control.wav
examples/meeting_asr_manifest.json
examples/meeting_manifest.json
examples/results/acceptance-evaluation.json
examples/results/acceptance-result.json
examples/results/ctc-adaptation-pilot-v1.json
examples/results/ctc-adaptation-pilot-v2.json
examples/results/meeting-asr-beam.json
examples/results/meeting-asr-greedy.json
examples/results/meeting-beam-result.json
examples/results/meeting_result.json
examples/results/mixed-ctc-beam-evaluation.json
examples/results/mixed-ctc-evaluation.json
examples/results/tasks-kazllm-baseline.json
examples/results/tasks-qwen-evaluation.json
examples/results/whisper-hotwords-comparison.json
examples/results/whisper-large-v3-evaluation.json
examples/shala_manifest.json
examples/task_cases.json
frontend/.env.example
frontend/design-preview.html
frontend/eslint.config.js
frontend/index.html
frontend/package-lock.json
frontend/package.json
frontend/postcss.config.js
frontend/scripts/acceptance.mjs
frontend/scripts/recording.mjs
frontend/src/App.tsx
frontend/src/api.ts
frontend/src/components/Layout.tsx
frontend/src/components/ui/badge.tsx
frontend/src/components/ui/button.tsx
frontend/src/components/ui/card.tsx
frontend/src/components/ui/checkbox.tsx
frontend/src/components/ui/dialog.tsx
frontend/src/components/ui/input.tsx
frontend/src/components/ui/label.tsx
frontend/src/components/ui/select.tsx
frontend/src/components/ui/tabs.tsx
frontend/src/components/ui/toast.tsx
frontend/src/index.css
frontend/src/lib/utils.ts
frontend/src/main.tsx
frontend/src/mocks.ts
frontend/src/pages/LandingPage.tsx
frontend/src/pages/LiveMeetingPage.tsx
frontend/src/pages/MeetingPage.tsx
frontend/src/pages/MeetingsPage.tsx
frontend/src/pages/NewMeetingPage.tsx
frontend/src/pages/NotificationsPage.tsx
frontend/src/pages/TasksPage.tsx
frontend/src/pages/landing.css
frontend/src/types.ts
frontend/src/vite-env.d.ts
frontend/tailwind.config.js
frontend/taldauai_notion.html
frontend/tsconfig.app.json
frontend/tsconfig.json
frontend/tsconfig.node.json
frontend/vite.config.ts
ml/__init__.py
ml/__main__.py
ml/ctc.py
ml/doctor.py
ml/evaluate.py
ml/evaluate_meeting.py
ml/evaluate_tasks.py
ml/export.py
ml/mixed_asr.py
ml/pipeline.py
ml/summary.py
requirements-ml.txt
requirements-training.txt
scripts/check_acceptance_persistence.py
scripts/make_acceptance_audio.py
scripts/make_synthetic_audio.py
tests/test_acceptance.py
tests/test_ctc.py
tests/test_pipeline.py
tests/test_summary.py
tests/test_training.py
training/__init__.py
training/adapt_ctc.py
training/prepare_corpora.py
Ветки (7)

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

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

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