Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Skicka testfrågor till driftsatta modeller, agenter som styrs med promptar eller värdhanterade agenter och utvärdera svaren som genereras under körning.
Förutsättningar
- Slutför kraven för molnutvärderingen och klientkonfigurationen.
- En JSONL- eller CSV-datauppsättning med indatafrågor.
- En distribuerad modell, fråga agent eller värdbaserad agent som ska användas som mål.
I exemplen används SDK-klienten som konfigurerats i Konfigurera SDK-klienten.
Utvärdera ett modellmål
Skicka förfrågningar till en driftsatt modell vid körning. Utvärdera svaren med datakälltypen azure_ai_target_completions och målet azure_ai_model. Dina indata innehåller frågor. Modellen genererar svar som du sedan utvärderar.
Important
Innan du börjar slutför du klientkonfigurationen och Förbered indata.
Note
Du kan använda modellroutern som målmodell. Modellrouter stöds endast som utvärderingsmål. Det kan inte väljas som en modell för någon annan utvärderingsfunktion.
Definiera meddelandemallen och målet
Mallen input_messages styr hur frågor skickas till modellen. Använd {{item.query}} för att referera till fält från dina indata. Ange den modell som ska utvärderas och valfria samplingsparametrar:
input_messages = {
"type": "template",
"template": [
{
"type": "message",
"role": "user",
"content": {
"type": "input_text",
"text": "{{item.query}}"
}
}
]
}
target = {
"type": "azure_ai_model",
"model": "gpt-5-mini",
"sampling_params": {
"top_p": 1.0,
"max_completion_tokens": 2048,
},
}
Konfigurera utvärderare och datamappningar
När modellen genererar svar vid körning använder du {{sample.output_text}} i data_mapping för att referera till modellens utdata. Använd {{item.field}} för att referera till fält från dina indata.
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
},
"required": ["query"],
},
include_sample_schema=True,
)
testing_criteria = [
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="coherence",
evaluator_name="builtin.coherence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
]
Skapa utvärdering och kör
eval_object = openai_client.evals.create(
name="Model Target Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_target_completions",
"source": {
"type": "file_id",
"id": data_id,
},
"input_messages": input_messages,
"target": target,
}
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="model-target-evaluation",
data_source=data_source,
)
Ett fullständigt körbart exempel finns i sample_model_evaluation.py på GitHub. Om du vill kontrollera om processen är slutförd och tolka resultaten, se Hämta resultat för molnutvärdering.
Tips/Råd
Om du vill lägga till ytterligare en utvärderingskörning använder du samma kod.
Utvärdera mål för en agent
Skicka frågor till en Foundry-agent vid körning och utvärdera svaren med datakälltypen azure_ai_target_completions och målet azure_ai_agent. Det här scenariot fungerar för både prompt-agenter och värdagenter.
Important
Innan du börjar slutför du klientkonfigurationen och Förbered indata.
Tips/Råd
Värdbaserade agenter som använder svarsprotokollet fungerar med samma kodexempel som visas här. För värdbaserade agenter som använder anropsprotokollet input_messages är formatet annorlunda. Mer information finns i anropsprotokollet för värdbaserade agenter .
Definiera meddelandemallen och målet
Mallen input_messages styr hur frågor skickas till agenten. Använd {{item.query}} för att referera till fält från dina indata. Ange agenten som ska utvärderas med namn:
input_messages = {
"type": "template",
"template": [
{
"type": "message",
"role": "developer",
"content": {
"type": "input_text",
"text": "You are a helpful assistant. Answer clearly and safely."
}
},
{
"type": "message",
"role": "user",
"content": {
"type": "input_text",
"text": "{{item.query}}"
}
}
]
}
target = {
"type": "azure_ai_agent",
"name": "my-agent",
"version": "1" # Optional. Uses latest version if omitted.
}
Konfigurera utvärderare och datamappningar
När agenten genererar svar under körtid använder du variablerna i {{sample.*}} och data_mapping för att referera till agentens utdata.
| Variabel | Beskrivning | Använd för |
|---|---|---|
{{sample.output_text}} |
Agentens oformaterade textsvar. | Utvärderare som förväntar sig ett strängsvar (till exempel coherence, violence). |
{{sample.output_items}} |
Agentens strukturerade JSON-utdata, inklusive verktygsanrop. | Utvärderare som behöver fullständig interaktionskontext (till exempel task_adherence). |
{{item.field}} |
Ett fält från dina indata. | Indatafält som query eller ground_truth. |
Tips/Råd
Fältet query kan innehålla strukturerad JSON, inklusive systemmeddelanden och konversationshistorik. Vissa agentutvärderingar, till exempel task_adherence använder den här kontexten för mer exakt bedömning. Mer information om frågeformatering finns i agentutvärderingar.
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
},
"required": ["query"],
},
include_sample_schema=True,
)
testing_criteria = [
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="coherence",
evaluator_name="builtin.coherence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
]
Skapa utvärdering och kör
eval_object = openai_client.evals.create(
name="Agent Target Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_target_completions",
"source": {
"type": "file_id",
"id": data_id,
},
"input_messages": input_messages,
"target": target,
}
agent_eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="agent-target-evaluation",
data_source=data_source,
)
Ett fullständigt körbart exempel finns i sample_agent_evaluation.py på GitHub. Om du vill kontrollera om processen är slutförd och tolka resultaten, se Hämta resultat för molnutvärdering.
Anropsprotokoll för värdbaserad agent
Värdbaserade agenter som använder anropsprotokollet stöder samma azure_ai_agent måltyp men använder ett frihandsformat input_messages . I stället för det strukturerade mallformatet anger du ett JSON-objekt som mappar direkt till agentens /invocations begärandetext. Använd {{item.*}} platshållare för att ersätta fält från dina indata.
Om en värdbaserad agent stöder både protokollen för svar och anrop använder tjänsten som standard anropsprotokollet.
Definiera meddelandeformatet och målet
input_messages = {"message": "{{item.query}}"}
target = {
"type": "azure_ai_agent",
"name": "my-hosted-agent", # Replace with your hosted agent name
"version": "1",
}
Skapa utvärdering och kör
eval_object = openai_client.evals.create(
name="Hosted Agent Invocations Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_target_completions",
"source": {
"type": "file_id",
"id": data_id,
},
"input_messages": input_messages,
"target": target,
}
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="hosted-agent-invocations-evaluation",
data_source=data_source,
)
Konfigurationen av utvärderaren och datamappningarna är desamma som för utvärdering av promptagenten. Använd {{sample.output_text}} för agentens textsvar och {{sample.output_items}} för fullständiga strukturerade utdata, inklusive verktygsanrop.