Zum Hauptinhalt springen

Wie man das Plugin verwendet

Dieser Leitfaden behandelt die vollständige Laufzeit-API: Erstellen einer LLM-Instanz, Laden von Modellen, Senden von Nachrichten, Herunterladen von Modellen zur Laufzeit, Verwalten des Zustands und Dienstprogrammfunktionen.

Eine LLM-Instanz erstellen

Beginnen Sie, indem Sie ein Runtime Local LLM-Objekt erstellen. Behalten Sie eine Referenz darauf (z. B. als Variable in Blueprints oder als UPROPERTY in C++), um eine vorzeitige Garbage Collection zu verhindern.

Runtime Local LLM erstellen

Modell laden

Sie müssen ein Modell laden, bevor Sie Nachrichten senden können. Das Plugin bietet mehrere Lademethoden, abhängig von Ihrem Workflow.

Nach Name laden

Wenn Sie Modelle über das Editor-Einstellungsfeld verwalten, verwenden Sie Load Model (By Name).

In UE 5.4 und später zeigt Load Model (By Name) ein Dropdown-Menü aller Modelle auf der Festplatte an – wählen Sie einfach das gewünschte Modell zum Laden aus.

Modell laden nach Name UE 5.4+

Aus Dateipfad laden

Laden Sie ein Modell direkt von einem absoluten Dateipfad zu einer .gguf-Datei:

Modell aus Datei laden

Laden von URL (Herunterladen und Laden)

Ein Modell von einer URL herunterladen (falls nicht bereits auf der Festplatte vorhanden) und automatisch laden. Wenn die Datei bereits lokal existiert, wird der Download übersprungen.

Die einfachste Variante benötigt nur eine URL – die Metadaten werden aus dem Dateinamen abgeleitet:

Load Model From URL Simple

Sie können auch Load Model From URL mit vollständigen Modellmetadaten für umfangreichere Modellinformationen verwenden:

Load Model From URL

Asynchrones Laden (Blueprint)

Um Ladeabschluss und Fehler über Ausgangspins zu behandeln, anstatt Delegaten manuell zu binden, stehen zwei asynchrone Knoten zur Verfügung.

Load Model By Name (Async) spiegelt Load Model (By Name) wider – in UE 5.4+ zeigt es ein Dropdown aller Modelle auf der Festplatte:

Load Model By Name Async UE 5.4+

Load Model From File (Async) nimmt stattdessen einen absoluten Dateipfad entgegen:

Load Model From File Async

Ereignisse binden

Binden Sie an die Delegaten der LLM-Instanz, um Rückrufe zu erhalten. Alle Rückrufe werden auf dem Game-Thread ausgelöst.

Bind Events

Verfügbare Delegaten:

  • On Token Generated: Löst für jedes Ausgabetoken aus
  • On Generation Complete: Löst aus, wenn die vollständige Antwort bereit ist, mit Dauer, Token-Anzahl und Tokens pro Sekunde
  • On Prompt Processed: Löst nach der Verarbeitung des Eingabe-Prompts und vor Beginn der Generierung aus
  • On Error: Löst aus, wenn bei einem Vorgang ein Fehler auftritt
  • On Model Loaded: Löst aus, wenn ein Modell den Ladevorgang abgeschlossen hat
  • On Model Unloaded: Löst aus, wenn das Modell entladen wird
  • On Download Progress: Löst periodisch während eines Modell-Downloads aus (Fortschrittsanteil, empfangene Bytes, Gesamtbytes)
  • On Model Downloaded: Löst aus, wenn ein reiner Download-Vorgang abgeschlossen ist

Nachrichten senden

Sobald ein Modell geladen ist, senden Sie eine Benutzernachricht, um eine Antwort zu generieren:

Send Message

Um den Systemprompt für eine bestimmte Nachricht zu überschreiben, verwenden Sie Send Message With System Prompt:

Send Message With System Prompt

Token strömen durch OnTokenGenerated, sobald sie erzeugt werden. Wenn die Generierung abgeschlossen ist, wird OnGenerationComplete mit der vollständigen Antwort, Dauer, Tokenanzahl und Token pro Sekunde ausgelöst.

Asynchrones Senden einer Nachricht (Blueprint)

Der Send LLM Message (Async)-Knoten bietet dedizierte Ausgabepins für Token, Abschluss und Fehler:

Asynchrones Senden einer Nachricht

Modelle zur Laufzeit herunterladen

Neben dem oben beschriebenen Herunterladen-und-Laden-Ablauf können Sie ein Modell auch ohne es zu laden auf die Festplatte herunterladen. Dies ist nützlich, um Modelle in einem Ladebildschirm oder Einstellungsmenü vorab zwischenzuspeichern.

Modell herunterladen

Eine reine URL-Variante ist ebenfalls verfügbar:

Modell von URL herunterladen

Der Knoten Download LLM Model (Async) und Download LLM Model From URL (Async) bietet Ausgabepins für Fortschritt, Abschluss und Fehler:

Asynchrones Herunterladen eines Modells

Der OnDownloadProgress-Delegat meldet den Fortschritt während des Downloads. OnModelDownloaded wird ausgelöst, wenn die Datei auf der Festplatte gespeichert wird.

