Поделиться через


Использование суммирования бесед

Внимание

Наш предварительный просмотр региона, Швеция Central, демонстрирует наши последние и постоянно развивающиеся методы тонкой настройки LLM на основе моделей GPT. Вы можете попробовать их с языковым ресурсом в Центральном регионе Швеции.

Сводка по беседам доступна только с помощью:

  • REST API
  • Python
  • C#

Аспекты суммирования бесед

  • Название главы и повествование (общая беседа) предназначены для суммирования беседы в заголовки глав и сводки содержимого беседы. Этот аспект суммирования работает на беседах с любым количеством сторон.

  • Проблема и разрешение (центр обработки вызовов) предназначена для сводки журналов текстового чата между клиентами и агентами службы клиентов. Эта функция может предоставлять как проблемы, так и решения, присутствующих в этих журналах, которые происходят между двумя сторонами.

  • Повествование предназначено для сводки повествования беседы.

  • Recap предназначен для объединения длинных собраний или бесед в краткий сводка по одному абзацу, чтобы предоставить краткий обзор.

  • Последующие задачи предназначены для суммирование элементов действий и задач, возникающих во время собрания.

Схема отправки данных в функцию сводки бесед и функции разрешения.

Модели ИИ для этого API предоставляются службой, вам нужно лишь отправить содержимое для анализа.

Для упрощения навигации здесь приведены ссылки на соответствующие разделы для каждой службы:

Аспект Section
Проблема и решение Проблема и решение
Название главы Название главы
Описание Повествовательный
Обзор и дальнейшие действия Следуйте инструкциям и дальнейшим действиям

Функции

API суммирования бесед использует методы обработки естественного языка для суммирования бесед на более короткие сводки по запросу. Сводка бесед может обобщать вопросы и решения, обсуждаемые в двухсторонней беседе, или суммировать длинный разговор в главах и краткое повествование для каждой главы.

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

  • Формат ввода: сводка бесед может работать как с текстом чата, так и с расшифровками речи, которые имеют динамики и их речевые фрагменты. Сводка текста работает с использованием простых форматов текста или Word, PDF или PowerPoint.
  • Назначение суммирования: например, проблема беседы и сводка решения возвращает причину и разрешение чата между клиентом и агентом обслуживания клиентов.

Отправка данных

Документы отправляются в API в виде строк текста. Анализ выполняется при получении запроса. Так как API является асинхронным, может возникнуть задержка между отправкой запроса API и получением результатов. Сведения о размере и числе запросов, которые можно отправлять в минуту и секунду, см. в разделе об ограничениях данных ниже.

При использовании этой функции результаты API доступны в течение 24 часов с момента приема запроса и указываются в ответе. По истечении этого периода результаты очищаются и больше не будут доступны для извлечения.

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

Получение сводок из текстовых чатов

Чтобы получить сводки по мере необходимости, можно использовать сводные данные о проблемах и разрешении бесед. Пример использования текстовых чатов см. в кратком руководстве.

Получение сводок из транскрибирования речи

Сводные данные о проблемах и разрешении бесед также позволяют получать сводки из расшифровок речи с помощью функции речи службы "Речь" в текст. В следующем примере показан короткий диалог, который можно включить в запросы API.

"conversations":[
   {
      "id":"abcdefgh-1234-1234-1234-1234abcdefgh",
      "language":"en",
      "modality":"transcript",
      "conversationItems":[
         {
            "modality":"transcript",
            "participantId":"speaker",
            "id":"12345678-abcd-efgh-1234-abcd123456",
            "content":{
               "text":"Hi.",
               "lexical":"hi",
               "itn":"hi",
               "maskedItn":"hi",
               "audioTimings":[
                  {
                     "word":"hi",
                     "offset":4500000,
                     "duration":2800000
                  }
               ]
            }
         }
      ]
   }
]

Получение заголовков глав

