Zum Hauptinhalt springen

Parametersystem

Workflows können konfigurierbare Parameter definieren, die vor der Ausführung einen Einstellungsdialog für den Benutzer anzeigen. Das Parametersystem unterstützt mehrere Typen und dynamische Datenquellen.

Parameterdefinition​

Parameter werden im parameters-Feld von workflow.json definiert:

{
"parameters": {
"language": {
"type": "string",
"title": "Output Language",
"description": "Select the language for output content",
"default": "en-US",
"enum": ["en-US", "zh-CN", "ja-JP"],
"allowCustom": true
},
"maxResults": {
"type": "number",
"title": "Maximum Results",
"description": "Upper limit on the number of results returned",
"default": 10,
"min": 1,
"max": 100
},
"enableFilter": {
"type": "boolean",
"title": "Enable Filtering",
"description": "Whether to enable result filtering",
"default": true,
"visible_if": { "parameter": "language", "equals": false }
}
}
}

Parametertypen​

TypBeschreibungAnwendbares Steuerelement
stringTextzeichenfolgeTextfeld / Dropdown / dynamischer Selektor
numberNummerZahleneingabe (unterstützt min/max-Einschränkungen)
booleanBooleschUmschalter / Kontrollkästchen

Erforderliche Parameter​

Setzen Sie required: true, wenn ein Workflow ohne einen Parameter nicht ausgeführt werden kann:

{
"collectionScope": {
"type": "string",
"required": true,
"title": "Collection Scope"
}
}

Erforderliche Strings müssen nicht-leer sein, erforderliche Zahlen müssen endlich sein, und beide Werte eines erforderlichen Booleschen sind gültig. Fehlende erforderliche Werte werden vor dem Provider-Dispatch abgelehnt. Parameter bleiben optional, wenn required auf false gesetzt oder weggelassen wird.

Enum-Werte und benutzerdefinierte Werte​

{
"language": {
"type": "string",
"enum": ["en-US", "zh-CN", "ja-JP"],
"allowCustom": true,
"default": "en-US"
}
}
  • enum: Vorgeschlagene Liste von Voreinstellungswerten. Wird als auswählbare Optionen im Dropdown-Menü angezeigt
  • allowCustom (nur string-Typ): Wenn auf true gesetzt, sind enum-Werte nur Empfehlungen; Benutzer können frei andere Werte eingeben. Wenn auf false gesetzt oder weggelassen, können Benutzer nur aus enum auswählen

Bedingte Anzeige​

{
"advancedMode": {
"type": "boolean",
"title": "Advanced Mode",
"default": false
},
"customEndpoint": {
"type": "string",
"title": "Custom Endpoint",
"visible_if": { "parameter": "advancedMode", "equals": true }
}
}

visible_if steuert das Ein-/Ausblenden von Parametern im Einstellungsdialog:

  • equals: true — Nur anzeigen, wenn der Zielparameterwert wahrheitsgemäß ist
  • equals: false — Nur anzeigen, wenn der Zielparameterwert unwahr ist

Beispiel: Verknüpftes Ein-/Ausblenden

{
"auto_tag_regulator": {
"type": "boolean",
"title": "Auto Tag Regulator",
"default": true
},
"auto_tag_infer_tag": {
"type": "boolean",
"title": "Infer tags",
"default": true,
"visible_if": { "parameter": "auto_tag_regulator", "equals": true }
}
}

Wenn auto_tag_regulator deaktiviert ist, wird der Parameter auto_tag_infer_tag automatisch ausgeblendet.

Dynamische Optionsquellen​

Parameterwertoptionen können aus Zotos Live-Daten stammen:

{
"targetCollection": {
"type": "string",
"title": "Target Collection",
"default": "",
"optionsSource": {
"kind": "zotero.collections",
"library": "current",
"includeEmpty": true,
"valueFormat": "collectionRef",
"labelFormat": "path"
}
},
"relatedTopic": {
"type": "string",
"title": "Related Topic",
"optionsSource": {
"kind": "synthesis.topics",
"filter": "updatable"
}
}
}

Unterstützte Optionsquellen​

kindBeschreibungVerfügbare Parameter
zotero.collectionsListe der Sammlungen in der aktuellen Zotero-Bibliotheklibrary (current/user/number), includeEmpty, valueFormat (collectionRef), labelFormat (path/title)
synthesis.topicsListe der Themen im Synthesis Workbenchfilter (all/updatable), valueFormat (topicId), labelFormat (title)

Häufige optionsSource-Parameter​

ParameterBeschreibung
libraryBibliotheksbereich. "current" (aktuelle Bibliothek), "user" (Benutzerbibliothek), Nummer (spezifische Bibliotheks-ID)
includeEmptyOb eine leere Option eingeschlossen werden soll (für "keine Auswahl")
valueFormatFormat der Optionswerte: "collectionRef" / "topicId"
labelFormatAnzeigeformat der Optionsbezeichnungen: "path" / "title"
allowStaleVerwendung von zwischengespeicherten Daten erlauben (vermeidet erneute Anforderung jedes Mal beim Öffnen der Einstellungen)
filterFilterbedingung (variiert je nach kind)

Einschränkungen für numerische Parameter​

{
"confidence": {
"type": "number",
"title": "Confidence Threshold",
"default": 0.8,
"min": 0,
"max": 1
}
}

min und max beschränken den Bereich der Eingabewerte.

Parameter in Hooks lesen​

In preflight, buildRequest und applyResult können Sie vom Benutzer festgelegte Parameterwerte über executionOptions.workflowParams lesen:

export function buildRequest({ executionOptions, runtime }) {
const params = executionOptions?.workflowParams || {};
const language = params.language || "en-US";
const maxResults = params.maxResults || 10;

return {
kind: "skillrunner.job.v1",
create: { skill_id: "my-skill" },
parameter: { language, max_results: maxResults },
};
}

Parameter-Lokalisierung​

Die title und description von Parametern unterstützen Lokalisierung:

{
"i18n": {
"messages": {
"zh-CN": {
"parameters.language.title": "Language",
"parameters.language.description": "Select the language for output content"
}
}
}
}

Siehe die Seite Lokalisierung für den vollständigen Lokalisierungsmechanismus.

Nächste Schritte​

  • Auswahlkontext — Verstehen, wie die Elementauswahl des Benutzers an den Workflow übergeben wird
  • Anfragetypen — Parameterübergabemethoden für verschiedene Anfragetypen