Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex SpeechSense
  • Начало работы
    • Все инструкции
        • Поиск данных через gRPC API
          • Полнотекстовый поиск в REST API
          • Фильтрация по параметрам в REST API
          • Получение информации о диалоге в REST API
      • Работа с диалогами
      • Просмотр связанных диалогов
      • Работа с отчетами
  • Аудитные логи Audit Trails
  • Управление доступом
  • Правила тарификации
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Перед началом работы
  • Фильтрация по параметрам
  • Пример тела запроса для фильтрации по отдельным параметрам
  1. Пошаговые инструкции
  2. Работа с данными
  3. Поиск данных
  4. Поиск данных через REST API
  5. Фильтрация по параметрам в REST API

Фильтрация по параметрам в REST API

Статья создана
Yandex Cloud
Обновлена 21 апреля 2025 г.
  • Перед началом работы
  • Фильтрация по параметрам
  • Пример тела запроса для фильтрации по отдельным параметрам

Фильтрация по параметрам позволяет находить диалоги, соответствующие заданным условиям. Запрос возвращает идентификаторы подходящих диалогов. Подробнее о том, как получить информацию о диалоге по его идентификатору, см. в инструкции.

Вы можете использовать фильтрацию отдельно или как дополнение к полнотекстовому поиску. При использовании с полнотекстовым поиском в ответе вернутся только идентификаторы запросов, которые удовлетворяют и критериям полнотекстового поиска, и дополнительным фильтрам.

Перед началом работыПеред началом работы

Чтобы искать данные через REST API Yandex Cloud:

  1. В консоли управления создайте сервисный аккаунт.

  2. Добавьте сервисный аккаунт в пространство с ролью Data viewer. Это позволит сервисному аккаунту работать с данными в SpeechSense.
  3. Загрузите аудиозаписи или чаты в SpeechSense.

