Cómo usar el resumen de conversaciones

Importante

Nuestra región de versión preliminar, Centro de Suecia, muestra nuestras técnicas de ajuste de LLM más recientes y en constante evolución basadas en modelos de GPT. Te invitamos a probarlas con un recurso lingüístico de la región Centro de Suecia.

El resumen de conversación solo está disponible mediante:

  • REST API
  • Python
  • C#

Aspectos de resumen de conversaciones

  • El título del capítulo y la narrativa (la conversación general) están diseñados para resumir una conversación en títulos de capítulo y proporcionar un resumen del contenido de la conversación. Este aspecto de resumen funciona en conversaciones con cualquier número de personas.

  • El problema y la solución (elementos centrados en el centro de llamadas) están diseñados para resumir los registros de chat de texto entre los clientes y los agentes de servicio al cliente. Esta característica es capaz de proporcionar problemas y soluciones presentes en estos registros, que ocurren entre dos partes.

  • La narración está diseñada para resumir la narración de una conversación.

  • Recap está diseñado para condensar reuniones o conversaciones largas en un resumen conciso de un párrafo y proporcionar una visión general rápida.

  • Las tareas de seguimiento están diseñadas para resumir los elementos de acción y las tareas que surgen durante una reunión.

A diagram for sending data to the conversation summarization issues and resolution feature.

El servicio proporciona los modelos de AI que usa la API, el usuario solo tiene que enviar contenido para su análisis.

Para facilitar la navegación, estos son vínculos a las secciones correspondientes para cada servicio:

Aspecto Sección
Problema y resolución Problema y resolución
Título de capítulo Título de capítulo
Narración Narración
Resumen y seguimiento Resumen y seguimiento

Características

La API de resumen de conversaciones usa técnicas de procesamiento de lenguaje natural para condensar conversaciones en resúmenes más cortos por solicitud. El resumen de conversaciones puede resumir los problemas y las soluciones que se tratan en una conversación de dos partes o resumir una conversación larga en capítulos y una breve narrativa para cada capítulo.

Hay otra característica en Lenguaje de Azure AI para lenguaje llamada resumen de documentos que es más adecuada para resumir documentos en resúmenes concisos. Al decidir entre el resumen de documentos y el resumen de conversaciones, tenga en cuenta los puntos siguientes:

  • Formato de entrada: el resumen de conversaciones puede funcionar tanto en texto de chat como en transcripciones de voz, que tienen oradores y sus expresiones. El resumen de documentos funciona con formatos de texto simple, o los formatos Word, PDF o PowerPoint.
  • Propósito del resumen: por ejemplo, el resumen del problema y la solución de la conversación devuelve un motivo y la solución de una conversación entre un cliente y un agente de atención al cliente.

Envío de datos

Nota

Consulte el artículo sobre Language Studio si desea información sobre cómo dar formato al texto conversacional para enviarlo mediante Language Studio.

Los documentos se envían a la API como cadenas de texto. El análisis se realiza tras la recepción de la solicitud. Como la API es asincrónica, es posible que haya un retraso entre el envío de una solicitud de API y la recepción de los resultados. Para obtener información sobre el tamaño y el número de solicitudes que puede enviar por minuto y segundo, consulte los límites de datos a continuación.

Cuando use esta característica, los resultados de la API estarán disponibles durante 24 horas desde el momento en que se ingiera la solicitud y se le indique en la respuesta. Después de este período de tiempo, los resultados se purgan y ya no están disponibles para la recuperación.

Al enviar datos a resumen de conversaciones, se recomienda enviar un registro de chat por solicitud para mejorar la latencia.

Obtención de resúmenes de chats de texto

Puede usar el resumen de problemas y solución de conversaciones para obtener resúmenes según sea necesario. Para ver un ejemplo con chats de texto, consulte este artículo de inicio rápido.

Obtención de resúmenes de transcripciones de voz

El resumen de problemas y soluciones de la conversación también le permite obtener resúmenes de las transcripciones de voz mediante el uso de la característica de conversión de voz en text del servicio Voz. En el siguiente ejemplo se muestra una conversación breve que puede incluir en las solicitudes de 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
                  }
               ]
            }
         }
      ]
   }
]

Obtención de títulos de capítulo

El resumen del título del capítulo de una conversación le permite obtener títulos de capítulo de las conversaciones de entrada. A continuación, se proporciona un escenario de ejemplo guiado:

  1. Copie el siguiente comando en un editor de texto. En el ejemplo de BASH se usa el carácter de continuación de línea \. Si la consola o el terminal usan un carácter de continuación de línea diferente, use ese carácter.
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. Realice los siguientes cambios en el comando donde sea necesario:

    • Reemplace el valor your-value-language-key por su clave.
    • Reemplace la primera parte de la dirección URL de la solicitud (your-language-resource-endpoint) por la dirección URL de su punto de conexión.
  2. Abra una ventana del símbolo del sistema (por ejemplo: BASH).

  3. Pegue el comando del editor de texto en la ventana del símbolo del sistema y ejecute el comando.

  4. Obtenga el valor de operation-location del encabezado de respuesta. El valor tiene un aspecto similar a la siguiente dirección URL:

