Получение информации о диалоге в REST API
Перед началом работы
Чтобы получить данные о диалоге через REST API Yandex Cloud:
Чтобы искать данные через REST API Yandex Cloud:
-
В консоли управления создайте сервисный аккаунт.
- Добавьте сервисный аккаунт в пространство с ролью
Data viewer
. Это позволит сервисному аккаунту работать с данными в SpeechSense. -
Чтобы аутентифицироваться в API Yandex Cloud, создайте API-ключ или IAM-токен для сервисного аккаунта.
- Загрузите аудиозаписи или чаты в SpeechSense.
- Получите идентификатор нужного диалога при помощи полнотекстового поиска или фильтрации по параметрам.
Получение информации о диалоге
-
Создайте в папке файл
get.json
с параметрами для получения нужного диалога:{ "organizationId": "<идентификатор_организации>", "spaceId": "<идентификатор_пространства>", "connectionId": "<идентификатор_подключения>", "projectId": "<идентификатор_проекта>", "talk_ids": [ "<идентификатор_диалога>" ], "results_mask": { "paths": [ "<ключи_запрашиваемых_полей>" ] } }
Где:
organizationId
— идентификатор организации, в которой выполняется запрос. Чтобы получить идентификатор, перейдите в сервис Cloud Center и нажмите кнопку под названием организации, в разделе .spaceId
— идентификатор пространства, в котором выполняется запрос. Чтобы получить идентификатор, перейдите в сервис SpeechSense , откройте страницу нужного пространства и нажмите кнопку ID.connectionId
— идентификатор подключения, в котором выполняется запрос. Чтобы получить идентификатор, перейдите в сервис SpeechSense , откройте страницу нужного пространства, на вкладке Подключение откройте страницу нужного подключения и нажмите кнопку ID.projectId
— идентификатор проекта, в котором выполняется запрос. Чтобы получить идентификатор, перейдите в сервис SpeechSense , откройте страницу нужного пространства, на вкладке Проекты откройте страницу нужного проекта и нажмите кнопку ID.
-
talk_ids
— идентификаторы диалогов, информацию о которых вы хотите получить. Чтобы узнать идентификаторы диалогов, используйте search-запрос. -
results_mask
— маска результатов. Если этот параметр не передан, вернется вся информация о диалоге, а если параметр передан с пустым списомpaths
, вернется только базовая информация о диалоге: идентификаторы проекта, подключения и пространства, когда и кем создан и изменен, а также метаданные, добавленные при загрузке диалога. Чтобы выгрузить отдельные поля с данными, передайте в маске ключи нужных полей в спискеpaths
:transcription
— текстовая расшифровка аудиозаписи или текстовые сообщения из чата;speech_statistics
— статистика речи;silence_statistics
— статистика пауз в диалоге;interrupts_statistics
— статистика прерываний собеседника;conversation_statistics
— статистика диалога;points
— резюме диалога;text_classifiers
— статистика по классификаторам (тегам).
Подробнее о параметрах get-запроса см. в справочнике API.
-
Выполните get-запрос к API SpeechSense при помощи cURL:
curl -X POST https://rest-api.speechsense.yandexcloud.net/speechsense/v1/talks/get \ -H "Content-Type: application/json" \ -H "authorization: Api-Key ${API_KEY}" \ -d @get.json
Где
Api-Key
— API-ключ для аутентификации. Если вы используете IAM-токен, укажитеBearer ${IAM_TOKEN}
вместоApi-Key ${API_KEY}
.Результаты будут выведены в терминал в JSON-формате.
Пример тела запроса на получение информации о диалоге
Например, нужно получить резюме диалога с техподдержкой, в котором оператор предлагал оформить заявку на выезд мастера. Чтобы получить идентификатор такого диалога, используйте приведенный пример запроса для полнотекстового поиска.
JSON-файл с параметрами запроса будет выглядеть так:
{
"organizationId": "yc.organization****************",
"spaceId": "f3fuclf1kufs********",
"connectionId": "eag0u346n4hn********",
"projectId": "eag9t3rm3o43********",
"talk_ids": ["aud95sn63lra********"],
"results_mask": {
"paths": ["points"]
}
}
Результат выполнения запроса
{
"talk": [
{
"id": "aud95sn63lra********",
"organization_id": "yc.organization****************",
"space_id": "f3fuclf1kufs********",
"connection_id": "eag0u346n4hn********",
"project_ids": [
"eag9t3rm3o43********"
],
"created_by": "ajeugoqa16o5********",
"created_at": "2024-09-24T08:53:09.932Z",
"modified_by": "CLASSIFIER",
"modified_at": "2024-09-24T18:06:08.299Z",
"talk_fields": [
{
"name": "operator_name",
"value": "Оператор",
"type": "FIELD_TYPE_STRING"
},
{
"name": "operator_id",
"value": "operator_id",
"type": "FIELD_TYPE_STRING"
},
{
"name": "client_name",
"value": "Клиент",
"type": "FIELD_TYPE_STRING"
},
{
"name": "client_id",
"value": "customer_id",
"type": "FIELD_TYPE_STRING"
},
{
"name": "bot_name",
"value": "Бот",
"type": "FIELD_TYPE_STRING"
},
{
"name": "bot_id",
"value": "bot_id",
"type": "FIELD_TYPE_STRING"
},
{
"name": "date",
"value": "2024-09-24T11:11:11.111Z",
"type": "FIELD_TYPE_DATE"
},
{
"name": "direction_outgoing",
"value": "true",
"type": "FIELD_TYPE_BOOLEAN"
},
{
"name": "language",
"value": "Russian",
"type": "FIELD_TYPE_STRING"
}
],
"transcription": null,
"speech_statistics": null,
"silence_statistics": null,
"interrupts_statistics": null,
"conversation_statistics": null,
"points": {
"quiz": [
{
"request": "1. Оператор был вежливым?",
"response": "1. Да",
"id": "1"
},
{
"request": "2. Оператор был раздражен?",
"response": "2. Нет",
"id": "2"
},
{
"request": "3. Оператор был вовлечен в диалог?",
"response": "3. Нет",
"id": "3"
},
{
"request": "4. Оператор был эмпатичным?",
"response": "4. Да",
"id": "4"
},
{
"request": "5. Оператор хамил?",
"response": "5. Нет",
"id": "5"
},
{
"request": "6. Оператор решил проблему клиента?",
"response": "6. Нет",
"id": "6"
},
{
"request": "7. Оператор был уверенным?",
"response": "7. Да",
"id": "7"
},
{
"request": "8. Клиент ушел раздраженным?",
"response": "8. Нет",
"id": "8"
},
{
"request": "9. Клиент остался доволен?",
"response": "9. Да",
"id": "9"
},
{
"request": "10. Клиент хамил?",
"response": "10. Нет",
"id": "10"
}
]
},
"text_classifiers": null
}
]
}