Фильтрация по параметрамФильтрация по параметрам

  1. Создайте файл search.json и укажите в нем нужные идентификаторы и фильтры filters:

    {
      "organizationId": "<идентификатор_организации>",
      "spaceId": "<идентификатор_пространства>",
      "connectionId": "<идентификатор_подключения>",
      "projectId": "<идентификатор_проекта>",
      "filters": [
        {
          "key": "<характеристика_диалога,_по_которой_производится_фильтрация>",
          "channelNumber": "<номер_канала>",
    
          // Укажите один или несколько фильтров
          "anyMatch": {
            "values": [
              "<поисковый_запрос>"
            ]
          },
          "intRange": {
            "fromValue": "<нижняя_граница>",
            "toValue": "<верхняя_граница>",
            "boundsInclusive": {
              "fromInclusive": "<включать_нижнюю_границу:_true_или_false>",
              "toInclusive": "<включать_верхнюю_границу:_true_или_false>"
            }
          },
          "doubleRange": {
            "fromValue": "<нижняя_граница>",
            "toValue": "<верхняя_граница>",
            "boundsInclusive": {
              "fromInclusive": "<включать_нижнюю_границу:_true_или_false>",
              "toInclusive": "<включать_верхнюю_границу:_true_или_false>"
            }
          },
          "dateRange": {
            "fromValue": "<нижняя_граница>",
            "toValue": "<верхняя_граница>",
            "boundsInclusive": {
              "fromInclusive": "<включать_нижнюю_границу:_true_или_false>",
              "toInclusive": "<включать_верхнюю_границу:_true_или_false>"
            }
          },
          "durationRange": {
            "fromValue": "<нижняя_граница>",
            "toValue": "<верхняя_граница>",
            "boundsInclusive": {
              "fromInclusive": "<включать_нижнюю_границу:_true_или_false>",
              "toInclusive": "<включать_верхнюю_границу:_true_или_false>"
            }
          },
          "booleanMatch": {
            "value": "<фильтр_по_значению_true_или_false>"
          }
        }
      ],
      "sortData": {
        "fields": [{  
          "field": "<характеристика_диалога,_по_которой_производится_сортировка>",
          "order": "<порядок_сортировки:_по_возрастанию_или_убыванию>",
          "position": "<приоритет_поля_сортировки>"
        }]
      },
      "pageSize": "<количество_документов_на_странице>",
      "pageToken": "<токен_следующей_страницы_с_результатами_фильтрации>"
    }
    

    Где:

    • organizationId — идентификатор организации, в которой выполняется запрос. Чтобы получить идентификатор, перейдите в сервис Cloud Center и нажмите кнопку под названием организации, в разделе .
    • spaceId — идентификатор пространства, в котором выполняется запрос. Чтобы получить идентификатор, перейдите в сервис SpeechSense, откройте страницу нужного пространства и нажмите кнопку ID.
    • connectionId — идентификатор подключения, в котором выполняется запрос. Чтобы получить идентификатор, перейдите в сервис SpeechSense, откройте страницу нужного пространства, на вкладке Подключение откройте страницу нужного подключения и нажмите кнопку ID.
    • projectId — идентификатор проекта, в котором выполняется запрос. Чтобы получить идентификатор, перейдите в сервис SpeechSense, откройте страницу нужного пространства, на вкладке Проекты откройте страницу нужного проекта и нажмите кнопку ID.
    • filters — тело запроса на фильтрацию по отдельным параметрам. Поддерживает следующие параметры:

      • key — характеристика диалога, по которой производится фильтрация. Возможные значения:

        • userMeta.<имя_поля> — фильтрация по метаданным. Здесь <имя_поля> — это поле метаданных, которое было указано при загрузке диалога. Пример: userMeta.date.

        • talk.classifiers.<имя_классификатора>.count — фильтрация по классификаторам. Учитывает, сколько раз в диалоге сработал определенный классификатор.

        • talk.summarization.points.<идентификатор_вопроса> — фильтрация по резюме диалога. Идентификаторы вопросов из резюме диалога вы можете получить вместе с данными о диалоге.

        • talk.statistics.<название_статистики> — фильтрация по статистикам:

          • Для аудио:

            • talk.statistics.duration_seconds — длительность диалога, в секундах.
            • talk.statistics.simultaneous_silence.duration_seconds — длительность одновременной тишины, в секундах.
            • talk.statistics.simultaneous_silence.ratio — доля одновременной тишины.
            • talk.statistics.simultaneous_silence.max_duration_seconds — максимальная длительность одновременной тишины, в секундах.
            • talk.statistics.silence.duration_seconds — длительность тишины клиента или оператора, в секундах.
            • talk.statistics.silence.ratio — доля тишины клиента или оператора.
            • talk.statistics.simultaneous_speech.duration_seconds — длительность одновременной речи, в секундах.
            • talk.statistics.simultaneous_speech.ratio — доля одновременной речи.
            • talk.statistics.simultaneous_speech.max_duration_seconds — максимальная длительность одновременной речи, в секундах.
            • talk.statistics.speech.duration_seconds — длительность речи клиента или оператора, в секундах.
            • talk.statistics.speech.ratio — доля речи клиента или оператора.
            • talk.statistics.interrupts.count — количество прерываний собеседника.
            • talk.statistics.phrases.count — количество фраз в диалоге.
            • talk.statistics.words.count — количество слов в диалоге.
            • talk.statistics.letters.count — количество символов в диалоге.
            • talk.statistics.words.count_per_second — количество слов в секунду.
            • talk.statistics.letters.count_per_second — количество символов в секунду.
            • talk.statistics.interrupts.duration_seconds — длительность прерываний одним из участников речи другого участника, в секундах.
          • Для чатов:

            • talk.statistics.duration_seconds — длительность диалога, в секундах.
            • talk.statistics.reactions.count — количество реакций оператора на сообщения клиента.
            • talk.statistics.reactions.first_duration_seconds — длительность первой реакции оператора на сообщение клиента, в секундах.
            • talk.statistics.reactions.min_duration_seconds — минимальная длительность реакции, в секундах.
            • talk.statistics.reactions.max_duration_seconds — максимальная длительность реакции, в секундах.
            • talk.statistics.phrases.count — количество фраз в диалоге.
            • talk.statistics.words.count — количество слов в диалоге.
            • talk.statistics.letters.count — количество символов в диалоге.
      • channelNumber — номер канала. Если номер указан, фильтр применяется к метаданным, срабатываниям классификатора или статистикам, относящимся к этому каналу.

        Нумерация каналов в подключениях для чатов:

        • 0 — канал оператора;
        • 1 — канал клиента;
        • 2 — канал бота.

        Нумерация каналов для аудио предустанавливается на уровне подключения и отличается от нумерации каналов для чатов.

      Доступны следующие фильтры:

      • anyMatch — определяет, встречается ли значение из фильтра в метаданных, классификаторах, статистиках, резюме диалога. Например, фильтр с параметрами key = userMeta.ticket_id и values = [123, 345] вернет диалоги, у которых в поле метаданных ticket_id передано значение 123 или 345.
      • intRange — проверяет, что заданное целочисленное значение попадает в диапазон, указанный в фильтре. Подходит для фильтрации по классификаторам, полям метаданных целочисленного типа и статистикам со значениями целочисленного типа.
      • doubleRange — проверяет, что заданное число с плавающей точкой попадает в диапазон, указанный в фильтре. Подходит для фильтрации по классификаторам, полям метаданных и статистикам со значениями с плавающей точкой.
      • dateRange — проверяет, что заданное значение даты попадает в диапазон, указанный в фильтре.
      • durationRange — проверяет, что заданная длительность попадает в диапазон, указанный в фильтре. Подходит для фильтрации по длительности диалога, прерываний, одновременной речи или тишины.
      • booleanMatch — проверяет, что заданное значение типа boolean соответствует значению в фильтре (True или False). Подходит для фильтрации по резюме диалога и полям метаданных типа boolean.

      Для каждого фильтра вы можете задать параметр boundsInclusive. Он определяет, включать ли в фильтр границы диапазона:

      • fromInclusive — нижняя граница;
      • toInclusive — верхняя граница.
    • sortData — параметры сортировки данных в ответе на запрос.

      • fields — список характеристик диалога, по которым производится сортировка. Поддерживает следующие параметры:
        • field — характеристика диалога, по которой производится сортировка.
        • order — порядок сортировки: по возрастанию или убыванию.
        • position — приоритет поля сортировки (при сортировке по нескольким характеристикам диалога одновременно).
    • pageSize — количество документов на странице.

    • pageToken — токен следующей страницы с результатами запроса.
      Если результаты запроса разделены на несколько страниц, каждая страница имеет свой токен. В ответе на каждый запрос содержится токен следующей страницы nextPageToken (если она существует). Вставьте его в параметр pageToken запроса, чтобы получить следующую страницу с результатами.

    Подробнее о параметрах search-запроса см. в справочнике API.

  2. Задайте API-ключ сервисного аккаунта:

    export API_KEY=<API-ключ_сервисного_аккаунта>
    

    Если вы используете IAM-токен, передайте его вместо API-ключа:

    export IAM_TOKEN=<IAM-токен_сервисного_аккаунта>
    
  3. Отправьте search-запрос к API SpeechSense при помощи cURL:

    curl -X POST https://rest-api.speechsense.yandexcloud.net/speechsense/v1/talks/search \
       -H "Content-Type: application/json" \
       -H "authorization: Api-Key ${API_KEY}" \
       -d @search.json
    

    Где Api-Key — API-ключ для аутентификации. Если вы используете IAM-токен, укажите Bearer ${IAM_TOKEN} вместо Api-Key ${API_KEY}.

    Идентификаторы диалогов, которые удовлетворяют условиям фильтрации, будут выведены в терминал в JSON-формате.

