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

Prévia

Esse recurso está em Pré-lançamento público.

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

O monitoramento on-line é um aspecto crucial para garantir que seu agente esteja funcionando como pretendido com solicitações do mundo real. Usando o Notebook fornecido abaixo, o senhor pode executar a Avaliação de agentes continuamente nas solicitações atendidas por meio de um agent-serving endpoint. O Notebook gera um painel que exibe métricas de qualidade, bem como feedback do usuário (polegar para cima 👍 ou polegar para baixo 👎) para os resultados do seu agente em solicitações de produção. Esse feedback pode chegar por meio do aplicativo de revisão das partes interessadas ou do feedback API no endpoint de produção, que permite que o senhor capture as reações do usuário final. O painel permite que o senhor divida as métricas por diferentes dimensões, inclusive 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 resultados de menor qualidade). Além disso, você pode se aprofundar nas 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

Processe continuamente o tráfego de produção por meio da avaliação de agentes

O exemplo de Notebook a seguir ilustra como executar a Avaliação do agente na solicitação logs de um agente que atende endpoint. Para executar o Notebook, siga estes passos:

  • Importe o Notebook em seu site workspace (instruções). O senhor 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 na parte superior do Notebook importado.

    • O nome do endpoint 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 endpoints com alto volume de tráfego.

    • (Opcional) Uma pasta workspace para armazenar artefatos gerados (como dashboards). O site default é a casa da massa.

    • (Opcional) Uma lista de tópicos para categorizar as solicitações de entrada. A default é uma lista que consiste em um único tópico abrangente.

  • Clique em executar tudo no Notebook importado. Isso fará um processamento inicial de sua produção logs dentro de uma janela de 30 dias e inicializará o painel que resume as métricas de qualidade.

  • Clique em programar para criar um Job para executar o Notebook periodicamente. O Job processará de forma incremental sua produção logs e manterá o painel atualizado.

O Notebook requer serverless compute ou um cluster executando Databricks Runtime 15.2 ou acima. Ao monitorar continuamente o tráfego de produção em um endpoint com um grande número de solicitações, recomendamos que o senhor defina uma programação mais frequente. Por exemplo, uma programação por hora funcionaria bem para um site endpoint com mais de 10.000 solicitações por hora e uma taxa de amostragem de 10%.

execução Avaliação do agente no tráfego de produção Notebook

Abra o bloco de anotações em outra guia

Criar alerta sobre avaliação de métricas

Depois de programar o Notebook para ser executado periodicamente, o senhor pode adicionar um alerta para ser notificado quando a qualidade das métricas cair abaixo do esperado. Esses alertas são criados e usados da mesma forma que outros alertas do site Databricks SQL. Primeiro, crie uma consultaDatabricks SQL na tabela de solicitações de avaliação log gerada pelo exemplo do Notebook. O código a seguir mostra um exemplo de consulta na tabela de solicitações de avaliação, filtrando as solicitações da última hora:

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 alertaDatabricks SQL para avaliar a consulta em uma 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 geral de aprovação cair abaixo de 80%.

configuração de alerta de monitoramento on-line

Por default, uma notificação email é 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 que especialistas no assunto analisem as solicitações com feedback negativo (solicitações com o polegar para baixo na resposta ou recuperações). Para isso, o senhor adiciona logs específicos ao aplicativo de revisão para solicitar a revisão de um especialista.

O código a seguir mostra um exemplo de consulta na tabela assessment log 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 feedback negativo e as adiciona ao aplicativo de avaliaçã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 de agente.