Сводка заголовка главы бесед позволяет получать заголовки глав из входных бесед. Приведенный ниже пример сценария:

  1. Скопируйте приведенную ниже команду в текстовый редактор. В примере BASH используется \ символ продолжения строки. Если консоль или терминал использует другой символ продолжения строки, используйте этот символ.
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-conversations/jobs?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
' 
{
  "displayName": "Conversation Task Example",
  "analysisInput": {
    "conversations": [
      {
        "conversationItems": [
          {
            "text": "Hello, you’re chatting with Rene. How may I help you?",
            "id": "1",
            "role": "Agent",
            "participantId": "Agent_1"
          },
          {
            "text": "Hi, I tried to set up wifi connection for Smart Brew 300 espresso machine, but it didn’t work.",
            "id": "2",
            "role": "Customer",
            "participantId": "Customer_1"
          },
          {
            "text": "I’m sorry to hear that. Let’s see what we can do to fix this issue. Could you please try the following steps for me? First, could you push the wifi connection button, hold for 3 seconds, then let me know if the power light is slowly blinking on and off every second?",
            "id": "3",
            "role": "Agent",
            "participantId": "Agent_1"
          },
          {
            "text": "Yes, I pushed the wifi connection button, and now the power light is slowly blinking.",
            "id": "4",
            "role": "Customer",
            "participantId": "Customer_1"
          },
          {
            "text": "Great. Thank you! Now, please check in your Contoso Coffee app. Does it prompt to ask you to connect with the machine? ",
            "id": "5",
            "role": "Agent",
            "participantId": "Agent_1"
          },
          {
            "text": "No. Nothing happened.",
            "id": "6",
            "role": "Customer",
            "participantId": "Customer_1"
          },
          {
            "text": "I’m very sorry to hear that. Let me see if there’s another way to fix the issue. Please hold on for a minute.",
            "id": "7",
            "role": "Agent",
            "participantId": "Agent_1"
          }
        ],
        "modality": "text",
        "id": "conversation1",
        "language": "en"
      }
    ]
  },
  "tasks": [
    {
      "taskName": "Conversation Task 1",
      "kind": "ConversationalSummarizationTask",
      "parameters": {
        "summaryAspects": [
          "chapterTitle"
        ]
      }
    }
  ]
}
'
  1. При необходимости внесите следующие изменения в команду.

    • Замените значение your-value-language-key собственным ключом.
    • Замените первую часть URL-адреса запроса your-language-resource-endpoint URL-адресом своей конечной точки.
  2. Откройте окно командной строки (например, BASH).

  3. Вставьте команду из текстового редактора в окно командной строки, а затем выполните команду.

  4. Получите operation-location из заголовка ответа. Значение выглядит примерно так, как показано по следующему URL-адресу:

https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
  1. Чтобы получить результаты запроса, используйте следующую команду cURL. Обязательно замените <my-job-id> значение GUID, полученное из предыдущего operation-location заголовка ответа:
curl -X GET https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/<my-job-id>?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>"

Пример ответа JSON заголовка главы:

{
    "jobId": "b01af3b7-1870-460a-9e36-09af28d360a1",
    "lastUpdatedDateTime": "2023-11-15T18:24:26Z",
    "createdDateTime": "2023-11-15T18:24:23Z",
    "expirationDateTime": "2023-11-16T18:24:23Z",
    "status": "succeeded",
    "errors": [],
    "displayName": "Conversation Task Example",
    "tasks": {
        "completed": 1,
        "failed": 0,
        "inProgress": 0,
        "total": 1,
        "items": [
            {
                "kind": "conversationalSummarizationResults",
                "taskName": "Conversation Task 1",
                "lastUpdateDateTime": "2023-11-15T18:24:26.3433677Z",
                "status": "succeeded",
                "results": {
                    "conversations": [
                        {
                            "summaries": [
                                {
                                    "aspect": "chapterTitle",
                                    "text": "\"Discussing the Problem of Smart Blend 300 Espresso Machine's Wi-Fi Connectivity\"",
                                    "contexts": [
                                        {
                                            "conversationItemId": "1",
                                            "offset": 0,
                                            "length": 53
                                        },
                                        {
                                            "conversationItemId": "2",
                                            "offset": 0,
                                            "length": 94
                                        },
                                        {
                                            "conversationItemId": "3",
                                            "offset": 0,
                                            "length": 266
                                        },
                                        {
                                            "conversationItemId": "4",
                                            "offset": 0,
                                            "length": 85
                                        },
                                        {
                                            "conversationItemId": "5",
                                            "offset": 0,
                                            "length": 119
                                        },
                                        {
                                            "conversationItemId": "6",
                                            "offset": 0,
                                            "length": 21
                                        },
                                        {
                                            "conversationItemId": "7",
                                            "offset": 0,
                                            "length": 109
                                        }
                                    ]
                                }
                            ],
                            "id": "conversation1",
                            "warnings": []
                        }
                    ],
                    "errors": [],
                    "modelVersion": "latest"
                }
            }
        ]
    }
}

