Delen via


Overdracht aan een generieke contacthub configureren

Belangrijk

Power Virtual Agents-mogelijkheden en -functies maken nu deel uit van Microsoft Copilot Studio na aanzienlijke investeringen in generatieve AI en verbeterde integraties binnen Microsoft Copilot.

Sommige artikelen en schermopnamen verwijzen mogelijk naar Power Virtual Agents terwijl we de documentatie en trainingsinhoud bijwerken.

Met Copilot Studio kunt u copilotgesprekken naadloos en contextueel overdragen aan een menselijke agent via een contacthub.

Met een paar aanpassingen kunt u uw copilot zo configureren dat gesprekken worden doorgegeven aan elke contacthub. In deze handleiding wordt beschreven hoe u dit kunt doen.

Vereisten

Belangrijk

Voor instructies in deze sectie is softwareontwikkeling van u of uw ontwikkelaars vereist. De informatie is bedoeld voor ervaren IT-professionals, zoals IT-beheerders of ontwikkelaars, die een gedegen kennis hebben van ontwikkelaarstools, hulpprogramma's en IDE's, en contacthubs van derden willen integreren met Copilot Studio.

Overzicht

AFBEELDING VAN GENERIEKE GEGEVENSSTROOM VAN ADAPTER.

Een volledige overdracht naar een contacthub volgt dit patroon:

  1. Een eindgebruiker communiceert met het chatcanvas van de contacthub.

  2. De contacthub leidt de inkomende chat via ingebouwde chatrouteringsmogelijkheden om naar een copilot.

  3. Een aangepaste adapter stuurt de inkomende chatberichten van de contacthub door naar een Copilot Studio-copilot.

  4. Zodra de eindgebruiker de overdracht activeert, begint Copilot Studio de overdracht met volledige gesprekscontext.

  5. De aangepaste adapter onderschept het overdrachtsbericht, parseert de volledige gesprekscontext en leidt het geëscaleerde gesprek naadloos om naar een bekwame menselijke agent, op basis van beschikbaarheid.

  6. De chat van de eindgebruiker wordt naadloos en contextueel overgedragen aan een menselijke agent die het gesprek kan hervatten.

Om het gesprek aan een menselijke agent over te dragen, moet u een aangepaste overdrachtsadapter bouwen.

Een aangepaste overdrachtsadapter bouwen

Een adapter overbrugt gesprekken van en naar uw agentcontacthub door berichten door te sturen en te transformeren tussen eindgebruikers, copilots en menselijke agenten.

De populairste hubs voor agentcontact bieden SDK's of documenteren hun API's openbaar, zodat u dergelijke adapters kunt bouwen.

Hoewel het buiten het bereik van dit document valt om aan te geven wat een aangepaste adapter kan bevatten, kan het volgende voorbeeld van een overdrachtsbericht, gebaseerd op wat Copilot Studio genereert als onderdeel van onze standaardoverdracht aan een live agent, u op weg helpen.

Met deze codefragmenten en voorbeelden kunt u context uit het gesprek halen om copilotgesprekken naadloos en contextueel over te dragen aan elke generieke contacthub.

Nettolading van voorbeeld van overdrachtsbericht

Overdracht wordt momenteel alleen ondersteund via Direct Line. Meer informatie over interactie met een copilot via Direct Line. Bij overdracht wordt de gebeurtenisactiviteit handoff.initiate geactiveerd en naar de adapter gestuurd.

U kunt een volledige activiteit van een overdrachtsbericht op onze GitHub-site bekijken.

Context uit overdrachtsbericht halen

Als u gesprekscontext wilt gebruiken, moet u de gebeurtenisactiviteit handoff.initiate parseren. De volgende fragmentcode parseert de gebeurtenisactiviteit handoff.initiate en extraheert de gesprekscontext. Bekijk het volledige codevoorbeeld op 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>
    }
}