Avaliações do playbook

Neste guia, explicamos como usar o recurso de avaliações integrado no console do Dialogflow CX para verificar a funcionalidade do agente e evitar regressões após as atualizações. O Dialogflow CX oferece métricas prontas para uso que ajudam a avaliar o desempenho do agente.

Todas as métricas, exceto a latência, exigem pelo menos um caso de teste, uma "resposta ideal" que o Dialogflow CX usa para comparar o desempenho do agente e calcular a performance dele. Cada caso de teste pode ser medido no contexto de um ambiente, o que permite especificar diferentes versões de playbooks, fluxos e ferramentas para usar na avaliação de desempenho do agente.

(Opcional) Criar um ambiente

A criação de um ambiente é opcional. Se você não criar um, o valor padrão será Rascunho.

  1. Para criar um ambiente, clique em Ambientes no menu à esquerda e selecione + Criar.
  2. Escolha as versões dos playbooks, fluxos e ferramentas que você quer usar para medir o desempenho do agente.
  3. Clique em Salvar para salvar o ambiente.

Criar um caso de teste

Você pode criar um caso de teste com base em uma conversa no histórico, criar uma nova conversa para salvar como um caso de teste ou importar casos de teste para o Dialogflow CX.

Criar um caso de teste no console

  1. Acesse Histórico de conversas no menu à esquerda.
  2. Para criar uma conversa, ative o agente (por exemplo, ligando para o número de telefone dele) para criar uma conversa no histórico. Selecione a conversa que você quer usar como caso de teste.
  3. Confira a conversa e verifique as respostas do agente, as ferramentas invocadas e como cada resposta soa. Quando estiver tudo certo, clique em Criar caso de teste no canto superior direito da janela.
  4. Dê um nome de exibição ao caso de teste e especifique suas expectativas de eventos que devem acontecer no nível da conversa. Isso pode incluir ferramentas, playbooks e fluxos que você espera que sejam chamados na conversa. Clique em +Adicionar expectativa para adicionar mais expectativas. Para que as expectativas sejam avaliadas na ordem sequencial listada (de cima para baixo), ative a Validação sequencial.
  5. Clique em Salvar para salvar o caso de teste.

Fazer upload de casos de teste

  1. Os casos de teste precisam estar no formato CSV a seguir.
  2. Para fazer upload de casos de teste para o sistema, clique em Importar na parte de cima do menu de casos de texto.
  3. No menu que aparece, selecione o arquivo armazenado localmente ou insira o caminho para o bucket do Cloud Storage.
  4. Seus casos de teste agora vão aparecer no menu de casos de teste.

Executar um caso de teste

  1. Clique em Casos de teste no menu à esquerda e selecione os casos de teste que você quer comparar com o agente. Pode ser um ou vários casos de teste.
  2. Clique em Executar casos de teste selecionados.

Resultados do teste

  1. Acessar resultados: os resultados da execução mais recente do teste são mostrados para cada caso de teste na visualização Caso de teste após a conclusão:
    1. Semelhança semântica: mede o nível de semelhança entre as conversas do agente e a "resposta de referência" (respostas no caso de teste). As respostas de referência são necessárias para receber essa métrica. Os valores podem ser 0 (inconsistente), 0,5 (um pouco consistente) ou 1 (muito consistente).
    2. Precisão da chamada de ferramenta: um valor que reflete o quanto a conversa inclui as ferramentas que devem ser invocadas durante a conversa. Os valores variam de 0 a 1. Se nenhuma ferramenta for usada na conversa, a acurácia será exibida como -- (N/A).
    3. Latência: o tempo total que o agente leva para processar uma solicitação do usuário final e responder a ele (a diferença entre o fim da fala do usuário e o início da resposta do agente). As unidades são informadas em segundos.
  2. Atualizar o caso de teste de referência: se a execução mais recente refletir as mudanças esperadas devido a uma atualização do agente, clique em "Salvar como referência" para substituir o caso de teste original.
  3. Filtrar e classificar resultados: é possível filtrar e classificar os resultados da avaliação por qualquer uma das métricas geradas ou por um ambiente específico. Isso é útil para acompanhar as mudanças no desempenho após cada atualização.

Formatação de casos de teste de importação em lote

