Structured Outputs¶
Beherrschen Sie die Evaluierung von programmatisch formatierten LLM-Antworten, die für agentische Anwendungen essentiell sind
Structured Outputs ermöglichen Entwicklern, sicherzustellen, dass das LLM Antworten in einem programmatisch deterministischen Format erzeugt. Agentische Programme nutzen diese Funktion intensiv, um Interoperabilität zwischen Code-Pfaden und LLM-Antworten zu ermöglichen. Dies macht die Evaluierung structured Outputs zu einem wesentlichen Bestandteil der Evaluierung von Agenten.
Grundlegende Verwendung¶
Ein Beispiel, das die Verwendung von Pydantic-Modellen für die Generierung und Evaluierung von structured Outputs zeigt:
-
Schema definieren: Erstellen Sie ein Pydantic-Modell mit Feldbeschreibungen und grundlegenden Constraints, um die exakte JSON-Struktur zu definieren, die das LLM zurückgeben soll
-
Template erstellen: Verwenden Sie den Parameter
response_format
beim Erstellen eines Prompt-Templates, um anzugeben, dass Antworten Ihrer Pydantic-Modellstruktur folgen sollen -
Kriterien hinzufügen: Definieren Sie Evaluierungskriterien, die sich auf spezifische Schema-Felder beziehen - Kriterien können auch wie gewohnt automatisch generiert werden
-
Experiment ausführen: Erstellen und führen Sie Experimente normal aus - das strukturierte Ausgabeformat wird automatisch für alle Antwortgenerierungen angewendet
-
Auf Antworten zugreifen: Die structured Outputs finden sich im
content
-Feld der Assistant-Nachricht als JSON-String
Schema-Definitionsmethoden¶
Pydantic-Modelle¶
Pydantic-Modelle bieten die intuitivste und empfohlene Art, Schemas für structured Outputs zu definieren. Setzen Sie einfach response_format
auf die Pydantic-Klassendefinition, und elluminate übernimmt den Rest.
OpenAI JSON Schema Format¶
Zusätzlich zu Pydantic-Modellen können Sie auch das response_format
direkt mit einer OpenAI JSON Schema-Definition setzen:
schema = {
"type": "json_schema",
"json_schema": {
"name": "sentiment",
"schema": {
"type": "object",
"properties": {
"stars": {
"type": "integer",
"description": "Anzahl der Sterne der Bewertung",
"minimum": 1,
"maximum": 5
},
"sentiment": {
"type": "string",
"description": "Die Stimmungsausgabe, könnte positiv, negativ oder neutral sein.",
"enum": [
"positive",
"negative",
"neutral"
]
},
"confidence": {
"type": "number",
"description": "Konfidenzwert der Stimmungsanalyse zwischen 0 und 1",
"minimum": 0,
"maximum": 1
}
},
"required": [
"stars",
"sentiment",
"confidence"
],
"additionalProperties": False
}
}
}
KI-gestützte Schema-Generierung¶
Das Frontend bietet einen KI-gestützten Schema-Generator, der JSON-Schemas aus natürlichsprachlichen Beschreibungen erstellt. Beschreiben Sie einfach, was Sie extrahieren möchten, und elluminate generiert ein entsprechendes Schema.
Evaluierung von structured Outputs¶
Das Rating-Modell hat Zugriff auf alle Feldbeschreibungen aus Ihrem Schema für structured Outputs und bietet dadurch wertvollen Kontext darüber, was jedes Feld enthalten sollte und wie es interpretiert werden sollte. Um structured Outputs zu evaluieren, erstellen Sie einfach wie gewohnt Kriterien und führen ein Experiment aus.
Verwendung von Feldnamen in Kriterien
Es kann vorteilhaft sein, Feldnamen aus Ihrem Schema in den Kriterien zu verwenden. Dies hilft dem Rating-Modell zu verstehen, auf welchen Teil der JSON-Struktur es sich genau konzentrieren soll. Zum Beispiel ist "Ist das 'sentiment'-Feld..." präziser als "Ist die Stimmung korrekt?"