В течение длительного диалога модель может сегментировать ее на несколько сплочённых частей и суммировать каждый сегмент. Существует также длинное поле для каждой сводки, которое сообщает, из какого диапазона входной contexts беседы мы создали сводку.

Получение описательной суммы

Сводка беседы также позволяет получать описательные сводки из входных бесед. Приведенный ниже пример сценария:

  1. Скопируйте приведенную ниже команду в текстовый редактор. В примере BASH используется \ символ продолжения строки. Если консоль или терминал использует другой символ продолжения строки, используйте этот символ.
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-conversations/jobs?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
' 
{
  "displayName": "Conversation Task Example",
  "analysisInput": {
    "conversations": [
      {
        "conversationItems": [
          {
            "text": "Hello, you’re chatting with Rene. How may I help you?",
            "id": "1",
            "role": "Agent",
            "participantId": "Agent_1"
          },
          {
            "text": "Hi, I tried to set up wifi connection for Smart Brew 300 espresso machine, but it didn’t work.",
            "id": "2",
            "role": "Customer",
            "participantId": "Customer_1"
          },
          {
            "text": "I’m sorry to hear that. Let’s see what we can do to fix this issue. Could you please try the following steps for me? First, could you push the wifi connection button, hold for 3 seconds, then let me know if the power light is slowly blinking on and off every second?",
            "id": "3",
            "role": "Agent",
            "participantId": "Agent_1"
          },
          {
            "text": "Yes, I pushed the wifi connection button, and now the power light is slowly blinking.",
            "id": "4",
            "role": "Customer",
            "participantId": "Customer_1"
          },
          {
            "text": "Great. Thank you! Now, please check in your Contoso Coffee app. Does it prompt to ask you to connect with the machine? ",
            "id": "5",
            "role": "Agent",
            "participantId": "Agent_1"
          },
          {
            "text": "No. Nothing happened.",
            "id": "6",
            "role": "Customer",
            "participantId": "Customer_1"
          },
          {
            "text": "I’m very sorry to hear that. Let me see if there’s another way to fix the issue. Please hold on for a minute.",
            "id": "7",
            "role": "Agent",
            "participantId": "Agent_1"
          }
        ],
        "modality": "text",
        "id": "conversation1",
        "language": "en"
      }
    ]
  },
  "tasks": [
    {
      "taskName": "Conversation Task 1",
      "kind": "ConversationalSummarizationTask",
      "parameters": {
        "summaryAspects": [
          "narrative"
        ]
      }
    }
  ]
}
'
  1. При необходимости внесите следующие изменения в команду.

    • Замените значение your-language-resource-key собственным ключом.
    • Замените первую часть URL-адреса запроса your-language-resource-endpoint URL-адресом своей конечной точки.
  2. Откройте окно командной строки (например, BASH).

  3. Вставьте команду из текстового редактора в окно командной строки, а затем выполните команду.

  4. Получите operation-location из заголовка ответа. Значение выглядит примерно так, как показано по следующему URL-адресу:

https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
  1. Чтобы получить результаты запроса, используйте следующую команду cURL. Обязательно замените <my-job-id> значение GUID, полученное из предыдущего operation-location заголовка ответа:
curl -X GET https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/<my-job-id>?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>"

Пример ответа JSON сводных сведений в описательных описаниях:

