Esquema de entrada de avaliação do agente

Prévia

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

Este artigo explica o esquema de entrada exigido pela Avaliação de agentes para avaliar a qualidade, o custo e a latência do seu aplicativo.

  • Durante o desenvolvimento, a avaliação ocorre off-line e um conjunto de avaliação é uma entrada necessária para a Avaliação do Agente.

  • Quando um aplicativo está em produção, todas as entradas para a Avaliação de agentes vêm das tabelas de inferência ou dos logs de produção.

O esquema de entrada é idêntico para avaliações on-line e off-line.

Para obter informações gerais sobre conjuntos de avaliação, consulte Conjuntos de avaliação.

Esquema de entrada de avaliação

A tabela a seguir mostra o esquema de entrada da Avaliação do Agente.

Coluna

Tipo de dados

Descrição

Aplicativo passado como argumento de entrada

Saídas geradas fornecidas anteriormente

request_id

string

Identificador único da solicitação.

Opcional

Opcional

solicitação

Consulte Esquema para solicitação.

Entrada para o aplicativo para avaliar a pergunta ou consulta do usuário. Por exemplo, “O que é RAG?”

Obrigatório

Obrigatório

expected_retrieved_context

matriz

Matriz de objetos que contém o contexto recuperado esperado para a solicitação (se o aplicativo incluir um passo de recuperação). Esquema de matriz

Opcional

Opcional

expected_response

string

Resposta verdadeira (correta) para a solicitação de entrada. Consulte as diretrizes de expected_response.

Opcional

Opcional

resposta

string

Resposta gerada pelo aplicativo que está sendo avaliado.

Gerado pela avaliação do agente

Opcional. Se não for fornecido, será derivado do Trace. É necessário response ou trace.

retrieved_context

matriz

Resultados de recuperação gerados pelo recuperador no aplicativo que está sendo avaliado. Se houver vários passos de recuperação no aplicativo, este será o resultado da recuperação do último passo (cronologicamente no rastreamento). Esquema de matriz

Gerado pela avaliação do agente

Opcional. Se não for fornecido, será derivado do rastreamento fornecido.

trace

Cadeia de caracteres JSON do MLflow Trace

MLflow Trace da execução do aplicativo na solicitação correspondente.

Gerado pela avaliação do agente

Opcional. É necessário response ou trace.

expected_response diretrizes

A verdade básica expected_response deve incluir apenas o conjunto mínimo de fatos necessários para uma resposta correta. Se você copiar uma resposta de outra fonte, certifique-se de editá-la para remover qualquer texto que não seja necessário para que uma resposta seja considerada correta.

Incluir apenas as informações necessárias e deixar de fora as informações que não são estritamente necessárias na resposta permite que a Avaliação de agentes forneça um sinal mais robusto sobre a qualidade do resultado.

Esquema para solicitação

O esquema de solicitação pode ser um dos seguintes:

  • Uma corda simples. Esse formato suporta apenas conversas em um único turno.

  • Um campo messages que segue o esquema de conclusão de bate-papo do OpenAI e pode codificar a conversa completa.

  • Um campo de cadeias de caracteres query para a solicitação mais recente e um campo opcional history que codifica os turnos anteriores da conversa.

Para aplicativos de bate-papo com várias voltas, use a segunda ou terceira opção acima.

O exemplo a seguir mostra todas as três opções na mesma coluna request da avaliação dataset:

import pandas as pd

data = {
  "request": [

      # Plain string
      "What is the difference between reduceByKey and groupByKey in Spark?",

      # Using the `messages` field for a single- or multi-turn chat
      {
          "messages": [
              {
                  "role": "user",
                  "content": "How can you minimize data shuffling in Spark?"
              }
          ]
      },

      # Using the query and history fields for a single- or multi-turn chat
      {
          "query": "Explain broadcast variables in Spark. How do they enhance performance?",
          "history": [
              {
                  "role": "user",
                  "content": "What are broadcast variables?"
              },
              {
                  "role": "assistant",
                  "content": "Broadcast variables allow the programmer to keep a read-only variable cached on each machine."
              }
          ]
      }
  ],

  "expected_response": [
    "expected response for first question",
    "expected response for second question",
    "expected response for third question"
  ]
}

eval_dataset = pd.DataFrame(data)

Esquema para matrizes na entrada de avaliação

O esquema das matrizes expected_retrieved_context e retrieved_context é apresentado na tabela a seguir:

Coluna

Tipo de dados

Descrição

Aplicativo passado como argumento de entrada

Saídas geradas fornecidas anteriormente

conteúdo

string

Conteúdo do contexto recuperado. Cadeia de caracteres em qualquer formato, como HTML, texto sem formatação ou Markdown.

Opcional

Opcional

doc_uri

string

Identificador exclusivo (URI) do documento pai de onde veio a parte.

Obrigatório

Obrigatório

computar métricas

As colunas da tabela a seguir indicam os dados incluídos na entrada e indica que as métricas são compatíveis quando esses dados são fornecidos.

Para obter detalhes sobre o que essas métricas medem, consulte Como a qualidade, o custo e a latência são avaliados pela Avaliação de agentes.

Métricas calculadas

request

request e expected_response

request, expected_response, e expected_retrieved_context

response/llm_judged/relevance_to_query/rating

response/llm_judged/safety/rating

response/llm_judged/groundedness/rating

retrieval/llm_judged/chunk_relevance_precision

agent/total_token_count

agent/input_token_count

agent/output_token_count

response/llm_judged/correctness/rating

retrieval/llm_judged/context_sufficiency/rating

retrieval/ground_truth/document_recall