Este guia explica como usar o recurso de avaliações integradas no console do Dialogflow CX para verificar a funcionalidade do agente e evitar regressões após atualizações. O Dialogflow CX oferece métricas prontas para uso que ajudam a avaliar a performance do agente.
Todas as métricas, exceto a latência, exigem pelo menos um caso de teste, uma "resposta dourada" que o Dialogflow CX compara com a performance do agente para calcular o desempenho. Cada caso de teste pode ser medido no contexto de um ambiente, que permite especificar diferentes versões de manuais de estratégia, fluxos e ferramentas a serem usados na avaliação de performance 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.
- Para criar um ambiente, clique em Ambientes no menu à esquerda e selecione + Criar.
- Escolha as versões dos manuais de estratégia, fluxos e ferramentas que você quer usar para medir a performance do agente.
- Clique em Salvar para salvar o ambiente.
Criar um caso de teste
Você pode criar um caso de teste com base em uma conversa atual 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
- Acesse Histórico de conversas no menu à esquerda.
- Para criar uma nova conversa, ative o agente (por exemplo, ligando para o número de telefone dele) para criar uma conversa no histórico. Quando tiver uma conversa que você quer usar como caso de teste, selecione-a.
- Visualize a conversa e verifique as respostas do agente, as ferramentas invocadas e como cada resposta soa. Quando estiver satisfeito, clique em Criar caso de teste no canto superior direito da janela.
- Insira um nome de exibição para o caso de teste e especifique suas expectativas de eventos que devem acontecer no nível da conversa. Isso pode incluir ferramentas, manuais de estratégia e fluxos que você espera serem chamados na conversa. Clique em \+ Adicionar expectativa para adicionar mais expectativas. Para que as expectativas sejam avaliadas em ordem sequencial, conforme listadas (de cima para baixo), ative a Validação sequencial.
- Clique em Salvar para salvar o caso de teste.
Fazer upload de casos de teste
- Os casos de teste precisam estar no seguinte formato CSV.
- Para fazer upload de casos de teste para o sistema, clique em Importar na parte de cima do menu de casos de teste.
- No menu que aparece, selecione o arquivo armazenado localmente ou insira o caminho para o bucket do Cloud Storage.
- Os casos de teste vão aparecer no menu de casos de teste.
Executar um caso de teste
- Clique em Casos de teste no menu à esquerda e selecione os casos de teste que você quer comparar com o agente. Pode ser um único caso de teste ou vários.
- Clique em Executar casos de teste selecionados.
Resultados do teste
- Acessar resultados: os resultados da execução do teste mais recente são mostrados para cada
caso de teste na visualização Caso de teste após a conclusão:
- Semelhança semântica: mede o quão semelhantes foram as conversas do agente em relação à "resposta dourada" (respostas no caso de teste). As respostas douradas são necessárias para receber essa métrica. Os valores podem ser 0 (inconsistente), 0,5 (um pouco consistente) ou 1 (muito consistente).
- Precisão da chamada de ferramenta: um valor que reflete a fidelidade com que 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 precisão será mostrada como
--(N/A). - Latência: o tempo total que o agente leva para processar uma solicitação do usuário final e responder ao usuário (a diferença entre o final da fala do usuário e o início da resposta do agente). As unidades estão em segundos.
- Atualizar caso de teste dourado: se a execução mais recente refletir as mudanças esperadas devido a uma atualização do agente, clique em "Salvar como dourado" para substituir o caso de teste original.
- 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 na performance após cada atualização.
Formatação de casos de teste de importação em lote
Esta seção descreve como formatar um arquivo CSV para importar casos de teste em lote para o agente. O sistema lê esse arquivo para criar um conjunto estruturado de casos de teste, cada um contendo 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 dele (como nome e idioma). Cada linha subsequente para esse caso de teste define um único turno de conversa (o usuário diz algo, o agente deve responder).
Cabeçalho
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. Os dois são necessários para a primeira linha de um novo caso de teste. Você pode iniciar um novo caso de teste fornecendo novos valores DisplayName e LanguageCode.
DisplayName: o nome do caso de teste. Ele só é preenchido na 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
Você pode incluir qualquer um dos cabeçalhos opcionais a seguir para fornecer mais detalhes sobre os casos de teste. Eles 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 de texto livre ou uma descrição da finalidade do caso de teste.
TestCaseConfigV2.StartResource: especifique o fluxo ou manual de estratégia para iniciar o teste.
Entrada do usuário
UserInput.Input.Text: o texto que o usuário "digita" para um determinado turno.UserInput.InjectedParameters: parâmetros a serem injetados na conversa no início de um turno, 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 terem sido extraídos pelo agente, formatados como uma string JSON.
Expectativas
OrderedExpectations.ExpectedFlow: o fluxo que você espera estar ativo após o turno.OrderedExpectations.ExpectedIntent: a intent que você espera ser correspondida para o turno.OrderedExpectations.ExpectedAgentReply: o texto que você espera que o agente responda. Pode ser uma substring da resposta completa.OrderedExpectations.ExpectedOutputParameter: os parâmetros que você espera serem definidos no final do turno, formatados como uma string JSON.
Metadados de áudio
AudioTurnMetadataMetadados 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.
- Para iniciar um novo caso de teste, preencha a linha de metadados.
- Regra: essa linha precisa ter um valor na coluna
DisplayName. - Ação: insira valores para
DisplayNameeLanguageCode. Você também pode adicionar tags, observações ou umTestCaseConfigV2.StartResourcenessa linha. As colunas de turno de conversa (comoUserInput.Input.Text) precisam ser deixadas em branco nessa linha. Se você estiver usando tags, separe cada tag com um espaço. Exemplo:tag1 tag2 tag3. Se você estiver usandoTestCaseConfigV2.StartResource, prefixe o nome do recurso comstart_flow:oustart_playbook:. Exemplo:start_flow:projects/p/locations/l/agents/a/flows/f.
- Regra: essa linha precisa ter um valor na coluna
- Adicione um turno de conversa ao caso de teste que você acabou de iniciar adicionando uma nova linha imediatamente abaixo dele.
- Regra: a coluna
DisplayNameprecisa estar vazia. Isso informa ao analisador que é um turno pertencente 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 esse turno, como
UserInput.Input.TexteOrderedExpectations.ExpectedAgentReply. Para colunas que exigem JSON, você precisa fornecer um objeto JSON válido como uma string. Exemplo:{"param_name": "param_value", "number_param": 123}.
- Regra: a coluna