Транскрипція зустрічей + аналіз
Статус: працює з Phase 73 (2026-06-06). Завантаж аудіо- чи відеозапис у композер чату — Arc OS транскрибує, аналізує візуальний ряд, робить підсумок і вбудовує у пошук проєкту.
Огляд
Пайплайн транскрипції зустрічей перетворює сирий запис на структуровані знання з пошуком — не виходячи з Arc OS:
Upload (Transcripts page or composer paperclip)
→ Groq whisper-large-v3 (~100× realtime, $0.111/audio-hour)
→ Claude vision on key frames (video only — slide content, screen shares)
→ Claude Sonnet summary (tldr, action items, decisions, topics)
→ Cohere RAG embed (transcript searchable via arc kb search)
→ done (source file deleted from disk)
Орієнтовна вартість (BYOK ключ Anthropic): ~$0.20–0.45 за 30-хвилинну зустріч (vision + summary) + ~$0.056 за транскрипцію Groq. Фіча потребує платного плану (Starter / Starter Cloud / Beta).
Завантаження запису
- Відкрий workspace будь-якого проєкту.
- Натисни іконку скріпки у композері чату.
- Вибери аудіо- або відеофайл. Підтримувані формати:
- Відео: mp4, mov, webm, mkv, m4v
- Аудіо: mp3, wav, m4a, aac, ogg, opus, flac
- Максимальний розмір: 1 GB
- У композері з'являється чип прогресу з поточним кроком і відсотком.
- Коли чип досягає 100% (Summary ready), кнопка Send розблоковується — можна одразу надсилати повідомлення з посиланням на транскрипт.
- Після короткого додаткового кроку (RAG-індексація) статус стає done, і вихідний файл видаляється.
Поки йде обробка: можна писати інші повідомлення у композері. Кнопку Send блокують лише медіа-вкладення, які ще обробляються.
Що потрапляє в чат
Коли ти надсилаєш повідомлення з завершеним транскрипт-вкладенням, текст транскрипту автоматично додається до твого повідомлення:
Your message text here
--- TRANSCRIPT: meeting-2026-06-06.mp4 (video) ---
[whisper transcript text...]
--- END TRANSCRIPT ---
AI-воркер бачить повний транскрипт inline, як будь-який інший документ. Можна ставити питання, просити підсумки або доручити воркеру витягнути action items.
Кроки пайплайна детально
Крок 1 — Виділення аудіо (ffmpeg)
Для відеофайлів Arc OS виділяє аудіодоріжку в 16 kHz mono WAV. Для аудіофайлів це лише конвертація формату.
Крок 2 — Транскрипція (Groq whisper-large-v3)
WAV надсилається в Groq API (модель whisper-large-v3). Швидкість: ~100× realtime (кліп 11 с → менше 1 с). Платформний GROQ_API_KEY налаштовується адміном у Platform Settings → Transcription. Мультимовність — українська, англійська та всі інші основні мови підтримуються з коробки.
Крок 3 — Виділення кадрів на зміні сцени (тільки відео)
ffmpeg відбирає кадри у точках зміни сцени (поріг 0.4, чутливість від 0 = кожен кадр до 1 = ніколи). Часові мітки записуються в timestamps.json, тож описи кадрів мапляться на точні позиції у відео.
Максимум кадрів на відео: 50 (~$0.15 у найгіршому випадку на Claude vision).
Крок 4 — Аналіз Claude vision (тільки відео)
Кожен відібраний кадр надсилається у Claude Sonnet vision із промптом, сфокусованим на:
- Слайдах і презентаційному контенті (заголовки, ключові тези, графіки)
- Демонстраціях екрана (застосунки, код, дашборди, видимі URL)
- Діаграмах (блоки, стрілки, підписи)
- Видимому тексті (UI-підписи, заголовки, важливі числа)
Кадри лише з вебкамерою або без інформаційного наповнення позначаються "No informational content" і не впливають на підсумок.
Збій на окремому кадрі не фатальний — опис стає [vision failed: <reason>], і пайплайн продовжується.
Крок 5 — Підсумок Claude Sonnet
Транскрипт (і описи кадрів vision, якщо доступні) надсилаються у Claude Sonnet. Підсумок зберігається як структурований JSON:
{
"tldr": "Team reviewed Q3 revenue forecast and decided to ship the new feature by end of month.",
"key_points": [
"Q3 revenue is 15% above projection",
"Two blockers remain on the backend API"
],
"action_items": [
{ "task": "Fix auth endpoint before Thursday", "owner": "Serhii" },
{ "task": "Update stakeholder deck", "owner": null }
],
"decisions": [
"Ship feature to production on June 30"
],
"topics": ["Q3 revenue", "product launch", "API blockers"],
"model": "claude-sonnet-4-5",
"generated_at": "2026-06-06T10:42:00Z"
}
Якщо підсумок не вдався, транскрипт відкочується до попереднього стану — сирий текст зберігається. Можна повторити після виправлення свого ключа Anthropic.
Крок 6 — RAG embedding (Phase 73.6)
Повний текст (транскрипт + описи кадрів + підсумок) розбивається на чанки і вбудовується через Cohere embed-multilingual-v3.0 у векторний індекс проєкту. Після цього кроку:
- Запис доступний для пошуку через
arc kb searchі knowledge-інструмент у чаті - Вихідний файл видаляється з диска (рішення CEO D4 — таблиця transcripts є джерелом істини)
- Статус стає
done
Щоб пропустити RAG-індексацію: передай embed_to_rag=false у формі завантаження (тільки API; UI завжди вбудовує за замовчуванням).
Налаштування BYOK API-ключа
Claude vision і summary використовують твій API-ключ Anthropic:
- Перейди в Profile → API Keys → Anthropic Key.
- Встав свій ключ. Перед збереженням він шифрується AES-256-GCM.
- Якщо персональний ключ не налаштовано, використовується спільний ключ платформи (з урахуванням rate limits платформи).
Транскрипція Groq використовує платформний GROQ_API_KEY — персональний ключ для транскрипції не потрібен.
Пошук по транскриптах
Щойно транскрипт досягає статусу done, він доступний через семантичний пошук:
arc kb search "action items from last standup"
arc kb search "decision about Q3 launch"
З композера чату AI-воркер може автоматично відповідати на питання, спираючись на твої транскрипти, через інструмент ask_notebooklm (він звертається до того самого RAG-індексу).
Звузити пошук лише до транскриптів можна параметром doc_types:
GET /api/crm/projects/:name/rag/search?q=...&doc_types=transcript
Вартість і ліміти
| Ресурс | Ліміт | Примітки |
|---|---|---|
| Розмір завантаження | 1 GB | На файл |
| Кадри vision | макс. 50 | Жорсткий ліміт; зайві кадри відкидаються |
| Вартість Claude vision | ~$0.003/кадр | За типової роздільності 1024×768 JPEG |
| Вартість Claude summary | ~$0.005–0.02 | Залежить від довжини транскрипту (у summary подається ≤60 000 символів) |
| Транскрипція Groq | $0.111/аудіо-година | Ключ платформи; ~$0.056 за 30-хвилинну зустріч |
| Місячний ліміт (Starter) | 60 хв | Скидається 1-го числа кожного місяця |
| Місячний ліміт (Starter Cloud) | 300 хв | Скидається 1-го числа кожного місяця |
| Місячний ліміт (Beta) | 1 200 хв | Скидається 1-го числа кожного місяця |
| Паралельні задачі | 1 | Задачі стають у чергу; одна транскрипція на сервер одночасно |
Усунення проблем
| Симптом | Імовірна причина | Виправлення |
|---|---|---|
| Чип завис на "Transcribing" понад 2 хв | Таймаут Groq API або довгий запис | Перевір GROQ_API_KEY у Platform Settings; задачі стоять у черзі |
Крок vision показує [vision failed: ...] |
Ключ Anthropic відсутній або вперся в rate limit | Встанови BYOK-ключ у Profile → API Keys |
| Summary не вдався, статус відкотився | Помилка Claude API | Виправ ключ; пайплайн прийме нове завантаження |
| RAG embed не вдався (не фатально) | Проблема з ключем Cohere | Транскрипт усе одно доступний; arc kb search не знайде його до повторного embedding |
| Кнопка Send заблокована після "Summary ready" | Застарілий кеш браузера | Онови сторінку |
| "No informational content" на всіх кадрах | Запис лише з вебкамери (без демонстрації екрана) | Очікувана поведінка; vision пропускає кадри з самою вебкамерою |
Посилання
master-bot/transcript-worker.ts— оркестратор пайплайна (Phase 73.2 + 73.4 + 73.5 + 73.6)master-bot/transcript-vision.ts— Claude vision на кожен кадр (Phase 73.4, #380)master-bot/transcript-summary.ts— підсумок Claude Sonnet (Phase 73.5, #381)shared/migrations/052_transcripts.ts— таблиця transcriptsshared/migrations/053_transcript_jobs.ts— трекер прогресу задачfrontend/src/crm/pages/workspace/Composer.jsx— чип завантаження + SSE-прогрес- API reference: Phase 73 endpoints
- Архітектура: RAG — transcript doc_type