Transkrypcja spotkań + analiza
Status: Działa od Phase 73 (2026-06-06). Prześlij nagranie audio/wideo do composera czatu — Arc OS transkrybuje, analizuje warstwę wizualną, podsumowuje i indeksuje w wyszukiwaniu projektu.
Przegląd
Pipeline transkrypcji spotkań zamienia surowe nagranie w przeszukiwalną, ustrukturyzowaną wiedzę bez opuszczania 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)
Szacunkowy koszt (klucz Anthropic BYOK): ~$0.20–0.45 za 30-minutowe spotkanie (vision + podsumowanie) + ~$0.056 za transkrypcję Groq. Funkcja wymaga płatnego planu (Starter / Starter Cloud / Beta).
Przesyłanie nagrania
- Otwórz workspace dowolnego projektu.
- Kliknij ikonę spinacza w composerze czatu.
- Wybierz plik audio lub wideo. Obsługiwane formaty:
- Wideo: mp4, mov, webm, mkv, m4v
- Audio: mp3, wav, m4a, aac, ogg, opus, flac
- Maks. rozmiar: 1 GB
- W composerze pojawia się chip postępu pokazujący bieżący krok i procent.
- Gdy chip osiągnie 100% (Summary ready), przycisk Send odblokowuje się — możesz od razu wysłać wiadomość odwołującą się do transkryptu.
- Po krótkim dodatkowym kroku (indeksowanie RAG) status zmienia się na done, a plik źródłowy jest usuwany.
Podczas przetwarzania: Możesz pisać inne wiadomości w composerze. Przycisk Send blokują tylko załączniki multimedialne, które wciąż są przetwarzane.
Co trafia do czatu
Gdy wysyłasz wiadomość zawierającą ukończony załącznik z transkryptem, tekst transkryptu jest automatycznie dołączany do Twojej wiadomości:
Your message text here
--- TRANSCRIPT: meeting-2026-06-06.mp4 (video) ---
[whisper transcript text...]
--- END TRANSCRIPT ---
Worker AI widzi pełny transkrypt inline, jak każdy inny dokument. Możesz zadawać o niego pytania, prosić o podsumowania lub kazać workerowi wyodrębnić action items.
Kroki pipeline'u w szczegółach
Krok 1 — Ekstrakcja audio (ffmpeg)
Dla plików wideo Arc OS wyodrębnia ścieżkę audio do mono WAV 16 kHz. Dla plików audio jest to tylko konwersja formatu.
Krok 2 — Transkrypcja (Groq whisper-large-v3)
Plik WAV jest wysyłany do API Groq (model whisper-large-v3). Szybkość: ~100× realtime (klip 11 s → poniżej 1 s). Platformowy GROQ_API_KEY jest konfigurowany w Platform Settings → Transcription przez admina. Wielojęzyczność — ukraiński, angielski i wszystkie inne główne języki są obsługiwane out of the box.
Krok 3 — Ekstrakcja klatek przy zmianach sceny (tylko wideo)
ffmpeg próbkuje klatki w punktach zmiany sceny (próg 0.4, czułość od 0 = każda klatka do 1 = nigdy). Znaczniki czasu są zapisywane do timestamps.json, dzięki czemu opisy klatek mapują się na dokładne pozycje w wideo.
Maksymalna liczba klatek na wideo: 50 (~$0.15 w najgorszym przypadku w kosztach Claude vision).
Krok 4 — Analiza Claude vision (tylko wideo)
Każda spróbkowana klatka jest wysyłana do Claude Sonnet vision z promptem skupionym na:
- Slajdach i treści prezentacji (tytuły, kluczowe punkty, wykresy)
- Udostępnianiu ekranu (aplikacje, kod, dashboardy, widoczne URL-e)
- Diagramach (bloki, strzałki, etykiety)
- Widocznym tekście (etykiety UI, nagłówki, ważne liczby)
Klatki pokazujące tylko kamerkę lub bez treści informacyjnej są oznaczane "No informational content" i nie wnoszą nic do podsumowania.
Błędy klatek nie przerywają procesu — opis staje się [vision failed: <reason>], a pipeline kontynuuje.
Krok 5 — Podsumowanie Claude Sonnet
Transkrypt (i opisy klatek z vision, jeśli dostępne) są wysyłane do Claude Sonnet. Podsumowanie jest zapisywane jako ustrukturyzowany 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"
}
Błędy podsumowania cofają transkrypt do poprzedniego stanu, dzięki czemu surowy tekst jest zachowany. Po naprawieniu klucza Anthropic możesz spróbować ponownie.
Krok 6 — Osadzanie w RAG (Phase 73.6)
Pełny tekst (transkrypt + opisy klatek + podsumowanie) jest dzielony na fragmenty i osadzany przez Cohere embed-multilingual-v3.0 w wektorowym indeksie projektu. Po tym kroku:
- Nagranie jest przeszukiwalne przez
arc kb searchi narzędzie wiedzy w czacie - Plik źródłowy jest usuwany z dysku (decyzja CEO D4 — tabela transkryptów jest źródłem prawdy)
- Status zmienia się na
done
Aby pominąć indeksowanie RAG: przekaż embed_to_rag=false w formularzu uploadu (tylko API; UI zawsze osadza domyślnie).
Konfiguracja klucza API BYOK
Claude vision i podsumowanie używają Twojego klucza API Anthropic:
- Przejdź do Profile → API Keys → Anthropic Key.
- Wklej swój klucz. Przed zapisaniem jest szyfrowany AES-256-GCM.
- Jeśli nie skonfigurowano osobistego klucza, używany jest współdzielony klucz platformy (podlega limitom platformy).
Transkrypcja Groq używa platformowego GROQ_API_KEY — do transkrypcji nie potrzebujesz osobistego klucza.
Przeszukiwanie transkryptów
Gdy transkrypt osiągnie status done, można go znaleźć przez wyszukiwanie semantyczne:
arc kb search "action items from last standup"
arc kb search "decision about Q3 launch"
Z poziomu composera czatu worker AI może automatycznie odpowiadać na pytania oparte na Twoich transkryptach przez narzędzie ask_notebooklm (które odpytuje ten sam indeks RAG).
Możesz zawęzić wyniki tylko do transkryptów przez parametr doc_types:
GET /api/crm/projects/:name/rag/search?q=...&doc_types=transcript
Koszty i limity
| Zasób | Limit | Uwagi |
|---|---|---|
| Rozmiar uploadu | 1 GB | Na plik |
| Klatki vision | maks. 50 | Twardy limit; nadmiarowe klatki są odrzucane |
| Koszt Claude vision | ~$0.003/klatka | Przy typowej rozdzielczości JPEG 1024×768 |
| Koszt podsumowania Claude | ~$0.005–0.02 | Zależy od długości transkryptu (≤60 000 znaków do podsumowania) |
| Transkrypcja Groq | $0.111/godz. audio | Klucz platformy; ~$0.056 za 30-min spotkanie |
| Miesięczny limit (Starter) | 60 min | Resetuje się 1. dnia każdego miesiąca |
| Miesięczny limit (Starter Cloud) | 300 min | Resetuje się 1. dnia każdego miesiąca |
| Miesięczny limit (Beta) | 1 200 min | Resetuje się 1. dnia każdego miesiąca |
| Równoczesne zadania | 1 | Zadania w kolejce; jedna transkrypcja naraz na serwer |
Rozwiązywanie problemów
| Objaw | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
| Chip utknął na „Transcribing" >2 min | Timeout API Groq lub długie nagranie | Sprawdź GROQ_API_KEY w Platform Settings; zadania czekają w kolejce |
Krok vision pokazuje [vision failed: ...] |
Brak klucza Anthropic lub rate limit | Ustaw klucz BYOK w Profile → API Keys |
| Podsumowanie nieudane, status cofnięty | Błąd API Claude | Napraw klucz; pipeline przyjmie nowy upload |
| Osadzanie RAG nieudane (niekrytyczne) | Problem z kluczem Cohere | Transkrypt nadal użyteczny; arc kb search nie znajdzie go do czasu ponownego osadzenia |
| Przycisk Send nadal zablokowany po „Summary ready" | Nieaktualny cache przeglądarki | Odśwież stronę |
| „No informational content" na wszystkich klatkach | Nagranie tylko z kamerki (brak udostępniania ekranu) | Oczekiwane; vision pomija klatki z samą kamerką |
Odniesienia
master-bot/transcript-worker.ts— orkiestrator pipeline'u (Phase 73.2 + 73.4 + 73.5 + 73.6)master-bot/transcript-vision.ts— Claude vision per klatka (Phase 73.4, #380)master-bot/transcript-summary.ts— podsumowanie Claude Sonnet (Phase 73.5, #381)shared/migrations/052_transcripts.ts— tabela transkryptówshared/migrations/053_transcript_jobs.ts— tracker postępu zadańfrontend/src/crm/pages/workspace/Composer.jsx— chip uploadu + postęp SSE- Dokumentacja API: Endpointy Phase 73
- Architektura: RAG — doc_type transcript