Freigeben über


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:

  1. Semantic Kernel - Eingebautes Format für Semantic Kernel.
  2. Handlebars - Handlebars-Vorlagenformat.
  3. 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:

  1. name – Der Name der Variablen.
  2. description – Die Beschreibung der Variablen.
  3. default – Optionaler Standardwert für die Variable.
  4. is_required – Gibt an, ob die Variable als erforderlich betrachtet wird (und nicht als optional). Der Standardwert ist true.
  5. json_schema – Ein optionales JSON-Schema, das diese Variable beschreibt.
  6. allow_dangerously_set_content – Ein boolescher Wert, der angibt, ob der Variablewert als potenzieller gefährlicher Inhalt behandelt werden soll. Der Standardwert ist false. 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:

  1. description – Die Beschreibung der Variablen.
  2. 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:

  1. service_id – Dies identifiziert den Dienst, für den diese Einstellungen konfiguriert werden, z.B. azure_openai_eastus, openai, ollama, huggingface usw.
  2. model_id – Dies weist dem KI-Modell diese Einstellungen zu, beispielsweise gpt-4, gpt-3.5-turbo.
  3. 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 defaultfestgelegt.

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

Nächste Schritte