Partilhar via


Como monitorar a qualidade do seu agente no tráfego de produção

Importante

Esta funcionalidade está em Pré-visualização Pública.

Este artigo descreve como monitorar a qualidade dos agentes implantados no tráfego de produção usando o Mosaic AI Agent Evaluation.

O monitoramento on-line é um aspeto crucial para garantir que seu agente esteja trabalhando como pretendido com solicitações do mundo real. Usando o bloco de anotações fornecido abaixo, você pode executar a Avaliação do Agente continuamente nas solicitações atendidas por meio de um ponto de extremidade de atendimento ao agente. O bloco de anotações gera um painel que exibe métricas de qualidade, bem como feedback do usuário (polegar para cima 👍 ou polegar para baixo 👎) para as saídas do seu agente em solicitações de produção. Esse feedback pode chegar por meio do aplicativo de avaliação das partes interessadas ou da API de feedback sobre pontos de extremidade de produção que permite capturar as reações do usuário final. O painel permite dividir as métricas por diferentes dimensões, incluindo por tempo, feedback do usuário, status de aprovação/reprovação e tópico da solicitação de entrada (por exemplo, para entender se tópicos específicos estão correlacionados com saídas de qualidade inferior). Além disso, você pode se aprofundar em solicitações individuais com respostas de baixa qualidade para depurá-las ainda mais. Todos os artefatos, como o painel, são totalmente personalizáveis.

Painel de monitoramento on-line

Requisitos

Processar continuamente o tráfego de produção através da Avaliação de Agentes

O bloco de anotações de exemplo a seguir ilustra como executar a Avaliação do Agente nos logs de solicitação de um ponto de extremidade de serviço do agente. Para executar o bloco de notas, siga estes passos:

  • Importe o bloco de notas na sua área de trabalho (instruções). Você pode clicar no botão "Copiar link para importação" abaixo para obter um URL para a importação.
  • Preencha os parâmetros necessários no topo do notebook importado.
    • O nome do ponto de extremidade de serviço do agente implantado.
    • Uma taxa de amostragem entre 0,0 e 1,0 para solicitações de amostra. Use uma taxa mais baixa para pontos finais com grandes quantidades de tráfego.
    • (Opcional) Uma pasta de espaço de trabalho para armazenar artefatos gerados (como painéis). O padrão é a pasta base.
    • (Opcional) Uma lista de tópicos para categorizar as solicitações de entrada. O padrão é uma lista que consiste em um único tópico abrangente.
  • Clique em Executar tudo no bloco de anotações importado. Isso fará um processamento inicial de seus logs de produção dentro de uma janela de 30 dias e inicializará o painel que resume as métricas de qualidade.
  • Clique em Agendar para criar um trabalho para executar o bloco de anotações periodicamente. O trabalho processará incrementalmente seus logs de produção e manterá o painel atualizado.

O notebook requer computação sem servidor ou um cluster executando o Databricks Runtime 15.2 ou superior. Ao monitorar continuamente o tráfego de produção em endpoints com um grande número de solicitações, recomendamos definir uma programação mais frequente. Por exemplo, uma programação horária funcionaria bem para um ponto final com mais de 10.000 solicitações por hora e uma taxa de amostragem de 10%.

Executar avaliação de agente no bloco de anotações de tráfego de produção

Obter bloco de notas

Aplique diretrizes nas respostas do seu agente

O juiz de aderência à diretriz garante que as saídas do seu modelo estejam de acordo com as diretrizes fornecidas. Você pode escrever essas diretrizes globais conforme mostrado no bloco de anotações fornecido acima ou da seguinte maneira:

mlflow.evaluate(
    ...,
    evaluator_config={
        "databricks-agent": {
            "global_guidelines": [
                "The response must be in English",
                "The response must be clear, coherent, and concise",
            ],
        }
    }
)

