Schema van de gegevensset voor evaluatie in Microsoft Foundry

Elke regel in een JSONL-evaluatiebestand bevat één evaluatietestcase. Het evaluatiescenario bepaalt de primaire vereiste kolom, terwijl de geselecteerde evaluators ondersteunende kolommen kunnen vereisen.

Evaluatiescenario Primair verplichte kolom Aanvullende kolommen zijn afhankelijk van
Een bestaande interactie evalueren messages De geselecteerde evaluators.
Een opgeslagen afzonderlijke invoer en uitvoer evalueren query, response De geselecteerde evaluators.
Het doel van een model of agent evalueren Invoer die is vastgelegd in de messages of query kolom; Foundry genereert het antwoord De geselecteerde evaluators.
Gesimuleerde gesprekken evalueren test_case_description Optionele simulatierichtlijnen, zoals desired_num_turns.

Aanvullende vereisten zijn afhankelijk van de geselecteerde evaluators. Een tekstuele gelijkenis-evaluator kan bijvoorbeeld vereisen ground_truth, aarding kan vereisen context wanneer query en response tekenreeksen zijn en een agent evaluator kan vereisen tool_definitions. Zie Ingebouwde evaluatorvereisten voor vereisten voor evaluatoren.

Evaluaties op basis van bestaande traceringen, antwoord-id's of gegenereerde synthetische query's vereisen geen invoergegevensset.

Standaardkolommen

De standaardkolommen zijn afhankelijk van het feit of de evaluatie gebruikmaakt van model- of agentinteractiegegevens of gesprekssimulatie.

Kolommen voor model- en agentevaluatie

Gebruik één interactie-indeling voor elke testcase: de messages kolom of de afzonderlijke query en response kolommen.

Kolom Vereist wanneer Wat het bevat
messages De indeling messages gebruiken voor een opgeslagen interactie of doelinvoer voor een model of agent Voor opgeslagen interacties, invoer- en uitvoerberichten. Voer voor een model- of agentdoel de berichten in die Foundry naar het doel stuurt om een antwoord te genereren. Berichten kunnen systeeminstructies, gespreksgeschiedenis, getypte tekstinhoud, tooloproepen en resultaten van hulpprogramma's bevatten.
query De afzonderlijke query- en antwoordindeling gebruiken De invoer en elke interactiegeschiedenis, geleverd als een tekenreeks of berichtmatrix, gebruikt als context bij het scoren response.
response Een opgeslagen reactie evalueren; niet vereist voor een model- of agentdoel Het antwoord dat wordt geëvalueerd.
ground_truth Een beoordelaar vergelijkt de uitvoer met een referentieantwoord Het verwachte antwoord of het referentieantwoord.
tool_definitions Een evaluator vereist de schema's van hulpprogramma's die beschikbaar zijn voor de agent Namen, beschrijvingen en parameterschema’s van tools. Deze kolom is optioneel voor de meeste evaluaties.
context Een specifieke evaluator vereist afzonderlijke ondersteunende context Aanvullende informatie die voornamelijk wordt gebruikt bij tekenreekswaarden query en response wanneer de benodigde context nog niet in berichten is opgenomen.

Kolommen voor gesprekssimulatie

Kolom Required Wat het bevat
test_case_description Yes De situatie, het doel, de beperkingen en het gedrag van de gebruiker die de simulator moet nabootsen.
desired_num_turns Nee. Richtlijnen voor de verwachte lengte van het gesimuleerde gesprek.

Berichtindeling

De messages kolom is een matrix. Elk bericht identificeert een rol en de inhoud ervan. Een rij kan één uitwisseling of een volledig gesprek met meerdere beurten bevatten.

Het volgende actieve voorbeeld bevat een korte interactie voor accountondersteuning:

{
  "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."}
  ]
}

Dit voorbeeld bevat een opgeslagen reactie van een agent, dus het uiteindelijke bericht heeft de rol assistant. Voor een model- of agentdoel beëindigt u de messages matrix met een user bericht. Foundry verzendt de berichten naar het doel, genereert het volgende antwoord van de assistent en evalueert dat antwoord.

Voor evaluatie op beurtniveau bieden voorgaande berichten context voor het antwoord dat wordt beoordeeld. In dit voorbeeld kan een evaluator de laatste richtlijnen voor wachtwoordherstel beoordelen met behulp van de voorgaande berichten als context. Voor evaluatie op gespreksniveau beoordeelt een evaluator de volledige interactie. De evaluation_level instelling voor de uitvoering selecteert het scoreniveau. De messages rij blijft hetzelfde.

Zie Een evaluatieniveau kiezen voor meer informatie.

Berichtstructuur

Elk bericht heeft een role en content. De content waarde kan een tekenreeks of een matrix van getypte inhoudsitems zijn. Berichten met hulpprogrammaresultaten worden ook gebruikt tool_call_id om de bijbehorende hulpprogramma-aanroep te identificeren.

Tekstberichten komen overeen met de berichtstructuur van OpenAI Responses. Invoerberichten kunnen worden gebruikt input_texten assistentuitvoer kan worden gebruikt output_text. Foundry-evaluatie ondersteunt ook de verkorte notatie text en de genormaliseerde inhoudselementen tool_call en tool_result die in dit artikel worden getoond.

[
  {
    "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
      }
    ]
  }
]
Role Description
developer Toepassingsinstructies die voorrang hebben op gebruikersberichten.
system Instructies voor de agent
user Gebruikersberichten en aanvragen.
assistant Agentreacties, inclusief hulpprogramma-aanroepen.
tool Resultaten van de uitvoering van tools.

Berichten met inhoudsmatrices

De content waarde kan ook een matrix van getypte inhoudsitems zijn in plaats van een tekenreeks. In dit voorbeeld worden de Antwoorden-API input_text en output_text typen gebruikt:

{
  "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?"}
      ]
    }
  ]
}

Berichten met toolaanroepen

Deze variatie van het actieve voorbeeld bevat een aanroep van een hulpprogramma en het resultaat:

{
  "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."}]}
  ]
}

Beoordelaarspecifieke kolommen

De meeste evaluaties hebben alleen de primaire interactiekolom nodig. Voeg ondersteunende kolommen toe wanneer een geselecteerde evaluator deze vereist.

Grondwaarheid

ground_truth is een tekenreeks die het verwachte antwoord of het referentieantwoord bevat. Neem deze op wanneer een evaluator het model of de agentuitvoer vergelijkt met een bekend antwoord.

{
  "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."
}

Tooldefinities

tool_definitions beschrijft de hulpprogramma's die beschikbaar zijn voor de agent. De messages matrix laat zien wat de agent heeft aangeroepen. tool_definitions levert de namen, beschrijvingen en parameterschema's van alle hulpprogramma's die de agent kan gebruiken.

Neem deze kolom op wanneer een evaluator het gedrag van het hulpprogramma moet vergelijken met de beschikbare hulpprogramma's.

{
  "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"]
      }
    }
  ]
}

Zie indeling voor hulpprogrammadefinities voor het volledige schema.

Context

context bevat ondersteunende informatie die wordt gebruikt om een antwoord te evalueren. Deze kolom is voornamelijk handig met tekenreeks query en response waarden wanneer de benodigde informatie nog niet wordt weergegeven in de berichtengeschiedenis. Zie Afzonderlijke indeling voor query's en antwoorden voor meer informatie over deze weergave.

Een groundedness-evaluator kan bijvoorbeeld context gebruiken als bronmateriaal dat het antwoord moet onderbouwen:

{
  "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."
}

Gesprekssimulatie

Een simulatie-seed, ook wel een testcasescenario genoemd, beschrijft een situatie waarbij de simulator zich als de gebruiker moet gedragen. test_case_description is de enige vereiste kolom. desired_num_turns zijn optionele richtlijnen voor simulatie.

De volgende seed bouwt voort op het voorbeeld voor het aanmelden bij een 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 gebruikt een simulator om de rol van de gebruiker te spelen en te communiceren met de doelagent. Evaluatoren op gespreksniveau beoordelen vervolgens het gesimuleerde gesprek en niet de oorspronkelijke rij.

Zie Gesprekken simuleren voor de simulatieprocedure. Als u seedrijen wilt genereren in plaats van ze handmatig te maken, raadpleegt u Een simulatie-seedgegevensset genereren.

Afzonderlijke query- en antwoordindeling

Sommige evaluators en werkstromen maken gebruik van afzonderlijke query kolommen en response kolommen. Deze indeling blijft ondersteund. Beide kolommen kunnen tekenreeksen of berichtmatrices bevatten die dezelfde structuur gebruiken als messages.

Gebruik tekenreekswaarden voor een eenvoudig testgeval voor één beurt dat geen gespreksgeschiedenis of details van toolaanroepen nodig heeft:

{"query":"I can't sign in to my account.","response":"Use the password-reset link on the sign-in page."}

Als query dit een berichtmatrix is, kan dit systeeminstructies, vorige beurten, hulpprogramma-aanroepen en resultaten van hulpprogramma's bevatten. Evaluators gebruiken deze geschiedenis als context bij het scoren 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."}
  ]
}

Wanneer tekenreeksen query en response waarden afzonderlijke ondersteunende informatie nodig hebben, voegt u een context kolom toe.

Als een evaluatieuitvoering een model- of agentdoel aanroept, genereert Foundry een nieuw antwoord voor elke invoer. Alle response al opgeslagen in de rij worden genegeerd.

CSV wordt ook ondersteund voor eenvoudige, op tekenreeksen gebaseerde query- en response-rijen. Zie Een CSV-gegevensset evalueren.

Wanneer u gegevensmapping nodig hebt

U kunt weglaten data_mapping wanneer een compatibele evaluator gebruikmaakt van de standaardkolommen in uw gegevensset. Voeg in de volgende gevallen een toewijzing toe:

  • Uw gegevensset gebruikt een andere naam, zoals question in plaats van query.
  • Een model- of agentdoel genereert tijdens runtime tekst en de evaluator vereist een tekstantwoord. Coherentie vereist bijvoorbeeld dat de respons voortkomt uit {{sample.output_text}}.
  • Een agentdoel genereert gestructureerde uitvoer en de evaluator vereist hulpprogrammaaanroepen of andere gestructureerde items. Taaknaleving vereist bijvoorbeeld dat het antwoord wordt toegewezen op basis van {{sample.output_items}}.
  • Een CSV-bestand maakt gebruik van niet-standaard kolomkoppen.

Zie {{sample.*}} voor de syntaxis voor {{item.*}}- en -toewijzingen, met uitvoerbare voorbeelden. Als u een algemene werkstroom wilt kiezen, raadpleegt u Evaluaties uitvoeren vanuit de SDK.

Volgende stap

Configureer een evaluatieuitvoering die gebruikmaakt van uw gegevensset: