YAML-Schemareferenz für Semantic Kernel Prompts
Die YAML-Schemareferenz für Semantic Kernel-Eingabeaufforderungen ist eine detaillierte Referenz für YAML-Eingabeaufforderungen, in der alle unterstützten YAML-Syntax und ihre verfügbaren Optionen aufgeführt sind.
Definitionen
Name
Der Funktionsname, der standardmäßig beim Erstellen von Eingabeaufforderungsfunktionen mit dieser Konfiguration verwendet werden soll. Wenn der Name null oder leer ist, wird beim Erstellen einer Funktion dynamisch ein zufälliger Name generiert.
Beschreibung
Die Funktionsbeschreibung, die standardmäßig beim Erstellen von Aufforderungsfunktionen mit dieser Konfiguration verwendet werden soll.
Vorlagenformat
Der Bezeichner des Vorlagenformats für den semantischen Kernel. Der semantische Kernel bietet Unterstützung für die folgenden Vorlagenformate:
- Semantic Kernel - Eingebautes Format für Semantic Kernel.
- Handlebars - Handlebars-Vorlagenformat.
- Liquid - Liquid-Template-Format
Schablone
Die Eingabeaufforderungsvorlagenzeichenfolge, die die Eingabeaufforderung definiert.
Eingabevariablen
Die Sammlung von Eingabevariablen, die von der Eingabeaufforderungsvorlage verwendet werden. Jede Eingabevariable weist die folgenden Eigenschaften auf:
-
name
– Der Name der Variablen. -
description
– Die Beschreibung der Variablen. -
default
– Optionaler Standardwert für die Variable. -
is_required
– Gibt an, ob die Variable als erforderlich betrachtet wird (und nicht als optional). Der Standardwert isttrue
. -
json_schema
– Ein optionales JSON-Schema, das diese Variable beschreibt. -
allow_dangerously_set_content
– Ein boolescher Wert, der angibt, ob der Variablewert als potenzieller gefährlicher Inhalt behandelt werden soll. Der Standardwert istfalse
. Weitere Informationen finden Sie unter Schutz vor Eingabeaufforderungsangriffen.
Trinkgeld
Der Standardwert für allow_dangerously_set_content
ist "false".
Bei Festlegung auf "true" wird der Wert der Eingabevariable als sicherer Inhalt behandelt.
Für Eingabeaufforderungen, die mit einem Chat-Vervollständigungsdienst verwendet werden, sollte dies auf "false" festgelegt werden, um vor Prompt-Injection-Angriffen zu schützen.
Bei Verwendung anderer KI-Dienste z. B. Text-To-Image kann dies auf "true" festgelegt werden, um komplexere Eingabeaufforderungen zu ermöglichen.
Ausgabevariable
Die Ausgabevariable, die von der Befehlsvorlage verwendet wird. Die Ausgabevariable weist die folgenden Eigenschaften auf:
-
description
– Die Beschreibung der Variablen. -
json_schema
– Das JSON-Schema, das diese Variable beschreibt.
Ausführungseinstellungen
Die Sammlung von Ausführungseinstellungen, die von der Aufforderungsvorlage verwendet werden.
Die Ausführungseinstellungen sind ein Wörterbuch, bei dem die Dienst-ID als Schlüssel fungiert oder default
bei den Standardeinstellungen verwendet wird.
Die Dienst-ID jeder PromptExecutionSettings muss mit dem Schlüssel im Wörterbuch übereinstimmen.
Jeder Eintrag hat die folgenden Eigenschaften:
-
service_id
– Dies identifiziert den Dienst, für den diese Einstellungen konfiguriert werden, z.B. azure_openai_eastus, openai, ollama, huggingface usw. -
model_id
– Dies weist dem KI-Modell diese Einstellungen zu, beispielsweise gpt-4, gpt-3.5-turbo. -
function_choice_behavior
– Das Verhalten, das die Art und Weise definiert, wie Funktionen von LLMs ausgewählt werden und wie sie von KI-Konnektoren aufgerufen werden. Weitere Informationen finden Sie unter Verhaltensweisen bei der Funktionswahl
Trinkgeld
Wenn angegeben, ist der Dienstbezeichner der Schlüssel in einer Wörterbuchsammlung der Ausführungseinstellungen.
Wenn der Dienstbezeichner nicht angegeben wird, wird er auf default
festgelegt.
Verhaltensweise bei Funktionsauswahl
Um Funktionsaufrufe zu deaktivieren und das Modell dazu zu bringen, nur eine für den Benutzer bestimmte Nachricht zu generieren, setzen Sie die Eigenschaft auf null (Standardeinstellung).
-
auto
– Um dem Modell zu ermöglichen, zu entscheiden, ob die Funktionen aufgerufen werden sollen und, falls ja, welche aufgerufen werden sollen. -
required
– Um zu erzwingen, dass das Modell immer eine oder mehrere Funktionen aufruft. -
none
– So weisen Sie das Modell an, keine Funktionen aufzurufen und nur eine benutzerorientierte Nachricht zu generieren.
allow_dangerously_set_content
Ein boolescher Wert, der angibt, ob es erlaubt ist, potenziell gefährliche Inhalte über Funktionen in die Eingabeaufforderung einzufügen. Der Standardwert ist "false". Bei Festlegung auf "true" werden die Rückgabewerte von Funktionen nur als sicherer Inhalt behandelt. Für Eingaben, die mit einem Chat-Vervollständigungsdienst verwendet werden, sollte dies auf "false" gesetzt werden, um vor Prompt-Injection-Angriffen zu schützen. Bei Verwendung anderer KI-Dienste z. B. Text-To-Image kann dies auf "true" festgelegt werden, um komplexere Eingabeaufforderungen zu ermöglichen. Weitere Informationen finden Sie unter Schutz vor Eingabeaufforderungsangriffen.
Beispiel für eine YAML-Eingabeaufforderung
Nachfolgend finden Sie eine Beispiel-YAML-Eingabeaufforderung, die das Handlebars-Vorlagenformat verwendet und bei Verwendung mit gpt-3
und gpt-4
Modellen mit unterschiedlichen Temperaturen konfiguriert wird.
name: GenerateStory
template: |
Tell a story about {{topic}} that is {{length}} sentences long.
template_format: handlebars
description: A function that generates a story about a topic.
input_variables:
- name: topic
description: The topic of the story.
is_required: true
- name: length
description: The number of sentences in the story.
is_required: true
output_variable:
description: The generated story.
execution_settings:
service1:
model_id: gpt-4
temperature: 0.6
service2:
model_id: gpt-3
temperature: 0.4
default:
temperature: 0.5