{
  "jobId": "d874a98c-bf31-4ac5-8b94-5c236f786754",
  "lastUpdatedDateTime": "2022-09-29T17:36:42Z",
  "createdDateTime": "2022-09-29T17:36:39Z",
  "expirationDateTime": "2022-09-30T17:36:39Z",
  "status": "succeeded",
  "errors": [],
  "displayName": "Conversation Task Example",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "conversationalSummarizationResults",
        "taskName": "Conversation Task 1",
        "lastUpdateDateTime": "2022-09-29T17:36:42.895694Z",
        "status": "succeeded",
        "results": {
          "conversations": [
            {
              "summaries": [
                {
                  "aspect": "narrative",
                  "text": "Agent_1 helps customer to set up wifi connection for Smart Brew 300 espresso machine.",
                  "contexts": [
                    { "conversationItemId": "1", "offset": 0, "length": 53 },
                    { "conversationItemId": "2", "offset": 0, "length": 94 },
                    { "conversationItemId": "3", "offset": 0, "length": 266 },
                    { "conversationItemId": "4", "offset": 0, "length": 85 },
                    { "conversationItemId": "5", "offset": 0, "length": 119 },
                    { "conversationItemId": "6", "offset": 0, "length": 21 },
                    { "conversationItemId": "7", "offset": 0, "length": 109 }
                  ]
                }
              ],
              "id": "conversation1",
              "warnings": []
            }
          ],
          "errors": [],
          "modelVersion": "latest"
        }
      }
    ]
  }
}

В течение длительного диалога модель может сегментировать ее на несколько сплочённых частей и суммировать каждый сегмент. Существует также длинное поле для каждой сводки, которое сообщает, из какого диапазона входной contexts беседы мы создали сводку.

Получение сводки по задачам и последующему выполнению

Сводка бесед также позволяет получать повторные и последующие задачи из входных бесед. Приведенный ниже пример сценария:

  1. Скопируйте приведенную ниже команду в текстовый редактор. В примере BASH используется \ символ продолжения строки. Если консоль или терминал использует другой символ продолжения строки, используйте этот символ.
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-conversations/jobs?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
' 
{
  "displayName": "Conversation Task Example",
  "analysisInput": {
    "conversations": [
      {
        "conversationItems": [
          {
            "text": "Hello, you’re chatting with Rene. How may I help you?",
            "id": "1",
            "role": "Agent",
            "participantId": "Agent_1"
          },
          {
            "text": "Hi, I tried to set up wifi connection for Smart Brew 300 espresso machine, but it didn’t work.",
            "id": "2",
            "role": "Customer",
            "participantId": "Customer_1"
          },
          {
            "text": "I’m sorry to hear that. Let’s see what we can do to fix this issue. Could you please try the following steps for me? First, could you push the wifi connection button, hold for 3 seconds, then let me know if the power light is slowly blinking on and off every second?",
            "id": "3",
            "role": "Agent",
            "participantId": "Agent_1"
          },
          {
            "text": "Yes, I pushed the wifi connection button, and now the power light is slowly blinking.",
            "id": "4",
            "role": "Customer",
            "participantId": "Customer_1"
          },
          {
            "text": "Great. Thank you! Now, please check in your Contoso Coffee app. Does it prompt to ask you to connect with the machine? ",
            "id": "5",
            "role": "Agent",
            "participantId": "Agent_1"
          },
          {
            "text": "No. Nothing happened.",
            "id": "6",
            "role": "Customer",
            "participantId": "Customer_1"
          },
          {
            "text": "I’m very sorry to hear that. Let me see if there’s another way to fix the issue. Please hold on for a minute.",
            "id": "7",
            "role": "Agent",
            "participantId": "Agent_1"
          }
        ],
        "modality": "text",
        "id": "conversation1",
        "language": "en"
      }
    ]
  },
  "tasks": [
    {
      "taskName": "Conversation Task 1",
      "kind": "ConversationalSummarizationTask",
      "parameters": {
        "summaryAspects": [
          "recap",
          "follow-up tasks"
        ]
      }
    }
  ]
}
'
  1. При необходимости внесите следующие изменения в команду.

    • Замените значение your-language-resource-key собственным ключом.
    • Замените первую часть URL-адреса запроса your-language-resource-endpoint URL-адресом своей конечной точки.
  2. Откройте окно командной строки (например, BASH).

  3. Вставьте команду из текстового редактора в окно командной строки, а затем выполните команду.

  4. Получите operation-location из заголовка ответа. Значение выглядит примерно так, как показано по следующему URL-адресу:

https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
  1. Чтобы получить результаты запроса, используйте следующую команду cURL. Обязательно замените <my-job-id> значение GUID, полученное из предыдущего operation-location заголовка ответа:
curl -X GET https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/<my-job-id>?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>"

