Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Inviare query di test a modelli distribuiti, agenti prompt o agenti ospitati e valutare le risposte generate in fase di esecuzione.
Prerequisiti
- Completare i prerequisiti di valutazione cloud e la configurazione del client.
- Un dataset JSONL o CSV contenente query di input.
- Un modello distribuito, un agente basato su prompt o un agente ospitato da utilizzare come destinazione.
Gli esempi usano il client SDK configurato in Configurare il client SDK.
Valutare una destinazione del modello
Inviare query a un modello distribuito in fase di esecuzione. Valuta le risposte utilizzando il tipo di origine dati azure_ai_target_completions con una destinazione azure_ai_model. I dati di input contengono query. Il modello genera risposte, che verranno quindi valutate.
Importante
Prima di iniziare, completare la configurazione client e Preparare i dati di input.
Note
È possibile usare il router del modello come modello di destinazione. Il router del modello è supportato solo come destinazione di valutazione. Non può essere selezionato come modello per altre funzionalità di valutazione.
Definire il modello di messaggio e la destinazione
Il input_messages modello controlla la modalità di invio delle query al modello. Usare {{item.query}} per fare riferimento ai campi dei dati di input. Specificare il modello per valutare e facoltativi i parametri di campionamento:
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,
},
}
Configurare valutatori e mappature dei dati
Quando il modello genera risposte in fase di esecuzione, usare {{sample.output_text}} in data_mapping per fare riferimento all'output del modello. Usare {{item.field}} per fare riferimento ai campi dei dati di input.
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}}",
},
),
]
Creare una valutazione ed eseguire
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,
)
Per un esempio eseguibile completo, vedere sample_model_evaluation.py su GitHub. Per eseguire il polling per il completamento e interpretare i risultati, vedere Ottenere i risultati della valutazione cloud.
Suggerimento
Per aggiungere un'altra esecuzione di valutazione, usare lo stesso codice.
Valutare il target dell'agente
Invia query a un agente Foundry in fase di esecuzione e valuta le risposte usando il tipo di origine dati azure_ai_target_completions con una destinazione azure_ai_agent. Questo scenario funziona sia per gli agenti prompt sia per gli agenti ospitati.
Importante
Prima di iniziare, completare la configurazione client e Preparare i dati di input.
Suggerimento
Gli agenti ospitati che usano il protocollo di risposte funzionano con gli stessi esempi di codice illustrati di seguito. Per gli agenti ospitati che usano il protocollo di chiamata, il input_messages formato è diverso. Per informazioni dettagliate, vedere Protocollo chiamate dell'agente ospitato .
Definire il modello di messaggio e la destinazione
Il input_messages modello controlla la modalità di invio delle query all'agente. Usare {{item.query}} per fare riferimento ai campi dei dati di input. Specificare l'agente da valutare in base al nome:
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.
}
Configurare valutatori e mappature dei dati
Quando l'agente genera risposte in fase di esecuzione, usare {{sample.*}} le variabili in data_mapping per fare riferimento all'output dell'agente:
| Variabile | Description | Usare per |
|---|---|---|
{{sample.output_text}} |
Risposta di testo normale dell'agente. | Analizzatori che prevedono una risposta di stringa ( ad esempio , coherenceviolence). |
{{sample.output_items}} |
Output JSON strutturato dell'agente, incluse le invocazioni degli strumenti. | Analizzatori che necessitano di un contesto di interazione completo (ad esempio, task_adherence). |
{{item.field}} |
Un campo dei tuoi dati di input. | Campi di input come query o ground_truth. |
Suggerimento
Il query campo può contenere json strutturato, inclusi i messaggi di sistema e la cronologia delle conversazioni. Alcuni analizzatori di agenti, task_adherence ad esempio, usano questo contesto per un punteggio più accurato. Per informazioni dettagliate sulla formattazione delle query, vedere Analizzatori di agenti.
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}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="task_adherence",
evaluator_name="builtin.task_adherence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_items}}",
},
),
]
Creare una valutazione ed eseguire
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,
)
Per un esempio eseguibile completo, vedere sample_agent_evaluation.py in GitHub. Per eseguire il polling per il completamento e interpretare i risultati, vedere Ottenere i risultati della valutazione cloud.
Protocollo chiamate dell'agente ospitato
Gli agenti ospitati che usano il protocollo di invocazioni supportano lo stesso azure_ai_agent tipo di destinazione, ma usano un formato libero input_messages. Anziché il formato del modello strutturato, fornire un oggetto JSON mappato direttamente al corpo della richiesta dell'agente /invocations . Usa i segnaposto {{item.*}} per sostituire i campi nei dati di input.
Se un agente ospitato supporta sia le risposte che i protocolli di chiamata, per impostazione predefinita il servizio usa il protocollo di chiamata.
Definire il formato e la destinazione del messaggio
input_messages = {"message": "{{item.query}}"}
target = {
"type": "azure_ai_agent",
"name": "my-hosted-agent", # Replace with your hosted agent name
"version": "1",
}
Creare una valutazione ed eseguire
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,
)
La configurazione dell'analizzatore e i mapping dei dati sono uguali a per la valutazione dell'agente di richiesta. Usare {{sample.output_text}} per la risposta di testo dell'agente e {{sample.output_items}} per l'output strutturato completo, incluse le chiamate agli strumenti.