Strukturierte Ausgaben¶
Strukturierte Ausgaben 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 strukturierter Ausgaben zu einem wesentlichen Bestandteil der Evaluierung von Agenten.
Grundlegende Verwendung¶
Ein Beispiel, das die Verwendung von Pydantic-Modellen für die Generierung und Evaluierung strukturierter Ausgaben 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 durchgesetzt
-
Auf Antworten zugreifen: Die strukturierten Ausgaben finden sich im
content
-Schlüssel der Assistant-Nachricht als JSON-String
Schema-Definitionsmethoden¶
Pydantic-Modelle¶
Pydantic-Modelle bieten die intuitivste und empfohlene Art, Schemas für strukturierte Ausgaben 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 den 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 strukturierter Ausgaben¶
Das Rating-Modell hat Zugriff auf alle Feldbeschreibungen aus Ihrem Schema für strukturierte Ausgaben und bietet dadurch wertvollen Kontext darüber, was jedes Feld enthalten sollte und wie es interpretiert werden sollte. Um strukturierte Ausgaben 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?"