# Протоколы встреч из записей через API

> Запись созвона превращается в текст, а текст — в протокол: решения, задачи с ответственными и датами, открытые вопросы. Отклонённые предложения и «посмотрю, если будет время» в задачи не попадают. Расшифровка и протокол — одним ключом Polza.ai.

- Протокол часовой встречи — от 0,42 ₽ по ценам каталога
- Сроки — датами, а не «до пятницы»
- Расшифровка на GigaAM-v3 — 0,25 ₽ за минуту
- JSON для таск-трекера

## Протокол · 5 октября 2026

**Встреча по переезду офиса**

> Решения
> — Переезд офиса состоится 1 ноября.
> — Мебель перевозят частично: столы забирают, шкафы оставляют.
> — Серверную стойку перевозит отдельная компания, своими силами не перевозят.
>
> Задачи
> Алёна · Отправить запросы трём компаниям грузчиков — 5 окт
> Алёна · Написать сотрудникам письмо о переезде — 7 окт
> Сергей · Найти подрядчика для перевозки серверной стойки — 20 окт
>
> Открытые вопросы
> — Устраивать ли новоселье.

Реальный протокол из теста. [Как тестировали](#test)

## Задача

После созвона никто не помнит, кто что обещал. Протокол пишет тот, кому досталось, через день и по памяти. Задачи без дат теряются, а отклонённые идеи всплывают как поручения.

Через API протокол готов через пару минут после встречи. Модель переводит «до пятницы» и «к 20-му» в даты, назначает ответственным того, кто будет делать, а не того, кто предложил, и отделяет решения от того, что только обсуждали.

## Для кого

Везде, где встреч больше, чем людей, готовых писать протоколы.

- **Команды разработки и продукта.** Планёрки, ретро, созвоны с заказчиком. Задачи с датами сразу уходят в трекер. Протокол через 2 минуты после встречи.
- **Агентства и подрядчики.** Созвоны с клиентами: кто что обещал и к какому сроку. Протокол клиенту — в тот же день, а следом — [письмо клиенту по итогам встречи](https://polza.ai/use-cases/pisma-klientam). Меньше споров «мы так не договаривались».
- **Школы и вузы.** Педсоветы, планирование, методические объединения. Решения и поручения по кафедрам. Протокол без отдельного секретаря.
- **Продукты для встреч.** Функция «итоги встречи» в своём сервисе: расшифровка и протокол через одно API. Две модели — один ключ и один счёт.

## От записи до задач

Четыре шага. Расшифровку и протокол делают разные модели, но через один ключ.

- **Шаг 1. Запись.** Файл созвона из Zoom, Телемоста или диктофона: mp3, wav, m4a. (созвон.wav · 40 с)
- **Шаг 2. Расшифровка.** Модель распознавания речи превращает запись в текст. GigaAM-v3 — 0,25 ₽ за минуту по каталогу. (transcribe.py)
- **Шаг 3. Протокол.** Языковая модель выделяет решения, задачи со сроками и открытые вопросы в JSON. (make_protocol.py · 5 задач · 3 решения)
- **Шаг 4. Задачи.** JSON уходит в таск-трекер или сообщением в рабочий чат, каждому — его задачи. (в чат через 2 минуты после встречи)

Если в расшифровке нет имён говорящих, передайте в запрос список участников и их роли — модель определит, кто говорит, по смыслу.

## Как это выглядит

Реальные данные из теста: шумная расшифровка, протокол по ней и задачи в рабочем чате.

### Расшифровка · 3 темы, перебивания

> Ирина: Эм, коллеги, начнём. По осенней рассылке — Дима, где мы?
> Дмитрий: Слушайте, текст готов, жду картинки от дизайна.
> — Простите, я на минуту выпал, что последнее было?
> Ирина: Слушайте, катя, картинки успеешь?
> — Меня слышно? У меня что-то связь прыгает.
> Екатерина: Ну, до среды сделаю три варианта баннера.
> — Простите, я на минуту выпал, что последнее было?
> Ирина: Слушайте, хорошо. Дима, тогда рассылку запускаем в четверг, ты отправляешь.
> — Секунду, курьер пришёл.

Междометия и посторонние реплики остаются в тексте

### Протокол · 5 октября 2026

**Общая планёрка: маркетинг, инцидент в оплате, продажи**

> Решения
> — Запустить осеннюю рассылку в четверг.
> — Оставить бюджет на контекст 200 тысяч до конца квартала.
> — Не давать промокод клиентам, у которых сорвалась оплата, а просто извиниться.
>
> Задачи
> Екатерина · Сделать три варианта баннера для осенней рассылки — 7 окт
> Дмитрий · Отправить осеннюю рассылку — 8 окт
> Екатерина · Обновить шаблон презентации — 31 окт
> Роман · Настроить оповещение за 30 дней до истечения сертификатов — 9 окт
> Вика · Выгрузить список клиентов, у кого сорвалась оплата, и отправить им письма — 6 окт
> Роман · Описать инцидент в базе знаний — 7 окт
> Юля · Отчитаться по сделкам — 9 окт
> Артур · Передать клиенту «Альфа-строй» условия скидки — 5 окт
> Артур · Тестировать новый скрипт звонка — 13 окт
>
> Открытые вопросы
> — Делать ли вебинар в ноябре?
> — Переходить ли на новую CRM?

Gemini 2.5 Flash: все 9 задач, сроки датами

### Рабочий чат · Протокол-бот

**Итоги встречи «Встреча по переезду офиса»**

> — Алёна: отправить запросы трём компаниям грузчиков, до 5 окт
> — Алёна: написать сотрудникам письмо о переезде, до 7 окт
> — Сергей: найти подрядчика для перевозки серверной стойки, до 20 окт

Принято

Задачи каждому — сообщением после встречи

## Сколько стоит протокол

Две части: расшифровка записи и протокол по тексту. Расшифровка оплачивается за минуты, протокол — за токены. Polza.ai считает обе части по текущим ценам [каталога](https://polza.ai/models).

| Модель | 1 000 протоколов, замер 6 октября | Задачи найдены | Сроки верно | Лишние | Протокол часовой встречи, сейчас |
| --- | --- | --- | --- | --- | --- |
| [GPT-5 Mini](https://polza.ai/models/openai/gpt-5-mini.md) | 103 ₽ | 28 из 29 | 27 из 28 | 3 | 0,42 ₽ |
| [Gemini 2.5 Flash](https://polza.ai/models/google/gemini-2.5-flash.md) | 116 ₽ | 29 из 29 | 29 из 29 | 1 | 0,5 ₽ |
| [DeepSeek V4 Pro](https://polza.ai/models/deepseek/deepseek-v4-pro.md) | 23 ₽ | 26 из 29 | 24 из 26 | 1 | 2,49 ₽ |
| [Grok 4.3](https://polza.ai/models/x-ai/grok-4.3.md) | 212 ₽ | 27 из 29 | 27 из 27 | 0 | 3,26 ₽ |
| [Claude Sonnet 5](https://polza.ai/models/anthropic/claude-sonnet-5.md) | 858 ₽ | 28 из 29 | 28 из 28 | 1 | 5,93 ₽ |

Замер — фактический расход по `cost_rub` на 6 встречах из теста 6 октября 2026, по ценам того дня. «Сейчас» — расчёт для часовой встречи по текущим ценам каталога: 20 тысяч токенов расшифровки на входе и тысяча на выходе.

| Модель | Минута, сейчас | Час записи, сейчас |
| --- | --- | --- |
| [Whisper Large V3 Turbo](https://polza.ai/models/openai/whisper-large-v3-turbo.md) | 0,05 ₽ | 2,88 ₽ |
| [GigaAM-v3](https://polza.ai/models/ai-sage/gigaam-v3.md) | 0,25 ₽ | 15,04 ₽ |

Расшифровка по текущим ценам каталога Polza.ai. Остальные модели — в [подборке моделей распознавания речи](https://polza.ai/collections/stt).

Как не переплатить за рассуждение и провайдера на текстовой части — [в сценарии про SEO-тексты](https://polza.ai/use-cases/seo-content#stoimost).

## Готовые скрипты на Python

Первый расшифровывает записи из папки, второй делает протоколы по расшифровкам. Нужен пакет `openai` и ключ в `POLZA_API_KEY`.

### Вход: meetings.json

Название, текст расшифровки и, если в ней нет имён, список участников.

meetings.json:

```
[
  {
    "id": "M09",
    "title": "Созвон отдела продаж",
    "text": "Константин: План на октябрь — 40 сделок. Сейчас 12.\n…"
  }
]
```

### Выход: protocols.jsonl

Фрагмент реального протокола из теста.

protocols.jsonl · фрагмент:

```
{
  "tasks": [
    {
      "deadline": "2026-10-09",
      "owner": "Юля",
      "task": "Отчитаться по двум сделкам в работе"
    },
    {
      "deadline": "2026-10-05",
      "owner": "Артур",
      "task": "Передать клиенту «Альфа-строй» условия скидки"
    }
  ],
  "open_questions": [
    "Переход на новую CRM (обсуждается, решения пока нет)."
  ]
}
```

Python · transcribe.py:

```
# transcribe.py — расшифровка записей встреч через Polza (папка audio/ → transcripts/)
import os, pathlib
from openai import OpenAI

MODEL = "ai-sage/gigaam-v3"  # русская речь; цена за минуту — в каталоге
ai = OpenAI(base_url="https://polza.ai/api/v1", api_key=os.environ["POLZA_API_KEY"])
out = pathlib.Path("transcripts"); out.mkdir(exist_ok=True)

for f in sorted(pathlib.Path("audio").glob("*")):
    with open(f, "rb") as audio:
        r = ai.audio.transcriptions.create(model=MODEL, file=audio, language="ru")
    (out / (f.stem + ".txt")).write_text(r.text, encoding="utf-8")
    print(f.name, "→", len(r.text), "знаков")
```

Python · make_protocol.py:

```
# make_protocol.py — протоколы встреч из расшифровок через Polza
import asyncio, json, os
from openai import AsyncOpenAI, APIStatusError

MODEL = "google/gemini-2.5-flash"  # в тесте нашла все задачи и верно поставила сроки
MEETING_DATE = "понедельник, 5 октября 2026"
CONCURRENCY = 10

ai = AsyncOpenAI(base_url="https://polza.ai/api/v1", api_key=os.environ["POLZA_API_KEY"])
SYSTEM = open("prompt.txt", encoding="utf-8").read()

TASK = {"type": "object", "properties": {"owner": {"type": "string"}, "task": {"type": "string"}, "deadline": {"type": "string"}},
        "required": ["owner", "task", "deadline"], "additionalProperties": False}
SCHEMA = {"name": "protocol", "strict": True, "schema": {"type": "object", "properties": {
    "summary": {"type": "string"},
    "decisions": {"type": "array", "items": {"type": "string"}},
    "tasks": {"type": "array", "items": TASK},
    "open_questions": {"type": "array", "items": {"type": "string"}}},
    "required": ["summary", "decisions", "tasks", "open_questions"], "additionalProperties": False}}

async def protocol(m, sem, stats):
    prompt = (f"Встреча: {m['title']}\nДата встречи: {MEETING_DATE}\n"
              f"Участники: {m.get('participants', 'имена есть в расшифровке')}\n\nРасшифровка:\n{m['text']}")
    async with sem:
        for attempt in range(5):
            try:
                r = await ai.chat.completions.create(
                    model=MODEL,
                    messages=[{"role": "system", "content": SYSTEM}, {"role": "user", "content": prompt}],
                    response_format={"type": "json_schema", "json_schema": SCHEMA},
                    extra_body={"reasoning": {"effort": "none"}},
                )
                break
            except APIStatusError as e:
                if e.status_code in (429, 500, 502, 503) and attempt < 4:
                    await asyncio.sleep(2 ** attempt)
                    continue
                raise
    stats["rub"] += r.usage.model_extra.get("cost_rub", 0)
    return {"id": m["id"], "title": m["title"], **json.loads(r.choices[0].message.content)}

async def main():
    meetings = json.load(open("meetings.json", encoding="utf-8"))
    sem, stats = asyncio.Semaphore(CONCURRENCY), {"rub": 0}
    results = await asyncio.gather(*(protocol(m, sem, stats) for m in meetings), return_exceptions=True)
    with open("protocols.jsonl", "w", encoding="utf-8") as out:
        for m, res in zip(meetings, results):
            if isinstance(res, Exception):
                print(m["id"], "ошибка:", res)
            else:
                out.write(json.dumps(res, ensure_ascii=False) + "\n")
    print(f"Готово, расход {stats['rub']:.2f} ₽")

asyncio.run(main())
```

## Промпт для протокола

Главное в промпте — что считать задачей. Только явное поручение или обещание: «сделаю к среде», «Катя, обнови». Всё, что отменили, отложили или сказали «если будет время», — в открытые вопросы.

Второе правило — даты. Модель получает дату встречи и сама переводит «завтра», «до пятницы», «к 20-му». Если срок не назван, поле остаётся пустым: в тесте ни одна модель не придумала срок там, где его не было.

prompt.txt:

```
Ты составляешь протокол рабочей встречи по
расшифровке.

Протокол:
- summary — 2–3 предложения: о чём встреча и главный
  итог;
- decisions — принятые решения, каждое одной фразой;
- tasks — задачи: owner (кто делает, имя из
  расшифровки), task (что сделать, коротко, с
  глагола), deadline (дата в формате ГГГГ-ММ-ДД или
  пустая строка);
- open_questions — что обсуждали, но не решили.

Правила:
- Задача — только явное поручение или обещание
  сделать: «сделаю к среде», «Катя, обнови»,
  «отправлю сегодня».
- Не записывай в задачи то, что отменили, отклонили
  или отложили: «давайте не будем», «нет», «обсудим
  потом», «подумаем», «если будет время».
- Ответственный — тот, кто будет делать, а не тот,
  кто предложил.
- Сроки переводи в даты относительно даты встречи:
  «завтра», «до пятницы», «к 20-му». Если срок не
  назван — пустая строка, не придумывай его.
- Решение — то, что окончательно договорились.
  Отклонённое предложение — не решение.
- Не добавляй ничего, чего не было в расшифровке.

Верни JSON: summary, decisions, tasks,
open_questions.
```

## Проверка протокола

Протокол проверяется лучше, чем любой другой текст: у задач есть ответственный, глагол и дата. Сложные места можно отдать [второй модели на проверку, как в тестах по урокам](https://polza.ai/use-cases/testy-po-urokam).

- **Эталон на 10 встречах.** Перед запуском в работу разметьте задачи в десятке своих встреч и сравните с протоколами модели кодом — так, как это сделано в тесте ниже.
- **Ловушки в задачах.** Отклонённые предложения, «подумаем», «если будет время». В тесте их было 16 на 10 встреч; DeepSeek не записала в задачи ни одну, Claude Sonnet на шумной встрече записала одну.
- **Ответственный без имён.** Если в расшифровке нет говорящих, модель угадывает по смыслу. DeepSeek отдала «дать доступ к аналитике» тому, кто доступ просил. Gemini 2.5 Flash не ошиблась.
- **Сроки относительно даты.** Передавайте дату встречи в запросе. Без неё «до пятницы» превращается в пятницу неизвестной недели.
- **Выдумки распознавания.** Whisper на 40 секундах записи вставил «Продолжение следует...», которого не было. GigaAM-v3 и Qwen3 ASR расшифровали чисто.
- **Протокол читает организатор.** Две минуты на просмотр перед рассылкой: всё ли на месте и тем ли людям назначено.

## Через Claude, OpenAI и Grok — или без кода

Расшифровку и протоколы соберёт ИИ-агент. Модели — в том же каталоге Polza.ai.

- **Claude Code и Claude Desktop.** Положите записи и промпт в папку и отдайте Claude задание ниже: расшифровки, протоколы и сводная таблица задач. Claude Sonnet 5: протокол часовой встречи — 5,93 ₽ по ценам каталога.
- **Codex и ChatGPT Desktop.** То же задание выполняет Codex CLI. Модели GPT подключаются тем же ключом Polza. GPT-5 Mini: протокол часовой встречи — 0,42 ₽ по ценам каталога.
- **Grok.** Модели xAI в том же API: `MODEL = "x-ai/grok-4.3"` в скрипте. Grok 4.3: протокол часовой встречи — 3,26 ₽ по ценам каталога.

### Задание для агента

Подходит для Claude Code, Codex и других агентов из [интеграций](https://polza.ai/integrations).

задание для Claude Code или Codex:

```
В папке audio лежат записи встреч, рядом prompt.txt.
Напиши и запусти два скрипта на Python через OpenAI SDK
и https://polza.ai/api/v1, ключ — в POLZA_API_KEY:
1) расшифровка каждой записи моделью ai-sage/gigaam-v3,
   текст — в папку transcripts;
2) протокол по каждой расшифровке моделью
   google/gemini-2.5-flash, системный промпт — prompt.txt,
   дата встречи — из имени файла,
   ответ — JSON: summary, decisions, tasks, open_questions.
Покажи задачи всех встреч одной таблицей.
```

### Без кода: n8n и Dify

Новая запись в папке — HTTP-запрос на расшифровку — нода OpenAI Chat Model с адресом `https://polza.ai/api/v1` — задачи в трекер и в чат команды.

- **n8n.** Созвон закончился — через пару минут протокол в чате команды. Нода OpenAI Chat Model с адресом Polza.
- **Dify.** Workflow: расшифровка, протокол, выгрузка задач. Облако или self-hosted.

## Тест редакции: 10 встреч и одна запись

Мы написали 10 расшифровок рабочих встреч — от планёрки маркетинга до совещания по переезду офиса — и заранее разметили 37 задач с ответственными и сроками. В каждой встрече есть ловушки: отклонённые предложения, «если будет время», задача, которую предложил один, а делает другой. Замер 6 октября 2026: весь тест стоил 8,3 ₽ по ценам того дня.

- Встреч: 10
- Задачи найдены: 35 из 37
- Сроки верно: 35 из 35
- Расход: 0,21 ₽

Первый прогон, DeepSeek V4 Pro без рассуждения, 18 секунд на 10 встреч. Ни одна из 16 ловушек не попала в задачи. Пропущены фото к 15 октября и «поговорю с админами, но ничего не обещаю» — второе модель отнесла к открытым вопросам, и это можно считать верным.

### Пять моделей на 6 встречах, включая шумную

| Модель | 1 000 протоколов, замер | Задачи найдены | Лишние | Что увидел редактор |
| --- | --- | --- | --- | --- |
| DeepSeek V4 Pro | 23 ₽ | 26 из 29 | 1 | Пропустила регрессионное тестирование, по расшифровке без имён перепутала ответственного. |
| GPT-5 Mini | 103 ₽ | 28 из 29 | 3 | Быстрая. Отдала предоплату не тому человеку и записала в задачи «бригада ведёт ремонт». |
| Gemini 2.5 Flash | 116 ₽ | 29 из 29 | 1 | Все задачи и все сроки. Единственная «лишняя» — та же задача, разбитая на две. |
| Grok 4.3 | 212 ₽ | 27 из 29 | 0 | Ни одной лишней задачи, но пропустила оценку калькулятора. |
| Claude Sonnet 5 | 858 ₽ | 28 из 29 | 1 | Почти всё верно, но на шумной встрече записала в задачи «посмотреть конкурентов, если будет время». |

Шумная встреча — три темы подряд с междометиями, перебиваниями и посторонними репликами. Сверка с эталоном — кодом, по ответственному и ключевым словам задачи. Стоимость — замер 6 октября 2026 по ценам того дня, текущая — в [разделе «Стоимость»](#stoimost).

### От записи до протокола

| Модель расшифровки | Время | Что получилось |
| --- | --- | --- |
| GigaAM-v3 | 2,7 с | Почти дословно, без имён говорящих |
| Qwen3 ASR Flash | 5,5 с | Почти дословно, без имён говорящих |
| Whisper Large V3 Turbo | 2,7 с | Вставил «Продолжение следует...», которого не было |

Одну встречу мы озвучили двумя голосами через модель синтеза речи Polza — 39 секунд — и расшифровали тремя моделями. Qwen3 ASR Flash участвовала в тесте 6 октября; сейчас её нет в каталоге. По расшифровке GigaAM без имён говорящих Gemini 2.5 Flash нашла 5 из 5 задач и верно определила всех ответственных. DeepSeek нашла 4 из 5 и отдала задачу заказчика подрядчику.

**Вывод.** Протоколы — самый надёжный сценарий из наших тестов: задачи и даты модели извлекают почти без ошибок даже без рассуждения. Для протоколов — Gemini 2.5 Flash: все задачи и сроки, по текущим ценам каталога около 0,5 ₽ за часовую встречу. Для расшифровки — GigaAM-v3. Основная статья расходов — минуты расшифровки, а не протокол.

## Вопросы

### Сколько стоит протокол часовой встречи?

По текущим ценам каталога Polza.ai расшифровка часа на GigaAM-v3 — около 15,04 ₽, протокол на Gemini 2.5 Flash — около 0,5 ₽.

### Модель путает, кто что сказал?

Если в расшифровке есть имена — почти никогда. Если нет — передайте список участников с ролями. В тесте Gemini 2.5 Flash по такой расшифровке определила всех ответственных верно.

### Попадут ли в задачи идеи, которые отклонили?

В тесте из 16 ловушек — «давайте не будем», «подумаем», «если будет время» — в задачи у лучших моделей не попала ни одна. Они уходят в открытые вопросы.

### Можно ли отправлять задачи в трекер автоматически?

Да, протокол приходит в JSON: ответственный, задача, дата. Сопоставьте имена с пользователями трекера и создавайте задачи через его API.

### Подойдёт ли для встреч на английском?

Да, модели работают с английским. Для расшифровки выберите модель с поддержкой нужного языка и передайте его в параметре language.

### Можно ли платить юрлицом?

Да. Polza.ai работает по договору: счёт, УПД и НДС. Расход виден в кабинете по ключам и моделям.

## Ссылки

- Сценарий «SEO-тексты»: https://polza.ai/use-cases/seo-content.md
- Сценарий «Ответы на отзывы»: https://polza.ai/use-cases/otvety-na-otzyvy.md
- Сценарий «Объявления для Авито»: https://polza.ai/use-cases/obyavleniya-avito.md
- Сценарий «Тесты по урокам»: https://polza.ai/use-cases/testy-po-urokam.md
- Сценарий «Письма клиентам»: https://polza.ai/use-cases/pisma-klientam.md
- Документация: https://polza.ai/docs
- Каталог моделей: https://polza.ai/models/llms.txt
- Страница: https://polza.ai/use-cases/protokoly-vstrech
- Обновлено: 2026-10-14; замер теста — 6 октября 2026