Nesta seção, descrevemos como formatar um arquivo CSV para importar casos de teste em lote para seu agente. O sistema lê esse arquivo para criar um conjunto estruturado de casos de teste, cada um com um ou mais turnos de conversa.

Um único caso de teste pode abranger várias linhas no arquivo CSV. A primeira linha de um caso de teste define as propriedades gerais (como nome e idioma). Cada linha subsequente para esse caso de teste define uma única troca de mensagens na conversa (o usuário diz algo, o agente deve responder).

O arquivo CSV precisa ter uma linha de cabeçalho como a primeira linha. Esse cabeçalho define os dados em cada coluna.

Cabeçalhos obrigatórios

Os dois cabeçalhos obrigatórios precisam estar na ordem mostrada. Ambos são obrigatórios para a primeira linha de um novo caso de teste. Para iniciar um novo caso de teste, forneça novos valores de DisplayName e LanguageCode.

  • DisplayName: o nome do caso de teste. Isso é preenchido apenas para a primeira linha de um novo caso de teste.
  • LanguageCode: o código de idioma do teste (por exemplo, en, en-US, es).

Cabeçalhos opcionais

É possível incluir qualquer um dos cabeçalhos opcionais a seguir para fornecer mais detalhes sobre seus casos de teste. Elas podem estar em qualquer ordem após as duas primeiras colunas obrigatórias.

Metadados do caso de teste

  • Tags: tags separadas por espaço para organizar testes (por exemplo, "integração de pagamentos").
  • Observações: observações em texto livre ou uma descrição da finalidade do caso de teste.
  • TestCaseConfigV2.StartResource: especifique o fluxo ou playbook para iniciar o teste.

Entrada do usuário

  • UserInput.Input.Text: o texto que o usuário "digita" em uma determinada rodada.
  • UserInput.InjectedParameters: parâmetros a serem injetados na conversa no início de uma fala, formatados como uma string JSON.

Saída do agente

  • AgentOutput.QueryResult.ResponseMessages.Text: o texto exato que você afirma que o agente respondeu.
  • AgentOutput.QueryResult.Parameters: os parâmetros que você afirma que foram extraídos pelo agente, formatados como uma string JSON.

Expectativas

  • OrderedExpectations.ExpectedFlow: o fluxo que você espera que esteja ativo após a rodada.
  • OrderedExpectations.ExpectedIntent: a intent que você espera que seja correspondida para a vez.
  • OrderedExpectations.ExpectedAgentReply: o texto que você espera que o agente use na resposta. Pode ser uma substring da resposta completa.
  • OrderedExpectations.ExpectedOutputParameter: os parâmetros que você espera que sejam definidos no final da rodada, formatados como uma string JSON.

Metadados de áudio

  • AudioTurnMetadata Metadados para testes baseados em áudio, formatados como uma string JSON.

Criar um caso de teste

Os casos de teste são organizados por linhas de dados.

  1. Para iniciar um novo caso de teste, preencha a linha de metadados dele.
    • Regra: essa linha precisa ter um valor na coluna DisplayName.
    • Ação: insira valores para DisplayName e LanguageCode. Também é possível adicionar tags, notas ou um TestCaseConfigV2.StartResource nessa linha. As colunas de turno de conversa (como UserInput.Input.Text) precisam ser deixadas em branco nessa linha. Se você usar tags, separe cada uma com um espaço. Exemplo: tag1 tag2 tag3. Se você usar TestCaseConfigV2.StartResource, adicione o prefixo start_flow: ou start_playbook: ao nome do recurso. Exemplo: start_flow:projects/p/locations/l/agents/a/flows/f.
  2. Adicione uma conversa ao caso de teste que você acabou de iniciar adicionando uma nova linha imediatamente abaixo dele.
    • Regra: a coluna DisplayName precisa estar vazia. Isso informa ao analisador que é uma rodada que pertence ao caso de teste anterior.
    • Ação: preencha as colunas que descrevem a ação do usuário e a resposta esperada do agente para essa rodada, como UserInput.Input.Text e OrderedExpectations.ExpectedAgentReply. Para colunas que exigem JSON, é necessário fornecer um objeto JSON válido como uma string. Exemplo: {"param_name": "param_value", "number_param": 123}.