Пример повторного и последующего ответа JSON сводных данных:

{
    "jobId": "e585d097-c19a-466e-8f99-a9646e55b1f5",
    "lastUpdatedDateTime": "2023-11-15T18:19:56Z",
    "createdDateTime": "2023-11-15T18:19:53Z",
    "expirationDateTime": "2023-11-16T18:19:53Z",
    "status": "succeeded",
    "errors": [],
    "displayName": "Conversation Task Example",
    "tasks": {
        "completed": 1,
        "failed": 0,
        "inProgress": 0,
        "total": 1,
        "items": [
            {
                "kind": "conversationalSummarizationResults",
                "taskName": "Conversation Task 1",
                "lastUpdateDateTime": "2023-11-15T18:19:56.1801785Z",
                "status": "succeeded",
                "results": {
                    "conversations": [
                        {
                            "summaries": [
                                {
                                    "aspect": "recap",
                                    "text": "The customer contacted the service agent, Rene, regarding an issue with setting up a wifi connection for their Smart Brew 300 espresso machine. The agent guided the customer through several steps, including pushing the wifi connection button and checking if the power light was blinking. However, the customer reported that no prompts were received in the Contoso Coffee app to connect with the machine. The agent then decided to look for another solution.",
                                    "contexts": [
                                        {
                                            "conversationItemId": "1",
                                            "offset": 0,
                                            "length": 53
                                        },
                                        {
                                            "conversationItemId": "2",
                                            "offset": 0,
                                            "length": 94
                                        },
                                        {
                                            "conversationItemId": "3",
                                            "offset": 0,
                                            "length": 266
                                        },
                                        {
                                            "conversationItemId": "4",
                                            "offset": 0,
                                            "length": 85
                                        },
                                        {
                                            "conversationItemId": "5",
                                            "offset": 0,
                                            "length": 119
                                        },
                                        {
                                            "conversationItemId": "6",
                                            "offset": 0,
                                            "length": 21
                                        },
                                        {
                                            "conversationItemId": "7",
                                            "offset": 0,
                                            "length": 109
                                        }
                                    ]
                                },
                                {
                                    "aspect": "Follow-Up Tasks",
                                    "text": "@Agent_1 will ask the customer to push the wifi connection button, hold for 3 seconds, then check if the power light is slowly blinking on and off every second."
                                },
                                {
                                    "aspect": "Follow-Up Tasks",
                                    "text": "@Agent_1 will ask the customer to check in the Contoso Coffee app if it prompts to connect with the machine."
                                },
                                {
                                    "aspect": "Follow-Up Tasks",
                                    "text": "@Agent_1 will investigate another way to fix the issue."
                                }
                            ],
                            "id": "conversation1",
                            "warnings": []
                        }
                    ],
                    "errors": [],
                    "modelVersion": "latest"
                }
            }
        ]
    }
}

В течение длительного диалога модель может сегментировать ее на несколько сплочённых частей и суммировать каждый сегмент. Существует также длинное поле для каждой сводки, которое сообщает, из какого диапазона входной contexts беседы мы создали сводку.

Получение результатов сводных сведений о проблеме и разрешении бесед

Следующий текст является примером содержимого, который можно отправить для проблемы беседы и суммирования разрешения. Это только пример, API может принимать более длинный входной текст. Дополнительные сведения см. в перечне ограничений по данным.

Специалист: "Здравствуйте! Чем я могу помочь?"

Клиент: "Как обновить подписку на Contoso? Я пробовал, но у меня не получается".

Агент: "Нажмите кнопку обновления, а затем выполните вход и следуйте инструкциям".

API формирования сводных данных выполняется после получения запроса путем создания задания для серверной части API. Если задание выполнено удачно, будут возвращены выходные данные API. Выходные данные доступны для получения в течение 24 часов. По прошествии этого времени выходные данные очищаются. Из-за поддержки многоязычных и эмодзи ответ может содержать смещения текста. Дополнительные сведения см. в статье Смещение текста в выводе API Анализа текста.

В приведенном выше примера API может вернуть следующие обобщенные предложения:

Текст сводки Аспект
"Клиент хочет обновить свою подписку. Клиент не знает, как это сделать". проблема
"Клиент должен нажать кнопку обновления и войти". разрешение

См. также