Os resultados deste avaliador serão inseridos na tabela de logs de solicitações avaliadas gerada pelo notebook de exemplo (eval_requests_log_table_name no notebook) e o dashboard pode ser personalizado para exibir os resultados do avaliador ao longo do tempo.

Criar alertas sobre métricas de avaliação

Depois de agendar a execução periódica do bloco de anotações, você pode adicionar alertas para ser notificado quando as métricas de qualidade caírem abaixo do esperado. Esses alertas são criados e usados da mesma forma que outros alertas SQL do Databricks. Primeiro, crie um de consulta SQL Databricks na tabela de log de solicitações de avaliação gerada pelo bloco de anotações de exemplo. O código a seguir mostra um exemplo de consulta na tabela de solicitações de avaliação, filtrando solicitações da hora anterior:

SELECT
  `date`,
  AVG(pass_indicator) as avg_pass_rate
FROM (
  SELECT
    *,
    CASE
      WHEN `response/overall_assessment/rating` = 'yes' THEN 1
      WHEN `response/overall_assessment/rating` = 'no' THEN 0
      ELSE NULL
    END AS pass_indicator
  -- The eval requests log table is generated by the example notebook
  FROM {eval_requests_log_table_name}
  WHERE `date` >= CURRENT_TIMESTAMP() - INTERVAL 1 DAY
)
GROUP BY ALL

Em seguida, crie um alerta Databricks SQL para avaliar a consulta na frequência desejada e envie uma notificação se o alerta for acionado. A imagem a seguir mostra um exemplo de configuração para enviar um alerta quando a taxa de aprovação geral cai abaixo de 80%.

Configuração de alerta de monitoramento on-line

Por padrão, uma notificação por e-mail é enviada. Você também pode configurar um webhook ou enviar notificações para outros aplicativos, como Slack ou PagerDuty.

Adicionar logs de produção selecionados ao aplicativo de revisão para revisão humana

À medida que os usuários fornecem feedback sobre suas solicitações, você pode solicitar a especialistas no assunto que analisem as solicitações com feedback negativo (solicitações com o polegar para baixo na resposta ou recuperações). Para fazer isso, você adiciona logs específicos ao aplicativo de revisão para solicitar revisão de especialistas.

O código a seguir mostra um exemplo de consulta na tabela de log de avaliação para recuperar a avaliação humana mais recente por ID de solicitação e ID de origem:

with ranked_logs as (
  select
      `timestamp`,
      request_id,
      source.id as source_id,
      text_assessment.ratings["answer_correct"]["value"] as text_rating,
      retrieval_assessment.ratings["answer_correct"]["value"] as retrieval_rating,
      retrieval_assessment.position as retrieval_position,
      row_number() over (
        partition by request_id, source.id, retrieval_assessment.position order by `timestamp` desc
      ) as rank
  from {assessment_log_table_name}
)
select
    request_id,
    source_id,
    text_rating,
    retrieval_rating
from ranked_logs
where rank = 1
order by `timestamp` desc

No código a seguir, substitua ... na linha human_ratings_query = "..." por uma consulta semelhante à acima. Em seguida, o código a seguir extrai solicitações com comentários negativos e as adiciona ao aplicativo de revisão:

from databricks import agents

human_ratings_query = "..."
human_ratings_df = spark.sql(human_ratings_query).toPandas()

# Filter out the positive ratings, leaving only negative and "IDK" ratings
negative_ratings_df = human_ratings_df[
  (human_ratings_df["text_rating"] != "positive") | (human_ratings_df["retrieval_rating"] != "positive")
]
negative_ratings_request_ids = negative_ratings_df["request_id"].drop_duplicates().to_list()

agents.enable_trace_reviews(
  model_name=YOUR_MODEL_NAME,
  request_ids=negative_ratings_request_ids,
)

Para obter mais detalhes sobre o aplicativo de avaliação, consulte Obter feedback sobre a qualidade de um aplicativo agentic.