Zum Abbrechen eines laufenden Downloads:

Download abbrechen

Das Plugin verhindert automatisch doppelte Downloads - wenn bereits ein Download für dasselbe Modell läuft, werden nachfolgende Aufrufe ignoriert.

Generierung stoppen

Um eine laufende Generierung zu unterbrechen:

Generierung stoppen

Gesprächskontext zurücksetzen

Gesprächsverlauf löschen, um ein neues Gespräch zu beginnen:

Kontext zurücksetzen

Ein Modell entladen

Ressourcen freigeben, wenn ein Modell nicht mehr benötigt wird:

Modell entladen

Abfragestatus

Überprüfen Sie den aktuellen Zustand der LLM-Instanz:

Abfragestatus

  • Is Model Loaded: True, wenn ein Modell für die Inferenz bereit ist
  • Is Generating: True, wenn eine Generierung gerade läuft
  • Is Busy: True, wenn irgendeine Operation (Laden, Generieren, Herunterladen) aktiv ist
  • Is Downloading: True, wenn ein Modell-Download läuft
  • Get Loaded Model Metadata: Gibt die Metadaten des aktuellen Modells zurück
  • Get Applied Inference Params: Gibt die beim Laden angewendeten Parameter zurück

Modellbibliothek-Funktionen

Es wird eine Reihe statischer Hilfsfunktionen zur Verwaltung von Modelldateien auf der Festplatte bereitgestellt. Diese sind nützlich, um eine Benutzeroberfläche zur Modellauswahl zu erstellen oder die Modellverfügbarkeit zur Laufzeit zu überprüfen.

Heruntergeladene Modellnamen / Metadaten abrufen

Get Downloaded Model Names

Get All Downloaded Model Metadata

Überprüfen, ob ein Modell auf der Festplatte vorhanden ist

Ist Modell auf Festplatte

Modell-Dateipfad abrufen

Modell-Dateipfad abrufen

Modelldateien löschen

Modelldateien löschen

Vordefinierte und verfügbare Modelle abrufen

Vordefinierte Modelle abrufen

Alle verfügbaren Modelle abrufen

Metadaten aus einer URL erstellen

Konstruieren Sie Modellmetadaten aus einer rohen URL (Felder werden aus dem Dateinamen abgeleitet):

Metadaten aus URL erstellen

Hilfsfunktionen

Eine Reihe von Hilfsfunktionen wird für Formatierung und Fehleranzeige bereitgestellt.

Bytes in lesbare Zeichenkette umwandeln

Wandelt eine Byte-Anzahl in eine lesbare Zeichenkette um (z. B. "4.07 GB"). Nützlich zur Anzeige von Modellgrößen in der Benutzeroberfläche.

Bytes in lesbare Zeichenkette umwandeln

Download-Fortschritt formatieren

Formatiert eine Download-Fortschrittszeichenkette wie "1.23 GB / 4.07 GB (30.2%)". Wenn die Gesamtgröße unbekannt ist, wird nur der empfangene Betrag zurückgegeben.

Download-Fortschritt formatieren

Fehlerbeschreibung / Fehlercode-Zeichenkette abrufen

Get LLM Error Description gibt eine lesbare Textbeschreibung für einen Fehlercode zurück. Get LLM Error Code String gibt den Enum-Wert-Namen als Zeichenkette zurück (nützlich für die Protokollierung).

Fehlerbeschreibung abrufen

Fehlercodes-Referenz

CodeWertBeschreibung
Unknown0Ein nicht näher spezifizierter Fehler
ModelLoadFailed10Die GGUF-Datei konnte nicht geladen werden (beschädigte Datei, inkompatibles Format usw.)
ContextCreateFailed11Fehler beim Erstellen des Inferenzkontexts
ModelNotLoaded20Es wurde versucht, eine Inferenz ohne geladenes Modell durchzuführen
ChatTemplateFailed21Die Chat-Vorlage des Modells konnte nicht angewendet werden
TokenizationFailed22Der Eingabetext konnte nicht tokenisiert werden
ContextOverflow23Die Eingabeaufforderung + Kontext überschreitet die konfigurierte Kontextgröße
PromptDecodeFailed24Die Tokens der Eingabeaufforderung konnten nicht dekodiert werden
ContextTooFullToGenerate25Nicht genügend Kontextspeicherplatz verbleibend, um eine Ausgabe zu generieren
GenerationDecodeFailed30Ein Token konnte während der Generierung nicht dekodiert werden
GenerationTruncated31Die Generierung wurde gestoppt, weil das maximale Token-Limit erreicht wurde
LLMInstanceNull40Die LLM-Instanz ist null oder ungültig
ModelNotFoundOnDisk41Die Modelldatei existiert nicht am erwarteten Pfad
ModelURLEmpty42Ein Download wurde mit einer leeren URL angefordert
ModelDownloadCancelled43Der Download wurde abgebrochen
ModelDownloadEmptyData44Der Download wurde abgeschlossen, aber der Antwortkörper war leer
ModelDownloadSaveFailed45Der Download wurde abgeschlossen, aber die Datei konnte nicht auf der Festplatte gespeichert werden