Jak používat shrnutí konverzací

Důležité

Naše oblast Preview, Švédsko – střed, představuje naše nejnovější a neustále se vyvíjející techniky ladění LLM založené na modelech GPT. Můžete si je vyzkoušet s prostředkem jazyka ve Švédsku – střed.

Shrnutí konverzací je k dispozici pouze pomocí:

  • REST API
  • Python
  • C#

Aspekty shrnutí konverzací

  • Nadpis kapitoly a vyprávění (obecná konverzace) jsou navržené tak, aby shrnuly konverzaci do nadpisů kapitol a souhrn obsahu konverzace. Tento aspekt shrnutí funguje na konverzacích s libovolným počtem stran.

  • Problém a řešení (zaměřené na call centrum) je navržené tak, aby sumarizovat protokoly textového chatu mezi zákazníky a agenty služeb zákazníkům. Tato funkce umožňuje poskytovat problémy i řešení v těchto protokolech, ke kterým dochází mezi dvěma stranami.

  • Vyprávění je navržené tak, aby sumarizuje příběh konverzace.

  • Rekapitulace je navržená tak, aby kondenzuje zdlouhavé schůzky nebo konverzace do stručného souhrnu o jednom odstavci, který poskytuje rychlý přehled.

  • Následné úkoly jsou navržené tak, aby shrnuly položky akcí a úkoly, které vznikají během schůzky.

Diagram pro odesílání dat do problémů se souhrnem konverzací a funkci řešení

Modely AI používané rozhraním API jsou poskytovány službou, stačí odeslat obsah k analýze.

Pro snadnější navigaci jsou tady odkazy na odpovídající oddíly pro každou službu:

Aspekt Sekce
Problém a řešení Problém a řešení
Název kapitoly Název kapitoly
Vyprávění Vyprávění
Rekapitulace a následné sledování Rekapitulace a následná úprava

Funkce

Rozhraní API pro sumarizaci konverzací používá techniky zpracování přirozeného jazyka k sumarizaci konverzací do kratších souhrnů na požadavek. Shrnutí konverzací může shrnout problémy a jejich řešení v konverzaci ve dvou stranách nebo shrnout dlouhou konverzaci do kapitol a krátký příběh pro každou kapitolu.

V jazyce Azure AI je k dispozici další funkce s názvem sumarizace textu, která je vhodnější pro shrnutí dokumentů do stručných souhrnů. Při rozhodování mezi shrnutím textu a souhrnem konverzací zvažte následující body:

  • Formát zadávání: Shrnutí konverzací může pracovat s přepisy textu chatu i řeči, které mají mluvčí a jejich promluvy. Shrnutí textu funguje pomocí jednoduchého textu, wordového, PDF nebo powerpointového formátu.
  • Účel sumarizace: například shrnutí problému konverzace a řešení vrátí důvod a řešení chatu mezi zákazníkem a agentem zákaznických služeb.

Odesílání dat

Poznámka:

Informace o formátování konverzačního textu pro odeslání pomocí sady Language Studio najdete v článku o sadě Language Studio .

Dokumenty odešlete do rozhraní API jako řetězce textu. Analýza se provede po přijetí žádosti. Vzhledem k tomu, že rozhraní API je asynchronní, může dojít ke zpoždění mezi odesláním požadavku rozhraní API a příjmem výsledků. Informace o velikosti a počtu požadavků, které můžete odeslat za minutu a sekundu, najdete v následujících omezeních dat.

Při použití této funkce jsou výsledky rozhraní API k dispozici po dobu 24 hodin od doby, kdy se žádost ingestovala, a je uvedena v odpovědi. Po uplynutí tohoto časového období se výsledky vyprázdní a už nejsou k dispozici pro načtení.

Při odesílání dat do souhrnu konverzací doporučujeme odeslat jeden protokol chatu na žádost, aby se zlepšila latence.

Získání souhrnů z textových chatů

Shrnutí problému konverzace a jejich řešení můžete použít k získání souhrnů podle potřeby. Příklad použití textových chatů najdete v článku rychlý start.

Získání souhrnů z přepisů řeči

Shrnutí problémů s konverzací a jejich řešení také umožňuje získat souhrny z přepisů řeči pomocí funkce řeči na text služby Speech. Následující příklad ukazuje krátkou konverzaci, kterou můžete zahrnout do požadavků rozhraní 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
                  }
               ]
            }
         }
      ]
   }
]

Získání nadpisů kapitol

Shrnutí nadpisu kapitoly konverzace umožňuje získat nadpisy kapitol ze vstupních konverzací. Ukázkový scénář s asistencí je uvedený níže:

  1. Zkopírujte následující příkaz do textového editoru. Příklad BASH používá \ znak pokračování řádku. Pokud konzola nebo terminál používá jiný znak pokračování řádku, použijte tento znak.
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. Proveďte v příkazu na příslušných místech následující změny:

    • Nahraďte hodnotu your-value-language-key klíčem.
    • Nahraďte první část adresy URL požadavku adresou URL your-language-resource-endpoint koncového bodu.
  2. Otevřete okno příkazového řádku (například BASH).

  3. Vložte příkaz z textového editoru do okna příkazového řádku a pak příkaz spusťte.

  4. Získejte z hlavičky operation-location odpovědi. Hodnota vypadá podobně jako následující adresa URL:

https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
  1. Pokud chcete získat výsledky požadavku, použijte následující příkaz cURL. Nezapomeňte nahradit <my-job-id> hodnotou GUID, kterou jste obdrželi z předchozí operation-location hlavičky odpovědi:
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>"

Příklad odpovědi JSON s názvem kapitoly:

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

V případě dlouhé konverzace může model segmentovat do několika soudržných částí a shrnout jednotlivé segmenty. Pro každý souhrn je také dlouhé contexts pole, které říká, z jakého rozsahu vstupní konverzace jsme souhrn vygenerovali.

Získání souhrnu vyprávění

Shrnutí konverzací také umožňuje získat souhrny vyprávění ze vstupních konverzací. Ukázkový scénář s asistencí je uvedený níže:

  1. Zkopírujte následující příkaz do textového editoru. Příklad BASH používá \ znak pokračování řádku. Pokud konzola nebo terminál používá jiný znak pokračování řádku, použijte tento znak.
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. Proveďte v příkazu na příslušných místech následující změny:

    • Nahraďte hodnotu your-language-resource-key klíčem.
    • Nahraďte první část adresy URL požadavku adresou URL your-language-resource-endpoint koncového bodu.
  2. Otevřete okno příkazového řádku (například BASH).

  3. Vložte příkaz z textového editoru do okna příkazového řádku a pak příkaz spusťte.

  4. Získejte z hlavičky operation-location odpovědi. Hodnota vypadá podobně jako následující adresa URL:

https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
  1. Pokud chcete získat výsledky požadavku, použijte následující příkaz cURL. Nezapomeňte nahradit <my-job-id> hodnotou GUID, kterou jste obdrželi z předchozí operation-location hlavičky odpovědi:
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>"

Příklad odpovědi JSON souhrnu vyprávění:

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

V případě dlouhé konverzace může model segmentovat do několika soudržných částí a shrnout jednotlivé segmenty. Pro každý souhrn je také dlouhé contexts pole, které říká, z jakého rozsahu vstupní konverzace jsme souhrn vygenerovali.

Získání souhrnu rekapitulace a následného úkolu

Shrnutí konverzací také umožňuje získat rekapitulace a následné úkoly ze vstupních konverzací. Ukázkový scénář s asistencí je uvedený níže:

  1. Zkopírujte následující příkaz do textového editoru. Příklad BASH používá \ znak pokračování řádku. Pokud konzola nebo terminál používá jiný znak pokračování řádku, použijte tento znak.
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. Proveďte v příkazu na příslušných místech následující změny:

    • Nahraďte hodnotu your-language-resource-key klíčem.
    • Nahraďte první část adresy URL požadavku adresou URL your-language-resource-endpoint koncového bodu.
  2. Otevřete okno příkazového řádku (například BASH).

  3. Vložte příkaz z textového editoru do okna příkazového řádku a pak příkaz spusťte.

  4. Získejte z hlavičky operation-location odpovědi. Hodnota vypadá podobně jako následující adresa URL:

https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
  1. Pokud chcete získat výsledky požadavku, použijte následující příkaz cURL. Nezapomeňte nahradit <my-job-id> hodnotou GUID, kterou jste obdrželi z předchozí operation-location hlavičky odpovědi:
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>"

Příklad odpovědi JSON pro rekapitulace a následné shrnutí:

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

V případě dlouhé konverzace může model segmentovat do několika soudržných částí a shrnout jednotlivé segmenty. Pro každý souhrn je také dlouhé contexts pole, které říká, z jakého rozsahu vstupní konverzace jsme souhrn vygenerovali.

Získání problémů s konverzací a řešení výsledků shrnutí

Následující text je příkladem obsahu, který můžete odeslat k problému konverzace a shrnutí řešení. Toto je pouze příklad, rozhraní API může přijímat delší vstupní text. Další informace najdete v omezeních dat.

Agent: "Dobrý den, jak vám můžu pomoct?"

Zákazník: Jak můžu upgradovat předplatné Contoso? Zkouším celý den."

Agent: "Stiskněte tlačítko upgradovat a pak se přihlaste a postupujte podle pokynů."

Shrnutí se provádí po přijetí požadavku vytvořením úlohy pro back-end rozhraní API. Pokud úloha proběhla úspěšně, vrátí se výstup rozhraní API. Výstup je k dispozici pro načtení po dobu 24 hodin. Po této době se výstup vyprázdní. Kvůli podpoře vícejazyčných a emoji může odpověď obsahovat posuny textu. Další informace najdete v tématu zpracování posunů .

V předchozím příkladu může rozhraní API vrátit následující shrnuté věty:

Souhrnný text Aspekt
Zákazník chce upgradovat své předplatné. Zákazník neví, jak na to." Problém
Zákazník musí stisknout tlačítko upgradovat a přihlásit se. řešení

Viz také