Configure a entrega a qualquer hub de cativação genérico

Note

Este artigo descreve as funcionalidades utilizadas em agentes ou fluxos de agente com tecnologia de plataforma standard.

O Copilot Studio permite-lhe passar as conversas com agentes de forma fluida e contextual para um agente humano através de um hub de envolvimento.

Ao usar desenvolvimento personalizado, pode configurar o seu agente para transferir conversas para qualquer hub de envolvimento.

Pré-requisitos

Importante

Este artigo exige algumas competências em desenvolvimento de software. Os passos deste artigo destinam-se a profissionais de TI experientes com um sólido conhecimento de ferramentas para programadores, utilitários e ambientes de desenvolvimento integrados (IDEs).

Overview

Captura de tela do fluxo de dados do adaptador genérico para transferência para um hub de engajamento.

Uma transferência completa para um centro de interação segue este modelo:

  1. Um cliente interage com a tela de chat do hub de cativação.
  2. O centro de interação encaminha o chat recebido para um agente, recorrendo às capacidades incorporadas de encaminhamento de chats.
  3. Um adaptador personalizado encaminha as mensagens de chat recebidas do hub de interação para um agente do Copilot Studio.
  4. Assim que o cliente acionar a entrega, o Copilot Studio inicia a entrega com todo o contexto conversacional.
  5. O adaptador personalizado interceta a mensagem de entrega, analisa todo o contexto da conversa e encaminha de forma totalmente integrada a conversa escalada para um agente humano qualificado, com base na disponibilidade.
  6. O chat do cliente é encaminhado sem interrupções e com o respetivo contexto para um agente humano, que pode retomar a conversa.

Para entregar a conversa a um agente humano, é preciso construir um adaptador de entrega personalizado.

Criar um adaptador de entrega personalizado

Um adaptador faz a ponte entre conversas de e para o seu centro de cativação de agentes, reencaminhando e transformando mensagens entre clientes, agentes e agentes humanos.

Os hubs de cativação de agentes mais populares fornecem kits de desenvolvimento de software (SDKs) ou documentam publicamente as suas APIs, permitindo-lhe criar esses adaptadores.

Este documento não aborda o que um adaptador personalizado poderia conter. No entanto, a seguinte mensagem de entrega de amostra, com base no que o Copilot Studio gera como parte de nossa entrega padrão para uma experiência de agente em direto, pode ajudá-lo a começar.

Estes fragmentos de código e exemplos permitem extrair o contexto da conversa para distribuir de forma totalmente integrada e contextualmente conversas de agentes para qualquer hub de cativação genérico.

Payload da mensagem de entrega de amostra

Handoff atualmente suporta apenas Direct Line. Para mais informações, consulte como interagir com um agente através do Direct Line. Quando inica a entrega, o adaptador gera e envia uma atividade de evento denominada handoff.initiate.

Pode ver uma atividade de mensagem de entrega de amostra completa no nosso site do GitHub.

Extrair contexto da mensagem de entrega

Para usar o contexto conversacional, analise a handoff.initiate atividade do evento. O excerto de código seguinte analisa a handoff.initiate atividade do evento e extrai o contexto conversacional. Consulte o exemplo de código completo no 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>
    }
}