Condividi tramite


Configurare il passaggio a un hub di interazione generico

Copilot Studio ti consente di trasferire le conversazioni di agenti facilmente e contestualmente a un agente reale attraverso un hub di interazione.

Con un po' di sviluppo personalizzato, puoi configurare l'agente per distribuire le conversazioni a qualsiasi hub di interazione. Questa guida descrive come è possibile farlo.

Prerequisiti

Importante

Alcune istruzioni in questa sezione richiedono lo sviluppo del software da parte tua o degli sviluppatori. È destinato a professionisti IT esperti, come amministratori IT o sviluppatori che hanno una solida conoscenza di strumenti di sviluppo, utilità e IDE che cercano di integrare hub di interazione di terze parti con Copilot Studio.

Panoramica

ILLUSTRAZIONE CHE MOSTRA IL FLUSSO DI DATI DELL'ADATTATORE GENERICO.

Un passaggio completo a un hub di interazione segue questo schema:

  1. Un cliente interagisce con il canvas di chat dell'hub di interazione.

  2. L'hub di interazione indirizza la chat in arrivo attraverso le funzionalità di routing della chat integrate a un agente.

  3. Un adattatore personalizzato inoltra i messaggi di chat in arrivo dall'hub di interazione all'agente Copilot Studio.

  4. Una volta che il cliente attiva il trasferimento, Copilot Studio inizia il trasferimento con un contesto di conversazione completo.

  5. L'adattatore personalizzato intercetta il messaggio di passaggio, analizza l'intero contesto della conversazione e instrada facilmente la conversazione riassegnata a un agente reale qualificato, in base alla disponibilità.

  6. La chat del cliente viene distribuita facilmente e contestualmente a un agente reale che può riprendere la conversazione.

Per distribuire la conversazione a un agente umano devi creare un adattatore di passaggio personalizzato.

Crea un adattatore di passaggio personalizzato

Un adattatore collega le conversazioni da e verso l'hub di interazione degli agenti inoltrando e trasformando i messaggi tra clienti, agenti e agenti umani.

Gli hub di interazione degli agenti più diffusi forniscono gli SDK o documentano pubblicamente le API, consentendo di creare gli adattatori.

Non rientra nello scopo di questo documento spiegare cosa potrebbe contenere un adattatore personalizzato. Tuttavia, il seguente messaggio di passaggio di esempio, basato su ciò che Copilot Studio genera come parte del nostro passaggio standard a un'esperienza con un agente live, può aiutarti a cominciare.

Questi frammenti di codice ed esempi ti consentono di estrarre il contesto dalla conversazione per distribuire in modo semplice e contestuale le conversazioni dell'agente a qualsiasi hub di interazione generico.

Payload del messaggio di passaggio di esempio

La distribuzione è supportata solo su Direct Line. Ulteriori informazioni sull'interazione con un agente su Direct Line. Al momento del passaggio, un'attività di evento chiamata handoff.initiate viene generata e inviata all'adattatore.

Puoi vedere l'attività completa di messaggio di passaggio di esempio sul sito GitHub.

Estrarre il contesto dal messaggio di passaggio

Per usare il contesto di conversazione, è necessario analizzare l'attività di evento handoff.initiate. Il seguente frammento di codice analizza l'attività di evento handoff.initiate ed estrae il contesto di conversazione. Vedi il codice di esempio completo in GitHub.

public void InitiateHandoff(string botresponseJson)
{
    BotResponse response = JsonConvert.DeserializeObject<BotResponse>(botresponseJson);

    // Look for Handoff Initiate Activity. This indicates that conversation needs to be handed off to agent
    Activity handoffInitiateActivity = response.Activities.ToList().FirstOrDefault(
        item => string.Equals(item.Type, ActivityTypes.Event, System.StringComparison.Ordinal)
        && string.Equals(item.Name, HandoffInitiateActivityName, System.StringComparison.Ordinal));

    if (handoffInitiateActivity != null)
    {
        // Read transcript from attachment
        if (handoffInitiateActivity.Attachments?.Any() == true)
        {
            Attachment transcriptAttachment = handoffInitiateActivity.Attachments.FirstOrDefault(a => string.Equals(a.Name.ToLowerInvariant(), TranscriptAttachmentName, System.StringComparison.Ordinal));
            if (transcriptAttachment != null)
            {
                Transcript transcript = JsonConvert.DeserializeObject<Transcript>(transcriptAttachment.Content.ToString());
            }
        }

        // Read handoff context
        HandoffContext context = JsonConvert.DeserializeObject<HandoffContext>(handoffInitiateActivity.Value.ToString());

        // Connect to Agent Hub
        // <YOUR CUSTOM ADAPTER CODE GOES HERE>
    }
}