Пример тела запроса для фильтрации по отдельным параметрамПример тела запроса для фильтрации по отдельным параметрам

Например, нужно найти все диалоги с техподдержкой провайдера в промежуток между 11:00 и 12:00 24 сентября 2024 года. JSON-файл с параметрами запроса будет выглядеть так:

{
  "organizationId": "yc.organization****************",
  "spaceId": "f3fuclf1kufs********",
  "connectionId": "eag0u346n4hn********",
  "projectId": "eag9t3rm3o43********",
  "filters": [
    {
      "key": "userMeta.date",
      "dateRange": {
        "fromValue": "2024-09-24T11:00:00Z",
        "toValue": "2024-09-24T12:00:00Z"
      }
    }
  ]
}

Результат выполнения запроса:

{
  "talkIds": [
    "aud95sn63lra********"
  ],
  "talksCount": "1",
  "nextPageToken": ""
}

Где:

  • talkIds — идентификаторы диалогов, которые удовлетворяют условиям фильтрации.
  • talksCount — количество диалогов, которые удовлетворяют условиям фильтрации.
  • nextPageToken — токен следующей страницы с результатами. Если результаты разделены на несколько страниц, этот токен используется в следующем запросе, чтобы запросить следующую страницу. Если это поле вернулось пустым, результаты заканчиваются на текущей странице.

Была ли статья полезна?

Предыдущая
Полнотекстовый поиск в REST API
Следующая
Получение информации о диалоге в REST API
Проект Яндекса
© 2025 ООО «Яндекс.Облако»