Del via


Konfigurer overføring til en generisk engasjeringshub

Viktig!

Power Virtual Agents-funksjoner er nå en del av Microsoft Copilot Studio etter betydelige investeringer i generativ kunstig intelligens og forbedrede integreringer på tvers av Microsoft Copilot.

Enkelte artikler og skjermbilder kan henvise til Power Virtual Agents når vi oppdaterer dokumentasjons- og opplæringsinnhold.

Copilot Studio gjør at du kan overføre kopilotsamtaler sømløst og kontekstuelt til en menneskelig agent via en engasjeringshub.

Med noe tilpasset utvikling kan du konfigurere kopiloten slik at den overfører samtaler til enhver engasjeringshub. Denne veiledningen beskriver hvordan du kan gjøre dette.

Forutsetning

Viktig

Instruksjonene i denne delen krever programvareutvikling fra deg eller utviklerne. Den er beregnet på erfarne IT-medarbeidere, for eksempel IT-administratorer eller utviklere som har en solid forståelse av utviklerverktøy, og integrerte utviklingsmiljøer, og som ønsker å integrere engasjeringshuber fra tredjeparter med Copilot Studio.

Oversikt

ILLUSTRASJON SOM VISER STANDARD DATAFLYT FOR ADAPTER.

En fullstendig overføring til en engasjeringshub følger dette mønsteret:

  1. En sluttbruker samhandler med chattelerretet for engasjeringshuben.

  2. Engasjeringshuben ruter den inn kommende chatten via innebygde funksjoner for ruting av chat til en kopilot.

  3. En egendefinert adapter videresender de inn kommende chattemeldingene fra engasjeringshuben til en Copilot Studio-kopilot.

  4. Når sluttbrukeren utløser overføringen, starter Copilot Studio overføringen med fullstendig samtalekontekst.

  5. Den egendefinerte adapteren fanger opp overføringsmeldingen, deler opp hele samtalekonteksten og distribuerer den eskalerte samtalen sømløst til en kvalifisert menneskelig agent basert på tilgjengelighet.

  6. Sluttbrukerens chat overføres sømløst og kontekstuelt til en menneskelig agent som kan fortsette samtalen.

Hvis du vil overføre samtalen til en menneskelig agent, må du bygge en egendefinert overføringsadapter.

Bygg en egendefinert overføringsadapter

En adapter omformer samtaler til og fra agentengasjeringshuben din ved å videresende og transformere meldinger mellom sluttbrukere, kopiloter og menneskelige agenter.

De fleste populære agentengasjeringshubene oppgir SDK-er eller dokumenterer API-ene sine offentlig, slik at du kan bygge slike adaptere.

Selv om det er utenfor omfanget av dette dokumentet å dekke hva en egendefinert adapter kan inneholde, kan følgende eksempel på en overføringsmelding, basert på hva Copilot Studio genererer som en del av standardopplevelsen for overføring til en live agent, hjelpe deg med å komme i gang.

Disse kodesnuttene og eksemplene gjør at du kan trekke ut kontekst fra samtalen for sømløst og kontekstuelt å avlevere kopilotsamtaler til enhver generisk engasjeringshub.

Eksempel på nyttelast for overføringsmelding

Overføring støttes for øyeblikket bare via Direct Line. Finn ut mer om samhandling med en kopilot via Direct Line. Etter overføringen blir en hendelsesaktivitet ved navn handoff.initiate kalt opp og sendt til adapteren.

Du kan se et fullstendig eksempel på en overføringsmeldingsaktivitet på GitHub-nettstedet.

Trekk ut kontekst fra en overføringsmelding

Hvis du vil bruke samtalekontekst, må du dele opp handoff.initiate-hendelsesaktiviteten. Følgende kodesnutt deler opp handoff.initiate-hendelsesaktiviteten og trekker ut samtalekonteksten. Se eksempel på en fullstendig kode på 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>
    }
}