auto-report-skill/SKILL.md

129 lines
No EOL
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: meeting-report
description: Generates meeting reports from audio recordings using local Whisper ASR
version: 1.0.0
metadata:
openclaw:
requires:
env:
- WHISPER_URL
- WHISPER_API_KEY
- HOTWORDS_PATH
bins:
- ffmpeg
- ffprobe
- pandoc
- python3
- xelatex
primaryEnv: WHISPER_API_KEY
emoji: "📝"
os:
- linux
- darwin
---
# Meeting Report Skill
## Описание / Description
Этот навык транскрибирует аудиозаписи совещаний с помощью локально развёрнутого Whisper ASR, объединяет транскрипции из нескольких источников и создаёт структурированный отчёт о встрече в форматах Markdown и PDF.
## Триггеры / Triggers
- "meeting report", "generate report", "transcribe meeting", "audio report", "отчёт о встрече", "сформируй отчёт", "расшифруй запись"
## Инструкции / Instructions
### 1. Подготовка окружения / Environment setup
Убедитесь, что установлены требуемые переменные окружения:
- `WHISPER_URL` URL локального Whisper сервера (например, `http://localhost:8000`)
- `WHISPER_API_KEY` API ключ для доступа к Whisper серверу (Bearer токен)
### 2. Запуск генерации отчёта / Generate a report
```bash
bash scripts/generate_report.sh <meeting-date-dir>
```
Пример:
```bash
bash scripts/generate_report.sh 2026-04-29
```
Ожидаемая структура:
text
2026-04-29/
├── *.WAV # исходные аудиофайлы (Saramonic, Zoom H2n)
├── transcription/ # создаётся автоматически
├── merged.json # объединённые сегменты
├── merged_plain.txt # сплошной текст для LLM
└── report.pdf # финальный отчёт
3. Что делает generate_report.sh
Обнаруживает источники Saramonic (*.WAV), Zoom H2n (SR*XY.WAV, SR*MS.WAV)
Конвертирует в MP3 и транскрибирует через Whisper (с поддержкой hotwords)
Объединяет транскрипции из нескольких источников (основной + аудитория)
Конвертирует готовый report.md в PDF с помощью pandoc и xelatex
4. Ручное использование скриптов / Manual script usage
Транскрипция одного файла:
bash
bash scripts/transcribe.sh <meeting_dir> <audio.WAV> <output_name>
Объединение двух JSON транскрипций:
bash
python3 scripts/merge_transcriptions.py <primary.json> <secondary.json> <output_dir>
Конкатенация WAV в MP3:
bash
bash scripts/concat_wav.sh <output.mp3> <input1.WAV> <input2.WAV> ...
Чанковое транскрибирование (очень длинные записи):
bash
bash scripts/transcribe_chunked.sh <input.mp3> <output_name> <output_dir>
5. Горячие слова / Hotwords
Файл hotwords.txt содержит термины, организацию, имена и аббревиатуры, повышающие точность распознавания. Переопределяется через переменную HOTWORKS_PATH.
## 6. Инструкции для агента по формированию отчёта / Agent instructions for report generation
После того как скрипт `generate_report.sh` завершил транскрипцию и объединение источников, агент **обязан** самостоятельно создать файл `report.md` в директории встречи.
### Требования к отчёту `report.md`
- **Содержание**: детальное, информативное описание хода встречи, включая:
- обсуждавшиеся темы и вопросы,
- принятые решения и договорённости,
- ход встречи
- назначенные задачи и ответственных,
- ключевые выводы и следующие шаги.
- **Стиль**: корпоративный, деловой, соответствующий ITкомпании (чётко, по делу, без разговорной речи).
- **Формат**: Markdown с заголовками, списками, выделением важного.
- **Запрещено**: прямые цитаты из транскрипции. Пересказывайте содержание своими словами, сохраняя все смысловые детали.
- **Язык**: русский (основной), технические термины допустимы на английском.
### Как агент должен действовать
1. **Дождаться завершения работы** `generate_report.sh` (или выполнить его самостоятельно).
2. **Прочитать содержимое** файла `merged_plain.txt` (или `merged.txt`), который лежит в папке встречи.
Этот файл содержит полный текст транскрипции без таймкодов (или с ними, но для пересказа удобнее plain).
3. **Создать (перезаписать) файл** `report.md` в директории `report`, лежащей в папке встречи, следуя указанным выше требованиям.
4. **Сгенерировать PDF** одним из способов:
- **Способ А (рекомендуемый):** повторно выполнить `bash scripts/generate_report.sh <meeting-date-dir>`.
Скрипт обнаружит уже существующий `report.md` и сконвертирует его в `report.pdf`.
- **Способ Б:** вручную выполнить команду `pandoc report.md -o report.pdf --pdf-engine=xelatex ...` (параметры см. в скрипте).
### Пример запроса агента пользователю
После того как транскрипция готова, агент может написать:
> Транскрипция встречи завершена. Я подготовлю на её основе детальный отчёт в корпоративном стиле (без прямых цитат) и сохраню его в `report.md`, а затем сконвертирую в PDF. Подождите немного.
После выполнения агент сообщает: «Отчёт сгенерирован: `/path/to/meeting/report.pdf`».
Примечания / Notes
Скрипты ожидают локальный Whisper сервер, совместимый с API OpenAI (endpoint /v1/audio/transcriptions), с аутентификацией Bearer.
Для длинных сегментов рекомендуется использовать transcribe_chunked.sh. Он автоматически разбивает аудио по паузам тишины.
Для PDF требуется установленный pandoc, xelatex и шрифты DejaVu.