Dateischema

Eine Komponente bettet die großen Artefakte, die sie benötigt, nicht ein. Stattdessen deklariert sie diese, und die Plattform stellt jedes File auf dem Node bereit, bevor die Komponente startet. Die Deklaration ist der Vertrag, gegen den ein Backend bindet: sie benennt die Slots, die eine Komponente füllt, den Typ, den jeder Slot akzeptiert, und den Konfigurationsparameter, der die aufgelöste Datei zur Laufzeit in die Komponente trägt.

Datei-Abhängigkeiten deklarieren

Eingabedateien werden unter worker.file_schema deklariert. Jeder Eintrag ist ein benannter Slot:

worker:  file_schema:    model:      file_type: "weights"      config_key: "model_path"      is_optional: false      tag: "detector"

Der Slot-Schlüssel (model hier) ist das, wogegen ein Backend bindet — ppl backend add-file --key model. file_type steuert, welches hochgeladene File im Slot zulässig ist: es ist ein Wert oder eine |-getrennte Liste, wenn die Komponente tatsächlich mehrere Formate liest. Das vollständige Vokabular findet sich unter Dateitypen.

config_key ist der Weg, auf dem das gewählte File die laufende Komponente erreicht. Die Plattform synthetisiert diesen Parameter aus der Bindung und schreibt ihn zur Deploy-Zeit, daher darf er nicht zusätzlich unter config_schema erscheinen — ihn zweimal zu deklarieren ist ein Fehler wegen doppeltem Parameter. Was der Wert enthält, hängt vom optionalen component-Ziel ab: ohne Ziel wird das File in diese Komponente geladen und der Wert ist ein komponentenlokaler Pfad wie /files/model; mit gesetztem Ziel (triton, torchserve, vllm, sglang) wird das File in diesen Service geladen und der Wert ist der Anzeigename des Files.

Die übrigen Felder justieren den Slot: is_optional erlaubt es dem Slot, ungebunden zu bleiben, tag zeigt eine Slot-ID beim Binden an und grenzt Modellartefakt-Kandidaten ein, und mutable erlaubt es der Bindung, sich zu ändern, während das Backend deployt bleibt.

Files deklarieren, die eine Komponente erzeugt

Eine Komponente, die ein File schreibt, deklariert es unter worker.generated_file_schema:

worker:  generated_file_schema:    report:      name: "Evidence report"      file_type: "pdf"      config_key: "report_path"

Ausgabe-Deklarationen sind einfacher als Eingaben: name, ein einzelner file_type und der config_key, in den die Komponente den Pfad schreibt. Die |-Listenform wird hier nicht akzeptiert — eine Ausgabe ist genau eine Art von File.

Verwandt

  • Dateitypen — jeder file_type-Wert, den ein Slot deklarieren kann.
  • Bundle-Struktursyntax — bundle{…}-Strukturen für Verzeichnis-Layouts.
  • Datei-Bindung — ein File hochladen und an einen dieser Slots binden.
  • component.yml — der vollständige Vertrag, zu dem dieses Schema gehört.
  • Modelle — Modellartefakt-Slots und die Runtime, die sie lädt.

War diese Seite hilfreich?