Auf dieser Seite wird beschrieben, wie Sie Ihr Dataset für den Gen AI Evaluation Service vorbereiten.
Übersicht
Der Gen AI Evaluation Service erkennt und verarbeitet automatisch mehrere gängige Datenformate. Das bedeutet, dass Sie Ihre Daten oft unverändert verwenden können, ohne manuelle Konvertierungen durchführen zu müssen.
Die Felder, die Sie in Ihrem Dataset angeben müssen, hängen von Ihrem Ziel ab:
| Ziel | Erforderliche Daten | SDK-Workflow |
|---|---|---|
| Neue Antworten generieren und dann bewerten | prompt |
run_inference() → evaluate() |
| Vorhandene Antworten bewerten | prompt und response |
evaluate() |
| Neue Ergebnisse für die Ausführung von Agenten generieren und dann bewerten | prompt |
run_inference() → evaluate() |
| Vorhandene Antworten von Agenten und Zwischenereignisse bewerten | prompt, response und intermediate_events |
evaluate() |
Wenn Sie client.evals.evaluate() oder client.evals.create_evaluation_run() ausführen, sucht der Gen AI Evaluation Service automatisch nach den folgenden gängigen Feldern in Ihrem Dataset:
prompt: (Erforderlich) Die Eingabe für das Modell, das Sie bewerten möchten. Die besten Ergebnisse erzielen Sie, wenn Sie Beispiel-Prompts angeben, die die Arten von Eingaben darstellen, die Ihre Modelle in der Produktion verarbeiten.response: (Erforderlich) Die Ausgabe, die vom Modell oder der Anwendung generiert wurde, das/die bewertet wird.reference: (Optional) Die Ground Truth oder „goldene“ Antwort, mit der Sie die Antwort des Modells vergleichen können. Dieses Feld ist oft für berechnungsbasierte Messwerte wiebleuundrougeerforderlich.conversation_history: (Optional) Eine Liste der vorherigen Züge in einer Unterhaltung über mehrere Themen. Der Gen AI Evaluation Service extrahiert dieses Feld automatisch aus unterstützten Formaten. Weitere Informationen finden Sie unter Unterhaltungen über mehrere Themen verarbeiten.session_inputs: (Optional) Eingabe zum Initialisieren einer Sitzung zum Ausführen eines Agenten. Dies ist nur für den Workflowrun_inference()→evaluate()optional.intermediate_events: (Optional) Agent-Traces eines einzelnen Zugs in einer Agent-Ausführung, einschließlich Funktionsaufrufen, Funktionsantworten und Zwischenantworten des Modells. Dieses Feld ist für den Workflowrun_inference()→evaluate()nicht erforderlich.
Unterstützte Datenformate
Der Gen AI Evaluation Service unterstützt die folgenden Formate:
Pandas-DataFrame
Für einfache Bewertungen können Sie ein pandas.DataFrame verwenden. Der Gen AI Evaluation Service sucht nach gängigen Spaltennamen wie prompt, response und reference. Dieses Format ist vollständig abwärtskompatibel.
import pandas as pd
# Example DataFrame with prompts and ground truth references
prompts_df = pd.DataFrame({
"prompt": [
"What is the capital of France?",
"Who wrote 'Hamlet'?",
],
"reference": [
"Paris",
"William Shakespeare",
]
})
# You can use this DataFrame directly with run_inference or evaluate
eval_dataset = client.evals.run_inference(model="gemini-2.5-flash", src=prompts_df)
eval_result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[types.PrebuiltMetric.GENERAL_QUALITY]
)
eval_result.show()
Gemini-Batchvorhersageformat
Sie können die Ausgabe eines Gemini Enterprise Agent Platform-Batchvorhersagejobs direkt verwenden. Dabei handelt es sich in der Regel um JSONL-Dateien, die in Cloud Storage gespeichert sind. Jede Zeile enthält ein Anfrage- und ein Antwortobjekt. Der Gen AI Evaluation Service parst diese Struktur automatisch, um die Integration mit anderen Gemini Enterprise Agent Platform-Diensten zu ermöglichen.
Das folgende Beispiel zeigt eine einzelne Zeile in einer JSONL-Datei:
{"request": {"contents": [{"role": "user", "parts": [{"text": "Why is the sky blue?"}]}]}, "response": {"candidates": [{"content": {"role": "model", "parts": [{"text": "The sky appears blue to the human eye as a result of a phenomenon known as Rayleigh scattering."}]}}]}}
Sie können dann vorab generierte Antworten aus einem Batchjob direkt bewerten:
# Cloud Storage path to your batch prediction output file
batch_job_output_uri = "gs://path/to/your/batch_output.jsonl"
# Evaluate the pre-generated responses directly
eval_result = client.evals.evaluate(
dataset=batch_job_output_uri,
metrics=[types.PrebuiltMetric.GENERAL_QUALITY]
)
eval_result.show()
OpenAI-Chat-Completion-Format
Für die Bewertung oder den Vergleich mit Modellen von Drittanbietern wie OpenAI und Anthropic unterstützt der Gen AI Evaluation Service das OpenAI-Chat-Completion-Format. Sie können ein Dataset bereitstellen, in dem jede Zeile ein JSON-Objekt ist, das wie eine OpenAI API-Anfrage strukturiert ist. Der Gen AI Evaluation Service erkennt dieses Format automatisch.
Das folgende Beispiel zeigt eine einzelne Zeile in diesem Format:
{"request": {"messages": [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What's the capital of France?"}], "model": "gpt-4o"}}
Sie können diese Daten verwenden, um Antworten von einem Modell eines Drittanbieters zu generieren und die Antworten zu bewerten:
# Ensure your third-party API key is set
# e.g., os.environ['OPENAI_API_KEY'] = 'Your API Key'
openai_request_uri = "gs://path/to/your/openai_requests.jsonl"
# Generate responses using a LiteLLM-supported model string
openai_responses = client.evals.run_inference(
model="gpt-4o", # LiteLLM compatible model string
src=openai_request_uri,
)
# The resulting openai_responses object can then be evaluated
eval_result = client.evals.evaluate(
dataset=openai_responses,
metrics=[types.PrebuiltMetric.GENERAL_QUALITY]
)
eval_result.show()
Unterhaltungen über mehrere Themen verarbeiten
Der Gen AI Evaluation Service parst automatisch Daten aus Unterhaltungen über mehrere Themen aus unterstützten Formaten. Wenn Ihre Eingabedaten einen Verlauf von Unterhaltungen enthalten (z. B. im Feld request.contents im Gemini-Format oder request.messages im OpenAI-Format), identifiziert der Gen AI Evaluation Service die vorherigen Züge und verarbeitet sie als conversation_history.
Das bedeutet, dass Sie den aktuellen Prompt nicht manuell von der vorherigen Unterhaltung trennen müssen, da die Bewertungs-Messwerte den Unterhaltungsverlauf verwenden können, um den Kontext der Antwort des Modells zu verstehen.
Betrachten Sie das folgende Beispiel einer Unterhaltung über mehrere Themen im Gemini-Format:
{
"request": {
"contents": [
{"role": "user", "parts": [{"text": "I'm planning a trip to Paris."}]},
{"role": "model", "parts": [{"text": "That sounds wonderful! What time of year are you going?"}]},
{"role": "user", "parts": [{"text": "I'm thinking next spring. What are some must-see sights?"}]}
]
},
"response": {
"candidates": [
{"content": {"role": "model", "parts": [{"text": "For spring in Paris, you should definitely visit the Eiffel Tower, the Louvre Museum, and wander through Montmartre."}]}}
]
}
}
Die Unterhaltung über mehrere Themen wird automatisch so geparst:
prompt: Die letzte Nutzernachricht wird als aktueller Prompt identifiziert ({"role": "user", "parts": [{"text": "I'm thinking next spring. What are some must-see sights?"}]}).conversation_history: Die vorherigen Nachrichten werden automatisch extrahiert und als Unterhaltungsverlauf zur Verfügung gestellt ([{"role": "user", "parts": [{"text": "I'm planning a trip to Paris."}]}, {"role": "model", "parts": [{"text": "That sounds wonderful! What time of year are you going?"}]}]).response: Die Antwort des Modells wird aus dem Feldresponseübernommen ({"role": "model", "parts": [{"text": "For spring in Paris..."}]}).