https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
  1. Para obtener los resultados de la solicitud, use el siguiente comando cURL. Asegúrese de reemplazar <my-job-id> por el valor GUID que recibió del encabezado de respuesta operation-location anterior:
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>"

Ejemplo de la respuesta JSON de resumen del título del capítulo:

{
    "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"
                }
            }
        ]
    }
}

En el caso de una conversación larga, el modelo puede segmentarla en varias partes cohesivas y resumir cada segmento. También hay un campo contexts largo para cada resumen, que indica desde qué intervalo de la conversación de entrada se ha generado el resumen.

Obtención de un resumen narrativo

El resumen de conversaciones también le permite obtener resúmenes narrativos de las conversaciones de entrada. A continuación, se proporciona un escenario de ejemplo guiado:

  1. Copie el siguiente comando en un editor de texto. En el ejemplo de BASH se usa el carácter de continuación de línea \. Si la consola o el terminal usan un carácter de continuación de línea diferente, use ese carácter.
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. Realice los siguientes cambios en el comando donde sea necesario:

    • Reemplace el valor your-language-resource-key por su clave.
    • Reemplace la primera parte de la dirección URL de la solicitud (your-language-resource-endpoint) por la dirección URL de su punto de conexión.
  2. Abra una ventana del símbolo del sistema (por ejemplo: BASH).

  3. Pegue el comando del editor de texto en la ventana del símbolo del sistema y ejecute el comando.

  4. Obtenga el valor de operation-location del encabezado de respuesta. El valor tiene un aspecto similar a la siguiente dirección URL:

https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
  1. Para obtener los resultados de la solicitud, use el siguiente comando cURL. Asegúrese de reemplazar <my-job-id> por el valor GUID que recibió del encabezado de respuesta operation-location anterior:
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>"

Ejemplo de respuesta JSON del resumen narrativo:

{
  "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"
        }
      }
    ]
  }
}

En el caso de una conversación larga, el modelo puede segmentarla en varias partes cohesivas y resumir cada segmento. También hay un campo contexts largo para cada resumen, que indica desde qué intervalo de la conversación de entrada se ha generado el resumen.

Obtención de resumen y resumen de tareas de seguimiento

El resumen de conversaciones también le permite obtener resúmenes y tareas de seguimiento de las conversaciones de entrada. A continuación, se proporciona un escenario de ejemplo guiado:

  1. Copie el siguiente comando en un editor de texto. En el ejemplo de BASH se usa el carácter de continuación de línea \. Si la consola o el terminal usan un carácter de continuación de línea diferente, use ese carácter.
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. Realice los siguientes cambios en el comando donde sea necesario:

    • Reemplace el valor your-language-resource-key por su clave.
    • Reemplace la primera parte de la dirección URL de la solicitud (your-language-resource-endpoint) por la dirección URL de su punto de conexión.
  2. Abra una ventana del símbolo del sistema (por ejemplo: BASH).

  3. Pegue el comando del editor de texto en la ventana del símbolo del sistema y ejecute el comando.

  4. Obtenga el valor de operation-location del encabezado de respuesta. El valor tiene un aspecto similar a la siguiente dirección URL:

https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
  1. Para obtener los resultados de la solicitud, use el siguiente comando cURL. Asegúrese de reemplazar <my-job-id> por el valor GUID que recibió del encabezado de respuesta operation-location anterior:
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>"

Resumen del ejemplo y respuesta JSON de resumen de seguimiento:

{
    "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"
                }
            }
        ]
    }
}

En el caso de una conversación larga, el modelo puede segmentarla en varias partes cohesivas y resumir cada segmento. También hay un campo contexts largo para cada resumen, que indica desde qué intervalo de la conversación de entrada se ha generado el resumen.

Obtención de resultados de resúmenes de problemas y soluciones de una conversación

El siguiente texto es un ejemplo del contenido que puede enviar para el resumen del problema y la solución de la conversación. Esto es solo un ejemplo; la API puede aceptar texto de entrada más largo. Para obtener más información consulte límites de datos.

Agente: "Hola, ¿cómo puedo ayudarte?"

Cliente: "¿Cómo puedo actualizar mi suscripción de Contoso? He estado intentándolo todo el día".

Agente: "Presione el botón de actualización. Después, inicie sesión y siga las instrucciones."

El resumen se aplica tras la recepción de la solicitud mediante la creación de un trabajo para el back-end de la API. Si el trabajo se completa correctamente, se devolverá la salida de la API. La salida está disponible para su recuperación durante 24 horas. Después de este tiempo, se purgará. Debido a la compatibilidad con varios idiomas y con Emojis, la respuesta podría contener desplazamientos de texto. Consulte cómo procesar desplazamientos para más información.

En el escenario del ejemplo anterior, la API podría devolver las siguientes oraciones resumidas:

Texto resumido Aspecto
"El cliente quiere actualizar su suscripción. El cliente no sabe cómo". issue
"El cliente debe presionar el botón de actualización e iniciar sesión". dirección URL

Consulte también