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.
Requisitos
Os recursos assistivos de IA desenvolvidos por parceiros devem estar habilitados para seu espaço de trabalho.
As tabelas de inferência devem estar ativadas no endpoint que está servindo o agente.
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%.
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%.
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.