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.
Ogni riga di un file JSONL di valutazione contiene un caso di test di valutazione. Lo scenario di valutazione determina la colonna primaria richiesta, mentre gli analizzatori selezionati possono richiedere colonne di supporto.
| Scenario di valutazione | Colonna primaria richiesta | Le colonne aggiuntive dipendono da |
|---|---|---|
| Valutare un'interazione esistente | messages |
Analizzatori selezionati. |
| Valutare un input e un output separati archiviati |
query, response |
Analizzatori selezionati. |
| Valutare un modello o un target dell'agente | Input immesso nella colonna messages o query; Foundry genera la risposta |
Analizzatori selezionati. |
| Valutare le conversazioni simulate | test_case_description |
Linee guida facoltative per la simulazione, ad esempio desired_num_turns. |
I requisiti aggiuntivi dipendono dagli analizzatori selezionati. Ad esempio, un valutatore di somiglianza testuale può richiedere context, il radicamento può richiedere ground_truth quando query e response sono stringhe e un valutatore di agenti può richiedere tool_definitions. Per i requisiti dell'analizzatore, vedere Analizzatori predefiniti.
Le valutazioni basate su tracce esistenti, ID di risposta o query sintetiche generate non richiedono un set di dati di input.
Colonne standard
Le colonne standard dipendono dal fatto che la valutazione usi dati di interazione del modello o agente o simulazione di conversazioni.
Colonne di valutazione del modello e dell'agente
Usare un formato di interazione per ogni test case: la messages colonna o le colonne separate query e response .
| Column | Obbligatorio quando | Che cosa contiene |
|---|---|---|
messages |
Uso del messages formato per un'interazione archiviata, un modello o un input di destinazione dell'agente |
Per le interazioni archiviate, i messaggi di input e output. Per una destinazione del modello o dell'agente, i messaggi di input inviati da Foundry alla destinazione per generare una risposta. I messaggi possono includere istruzioni di sistema, cronologia conversazioni, contenuto di testo digitato, chiamate di strumenti e risultati degli strumenti. |
query |
Utilizzo del formato di query e risposta separati | L'input e l'eventuale cronologia delle interazioni, forniti come stringa o array di messaggi, utilizzati come contesto per assegnare un punteggio a response. |
response |
Valutazione di una risposta archiviata; non necessario per un modello o una destinazione dell'agente | Risposta valutata. |
ground_truth |
Un analizzatore confronta l'output con una risposta di riferimento | Risposta prevista o di riferimento. |
tool_definitions |
Un analizzatore richiede gli schemi degli strumenti disponibili per l'agente | Nomi, descrizioni e schemi di parametri degli strumenti. Questa colonna è facoltativa per la maggior parte delle valutazioni. |
context |
Un analizzatore specifico richiede un contesto di supporto separato | Informazioni di supporto utilizzate principalmente con i valori stringa query e response quando il contesto necessario non è già presente nei messaggi. |
Colonne di simulazione delle conversazioni
| Column | Obbligatorio | Che cosa contiene |
|---|---|---|
test_case_description |
Sì | La situazione, l'obiettivo, i vincoli e il comportamento dell'utente che il simulatore deve simulare. |
desired_num_turns |
No | Indicazioni per la lunghezza prevista della conversazione simulata. |
Formato messaggi
La messages colonna è una matrice. Ogni messaggio identifica un ruolo e il relativo contenuto. Una riga può contenere uno scambio o una conversazione completa a più turni.
L'esempio illustrativo seguente contiene una breve interazione con l'assistenza per l'account:
{
"messages": [
{"role": "system", "content": "You are an account support assistant."},
{"role": "user", "content": "I can't sign in to my account."},
{"role": "assistant", "content": "What error message do you see?"},
{"role": "user", "content": "It says my password is incorrect."},
{"role": "assistant", "content": "Use the password-reset link on the sign-in page. If the reset email doesn't arrive, check your spam folder or contact account support."}
]
}
Questo esempio include una risposta dell'agente memorizzata, quindi il messaggio finale ha il ruolo assistant. Per un modello o un agente di destinazione, chiudere l'array messages con un messaggio user. Foundry invia i messaggi alla destinazione, genera la risposta dell'assistente successivo e valuta tale risposta.
Per la valutazione del singolo turno, i messaggi precedenti forniscono il contesto per la risposta oggetto della valutazione. In questo esempio, un analizzatore può assegnare un punteggio alle indicazioni finali per la reimpostazione della password usando i messaggi precedenti come contesto. Per la valutazione a livello di conversazione, un analizzatore assegna un punteggio all'interazione completa.
L'impostazione evaluation_level nell'esecuzione seleziona il livello di valutazione; la riga messages rimane invariata.
Per altre informazioni, vedere Scegliere un livello di valutazione.
Struttura dei messaggi
Ogni messaggio ha un role e content. Il content valore può essere una stringa o una matrice di elementi di contenuto tipizzato. I messaggi dei risultati dello strumento usano tool_call_id anche per identificare la chiamata allo strumento corrispondente.
I messaggi di testo sono allineati alla struttura dei messaggi Risposte OpenAI.
I messaggi di input possono usare input_text e l'output dell'assistente può usare output_text. La valutazione di Foundry supporta anche la forma abbreviata text e gli elementi di contenuto normalizzati tool_call e tool_result illustrati in questo articolo.
[
{
"role": "developer" | "system" | "user" | "assistant" | "tool",
"tool_call_id": "string", // For role "tool"
"content": "string" | [ // String or content-item array
{
"type": "text" | "input_text" | "output_text" | "tool_call" | "tool_result",
"text": "string", // For text content
"tool_call_id": "string", // When type is tool_call
"name": "string", // Tool name for tool_call
"arguments": { ... }, // Tool arguments for tool_call
"tool_result": { ... } // Result for tool_result
}
]
}
]
| Ruolo | Descrizione |
|---|---|
developer |
Istruzioni dell'applicazione che hanno la precedenza sui messaggi utente. |
system |
Istruzioni dell'agente. |
user |
Messaggi utente e richieste. |
assistant |
Risposte dell'agente, incluse le chiamate agli strumenti. |
tool |
Risultati dell'esecuzione del tool. |
Messaggi con matrici di contenuto
Il content valore può anche essere una matrice di elementi di contenuto tipizzato anziché una stringa. Questo esempio usa l'API Responses e i tipi input_text e output_text:
{
"messages": [
{
"role": "developer",
"content": [
{"type": "input_text", "text": "You are an account support assistant."}
]
},
{
"role": "user",
"content": [
{"type": "input_text", "text": "I can't sign in to my account."}
]
},
{
"role": "assistant",
"content": [
{"type": "output_text", "text": "What error message do you see?"}
]
}
]
}
Messaggi con chiamate agli strumenti
Questa variante dell'esempio in esecuzione include una chiamata allo strumento e il relativo risultato:
{
"messages": [
{"role": "system", "content": "You are an account support assistant."},
{"role": "user", "content": "I can't sign in to my account."},
{"role": "assistant", "content": [{"type": "tool_call", "tool_call_id": "call_123", "name": "get_sign_in_guidance", "arguments": {"error": "incorrect password"}}]},
{"role": "tool", "tool_call_id": "call_123", "content": [{"type": "tool_result", "tool_result": {"recommended_action": "password reset"}}]},
{"role": "assistant", "content": [{"type": "text", "text": "Use the password-reset link on the sign-in page. If the reset email doesn't arrive, check your spam folder or contact account support."}]}
]
}
Colonne specifiche del valutatore
La maggior parte delle valutazioni richiede solo la colonna di interazione primaria. Aggiungere colonne di supporto quando il valutatore selezionato le richiede.
Verità di base
ground_truth è una stringa contenente la risposta prevista o di riferimento.
Includerlo quando un analizzatore confronta l'output del modello o dell'agente con una risposta nota.
{
"messages": [
{"role": "user", "content": "I can't sign in to my account."},
{"role": "assistant", "content": "Use the password-reset link on the sign-in page."}
],
"ground_truth": "Direct the user to reset their password from the sign-in page."
}
Definizioni degli strumenti
tool_definitions descrive gli strumenti disponibili per l'agente. L'messages array mostra ciò che l'agente ha chiamato.
tool_definitions fornisce i nomi, le descrizioni e gli schemi dei parametri di tutti gli strumenti che l'agente può usare.
Includere questa colonna quando un analizzatore deve confrontare il comportamento degli strumenti con gli strumenti disponibili.
{
"messages": [
{"role": "user", "content": "I can't sign in to my account."},
{"role": "assistant", "content": [{"type": "tool_call", "tool_call_id": "call_123", "name": "get_sign_in_guidance", "arguments": {"error": "incorrect password"}}]},
{"role": "tool", "tool_call_id": "call_123", "content": [{"type": "tool_result", "tool_result": {"recommended_action": "password reset"}}]},
{"role": "assistant", "content": "Use the password-reset link on the sign-in page."}
],
"tool_definitions": [
{
"name": "get_sign_in_guidance",
"description": "Get troubleshooting guidance for a sign-in error.",
"parameters": {
"type": "object",
"properties": {
"error": {"type": "string"}
},
"required": ["error"]
}
}
]
}
Per lo schema completo, vedere Formato delle definizioni degli strumenti.
Contesto
context contiene informazioni di supporto usate per valutare una risposta. Questa colonna è particolarmente utile con stringhe query e response valori quando le informazioni necessarie non sono già rappresentate nella cronologia dei messaggi. Per informazioni dettagliate su questa rappresentazione, vedere Separare il formato di query e risposta.
Ad esempio, un valutatore della fondatezza può usare context come materiale di riferimento che dovrebbe supportare la risposta:
{
"query": "How can I reset my password?",
"response": "Use the password-reset link on the sign-in page.",
"context": "Users can reset their password from the sign-in page."
}
Simulazione conversazioni
Un seed di simulazione, detto anche scenario di caso di test, descrive una situazione che il simulatore deve simulare impersonando l'utente.
test_case_description è l'unica colonna obbligatoria.
desired_num_turns è una guida di simulazione facoltativa.
Il seed seguente continua l'esempio di accesso all'account:
{
"test_case_description": "Act as a user who can't sign in and initially provides little detail. After the agent asks a clarifying question, explain that your password is being rejected. Continue until the agent gives clear password-reset guidance.",
"desired_num_turns": 4
}
Foundry usa un simulatore per svolgere il ruolo dell'utente e interagire con l'agente di destinazione. I valutatori a livello di conversazione valutano quindi la conversazione simulata, non la riga del seed.
Per la procedura di simulazione, vedere Simulare le conversazioni. Per generare righe di inizializzazione anziché crearle, vedere Generare un set di dati di inizializzazione di simulazione.
Formato di query e risposta separato
Alcuni valutatori e flussi di lavoro utilizzano colonne separate response e query.
Questo formato rimane supportato. Entrambe le colonne possono contenere stringhe o matrici di messaggi che usano la stessa struttura di messages.
Usa valori di tipo stringa per un semplice caso di test a singolo turno che non richiede la cronologia della conversazione o i dettagli delle chiamate agli strumenti:
{"query":"I can't sign in to my account.","response":"Use the password-reset link on the sign-in page."}
Se query è una matrice di messaggi, può includere istruzioni di sistema, turni precedenti, chiamate agli strumenti e risultati degli strumenti. I valutatori usano questo storico come contesto quando assegnano un punteggio a response.
{
"query": [
{"role": "system", "content": "You are an account support assistant."},
{"role": "user", "content": "I can't sign in."},
{"role": "assistant", "content": "What error do you see?"},
{"role": "user", "content": "It says my password is incorrect."}
],
"response": [
{"role": "assistant", "content": "Use the password-reset link on the sign-in page."}
]
}
Quando string query e response i valori richiedono informazioni di supporto separate, aggiungere una context colonna.
Se un'esecuzione di valutazione invoca un modello o un target dell'agente, Foundry genera una nuova risposta per ogni input. Ogni response già memorizzato nella riga viene ignorato.
CSV è supportato anche per semplici righe response e query basate su stringhe. Vedere Valutare un set di dati CSV.
Quando è necessario un mapping dei dati
È possibile omettere data_mapping quando un analizzatore compatibile usa le colonne standard nel set di dati. Aggiungere una mappatura nei seguenti casi:
- Il set di dati usa un nome diverso, ad esempio
questionanzichéquery. - Una destinazione modello o agente genera testo in fase di esecuzione e l'analizzatore richiede una risposta di testo. Ad esempio, la coerenza richiede che il mapping della risposta da
{{sample.output_text}}. - Una destinazione dell'agente genera un output strutturato e il valutatore richiede chiamate degli strumenti o altri elementi strutturati. Ad esempio, l'aderenza delle attività richiede che il mapping della risposta da
{{sample.output_items}}. - Un file CSV usa intestazioni di colonna non standard.
Per la sintassi di mapping di {{item.*}} e {{sample.*}} con esempi eseguibili, vedi Configurare i valutatori e i mapping dei dati.
Per scegliere un flusso di lavoro complessivo, vedere Eseguire valutazioni dall'SDK.
Passo successivo
Configura un'esecuzione di valutazione che utilizza il tuo set di dati: