Este guia explica como usar o recurso de avaliações integrado no console do Dialogflow CX para verificar a funcionalidade do seu agente e evitar regressões após atualizações. O Dialogflow fornece métricas prontas para uso para ajudar a avaliar a performance do seu agente.
Todas as métricas, exceto a latência, exigem pelo menos um caso de teste, uma "resposta ideal" que o Dialogflow usa para comparar a performance do agente e calcular o desempenho dele. Cada caso de teste pode ser medido no contexto de um ambiente, 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.
- Para criar um ambiente, clique em Ambientes no menu à esquerda e selecione + Criar.
- Escolha as versões dos playbooks, 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 no histórico, criar uma conversa para salvar como um caso de teste ou importar casos de teste para o Dialogflow.
Criar um caso de teste no console
- Acesse Histórico de conversas no menu à esquerda.
- Para criar uma conversa, ative o agente (por exemplo, ligando para o número de telefone dele) e crie uma conversa no histórico. Quando tiver uma conversa que você quer usar como caso de teste, selecione-a.
- Confira 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 ocorrer no nível da conversa. Isso pode incluir ferramentas, playbooks 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 listado (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 neste 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.
- Seus casos de teste vão aparecer no menu "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 usar para comparar com seu 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 quanto as conversas do agente foram semelhantes à "resposta de referência" (respostas no caso de teste). As respostas de ouro 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 acurácia 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 a ele (a diferença entre o final da declaração do usuário e o início da resposta do agente). As unidades são informadas em segundos.
- Atualizar caso de teste dourado: se a última execução 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 para importação em lote de casos de teste
Esta seção descreve 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 contendo uma ou mais interações 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 desse caso de teste define um único turno de conversa (o usuário diz algo, e o agente precisa 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. Ambos são necessá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 só é preenchido na primeira linha de um novo caso de teste.LanguageCode
: o código do 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 seus casos de teste. Elas podem estar em qualquer ordem depois das duas primeiras colunas obrigatórias.
Metadados de caso de teste
- Tags: tags separadas por espaços para organizar testes (por exemplo, "integração de pagamentos").
- Observações: 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 vez.UserInput.InjectedParameters
: parâmetros a serem injetados na conversa no início de um turno, formatados como uma string JSON.
Resposta do agente
AgentOutput.QueryResult.ResponseMessages.Text
: o texto exato com 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 a vez.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 da vez, 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.
- Para iniciar um novo caso de teste, preencha a linha de metadados dele.
- Regra: esta linha precisa ter um valor na coluna
DisplayName
. - Ação: insira valores para
DisplayName
eLanguageCode
. Você também pode adicionar tags, notas ou umTestCaseConfigV2.StartResource
nessa linha. As colunas de turno de conversa (comoUserInput.Input.Text
) devem ser deixadas em branco nessa linha. Se você estiver usando tags, separe cada uma com um espaço. Exemplo:tag1 tag2 tag3
. Se você estiver usandoTestCaseConfigV2.StartResource
, adicione o prefixostart_flow:
oustart_playbook:
ao nome do recurso. Exemplo:start_flow:projects/p/locations/l/agents/a/flows/f
.
- Regra: esta linha precisa ter um valor na coluna
- Adicione uma rodada de 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 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.Text
eOrderedExpectations.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