#Транскрибация телефонных звонков

Клиника отправляет запись телефонного разговора и получает стенограмму. Звонок принимает регистратура или колл-центр. Пациент или родственник записывается на приём, переносит визит, уточняет подготовку или спрашивает про очередь. Вы кладёте текст в карточку звонка в вашей МИС.

В разговоре два человека. Реплики в стенограмме идут по очереди.

Запрос не создаёт приём и не заполняет протокол. Разговор врача с пациентом в кабинете этот метод не принимает.

Пока транскрибация звонков для клиники выключена, запросы из этой статьи отвечают 403 phone_call_transcription_disabled. Чтобы включить транскрибацию, напишите нам.

#Отправить запись

POST /api/v1/integrations/{platform}/transcriptions/phone-calls
Authorization: Bearer <API-ключ клиники>
Content-Type: multipart/form-data

file=<аудио>
phone_call_id=<необязательно>

file обязателен. Форматы mp3 и wav. Размер не больше 150 МБ. Длительность не больше 30 минут. smartica.ai удаляет файл через 24 часа.

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

Ответ 202:

{
  "id": "uuid",
  "phone_call_id": "call-42",
  "status": "processing"
}

Пока статус processing, completed или no_speech, повтор того же phone_call_id отвечает 200. В ответе те же три поля и текущий статус. Новый файл smartica.ai не принимает.

Если статус failed, повтор с тем же phone_call_id отвечает 202. smartica.ai принимает новый файл.

Файл может получить одну из трёх ошибок.

  • Файл длиннее 30 минут. Ответ 422 audio_too_long.
  • Файл не читается как аудио. Ответ 422 audio_unreadable.
  • Поля запроса неверны. Ответ 422 validation_failed.

#Забрать стенограмму

GET /api/v1/integrations/{platform}/transcriptions/phone-calls/{id}

Пока smartica.ai хранит текст, в ответе есть transcript и delivery.

status Что это
processing Запись ещё распознаётся. Текста в ответе нет
completed Стенограмма готова
no_speech Речи в записи нет. transcript равен пустой строке
failed Распознать не удалось. Пришлите файл ещё раз с тем же phone_call_id
delivery Что это
pending Отправка в вашу МИС ещё не подтверждена
failed Отправка не удалась. Текст всё ещё в ответе GET
not_configured Адрес для отправки не задан. Заберите текст через GET

id другой клиники и неизвестный id возвращают 404 phone_call_transcription_not_found.

#Подтвердить получение

POST /api/v1/integrations/{platform}/transcriptions/phone-calls/{id}/ack

Первый ответ 200 записывает, что клиника получила текст. Повторный ack тоже отвечает 200 и ничего не меняет. GET после ack по-прежнему отдаёт стенограмму.

Повторная загрузка того же phone_call_id не запускает новое распознавание, пока smartica.ai хранит этот звонок. Нужен новый phone_call_id.

smartica.ai хранит звонок 30 дней. Затем id и phone_call_id пропадают. Тот же phone_call_id можно отправить снова. До удаления строки GET отдаёт стенограмму.

#Отправка в вашу МИС

Адрес для стенограммы необязателен. Если адрес задан, smartica.ai отправляет POST на этот путь, когда стенограмма готова. Тело:

{
  "id": "uuid",
  "phone_call_id": "call-42",
  "status": "completed",
  "transcript": "Оператор: …\nКлиент: …"
}

Если в начале разговора слышны оба голоса, подписи в transcript будут Оператор и Клиент. Иначе остаются speaker_0 и speaker_1.

Имена, телефоны, адреса и номера документов в transcript заменены метками. Паспорт, полис, СНИЛС и ИНН в тексте не остаются.

Тело запроса это обычный JSON по HTTPS. Отдельного шифрования стенограммы нет.

Если для запросов smartica.ai к вашей МИС выбрана HMAC-подпись, этот POST подписывается так же. Заголовки Smartica-Timestamp и Smartica-Signature. Строка подписи timestamp.METHOD.path.body. Проверка подписи описана в статье Авторизация и ошибки. При Bearer или HTTP Basic этих заголовков нет.

Ответ 2xx значит, что МИС приняла текст. GET после этого по-прежнему отдаёт стенограмму.

Если отправка вернула ошибку, текст остаётся. GET отдаёт стенограмму, а delivery равен failed. Заберите стенограмму и отправьте ack.

Один и тот же id может прийти снова, если соединение оборвалось после вашего 2xx. Сверяйте id.

← Все статьи: Интеграция с МИС Поиск по базе знаний