Aller au contenu principal

Comment utiliser le plugin

Ce guide couvre l'API d'exécution complète : créer une instance LLM, charger des modèles, envoyer des messages, télécharger des modèles au moment de l'exécution, gérer l'état et les fonctions utilitaires.

Créer une instance LLM

Commencez par créer un objet Runtime Local LLM. Conservez une référence à celui-ci (par exemple en tant que variable dans Blueprints ou un UPROPERTY en C++) pour éviter une collecte des ordures prématurée.

Créer un Runtime Local LLM

Charger un modèle

Vous devez charger un modèle avant d'envoyer des messages. Le plugin propose plusieurs méthodes de chargement selon votre flux de travail.

Charger par nom

Si vous gérez les modèles via le panneau des paramètres de l'éditeur, utilisez Load Model (By Name).

Dans UE 5.4 et versions ultérieures, Load Model (By Name) présente une liste déroulante de tous les modèles sur le disque - sélectionnez simplement le modèle que vous souhaitez charger.

Charger un modèle (par nom) UE 5.4+

Charger depuis un chemin de fichier

Charger un modèle directement depuis un chemin de fichier absolu vers un fichier .gguf :

Charger un modèle depuis un fichier

Load from URL (Téléchargement et chargement)

Téléchargez un modèle depuis une URL (s'il n'est pas déjà sur le disque) et chargez-le automatiquement. Si le fichier existe déjà localement, le téléchargement est ignoré.

La variante la plus simple ne prend qu'une URL - les métadonnées sont dérivées du nom de fichier :

Load Model From URL Simple

Vous pouvez également utiliser Load Model From URL avec des métadonnées complètes du modèle pour des informations plus riches :

Load Model From URL

Chargement asynchrone (Blueprint)

Pour gérer la fin de chargement et les erreurs via des broches de sortie plutôt que de lier manuellement des délégués, deux nœuds asynchrones sont disponibles.

Load Model By Name (Async) est l'équivalent de Load Model (By Name) - dans UE 5.4+, il affiche une liste déroulante de tous les modèles sur le disque :

Charger le modèle par nom asynchrone UE 5.4+

Load Model From File (Async) prend un chemin de fichier absolu à la place :

Charger le modèle depuis un fichier asynchrone

Lier les événements

Liez-vous aux délégués de l'instance LLM pour recevoir les rappels. Tous les rappels se produisent sur le thread de jeu.

Lier les événements

Délégués disponibles :

  • On Token Generated: Se déclenche pour chaque token de sortie
  • On Generation Complete: Se déclenche lorsque la réponse complète est prête, avec la durée, le nombre de tokens et les tokens par seconde
  • On Prompt Processed: Se déclenche après le traitement de l'invite d'entrée, avant le début de la génération
  • On Error: Se déclenche si une erreur se produit pendant une opération
  • On Model Loaded: Se déclenche lorsqu'un modèle termine le chargement
  • On Model Unloaded: Se déclenche lorsque le modèle est déchargé
  • On Download Progress: Se déclenche périodiquement lors d'un téléchargement de modèle (fraction de progression, octets reçus, octets totaux)
  • On Model Downloaded: Se déclenche lorsqu'une opération de téléchargement uniquement se termine

Envoyer des messages

Une fois qu'un modèle est chargé, envoyez un message utilisateur pour générer une réponse :

Envoyer un message

Pour remplacer le prompt système pour un message spécifique, utilisez Send Message With System Prompt :

Envoyer un message avec le prompt système

Les tokens sont diffusés via OnTokenGenerated au fur et à mesure qu'ils sont produits. Lorsque la génération se termine, OnGenerationComplete est déclenché avec la réponse complète, la durée, le nombre de tokens et les tokens par seconde.

Envoi de message asynchrone (Blueprint)

Le nœud Send LLM Message (Async) fournit des broches de sortie dédiées pour les tokens, la terminaison et les erreurs :

Envoi de message asynchrone

Téléchargement des modèles à l'exécution

En plus du flux de téléchargement et chargement décrit ci-dessus, vous pouvez télécharger un modèle sur le disque sans le charger. Cela est utile pour le pré-caching de modèles dans un écran de chargement ou un menu de paramètres.

Téléchargement du modèle

Une variante URL seule est également disponible :

Téléchargement du modèle depuis une URL

Le nœud Download LLM Model (Async) et le nœud Download LLM Model From URL (Async) fournissent des broches de sortie pour la progression, la terminaison et les erreurs :

Téléchargement de modèle asynchrone

Le délégué OnDownloadProgress signale la progression pendant le téléchargement. OnModelDownloaded se déclenche lorsque le fichier est enregistré sur le disque.

Pour annuler un téléchargement en cours :

Annuler le téléchargement

Le plugin empêche automatiquement les téléchargements en double : si un téléchargement est déjà en cours pour le même modèle, les appels suivants sont ignorés.

Arrêter la génération

Pour interrompre une génération en cours :

Arrêter la génération

Réinitialiser le contexte de conversation

Effacer l'historique de la conversation pour en démarrer une nouvelle :

Réinitialiser le contexte

Décharger un modèle

Libérer les ressources lorsqu'un modèle n'est plus nécessaire:

Décharger un modèle

État de la requête

Vérifiez l'état actuel de l'instance LLM :

État de la requête

  • Is Model Loaded: Vrai si un modèle est prêt pour l'inférence
  • Is Generating: Vrai si la génération est en cours
  • Is Busy: Vrai si une opération quelconque (chargement, génération, téléchargement) est active
  • Is Downloading: Vrai si un téléchargement de modèle est en cours
  • Get Loaded Model Metadata: Renvoie les métadonnées du modèle actuel
  • Get Applied Inference Params: Renvoie les paramètres appliqués lors du chargement

Fonctions de la bibliothèque de modèles

Un ensemble de fonctions utilitaires statiques est fourni pour gérer les fichiers de modèles sur le disque. Elles s'avèrent utiles pour construire une interface de sélection de modèles ou pour vérifier la disponibilité des modèles en cours d'exécution.

Obtenir les noms / métadonnées des modèles téléchargés

Obtenir les noms des modèles téléchargés

Obtenir toutes les métadonnées des modèles téléchargés

Vérifier si un modèle est sur le disque

Modèle sur le disque

Obtenir le chemin du fichier de modèle

Obtenir le chemin du fichier de modèle

Obtenir les modèles prédéfinis et disponibles

Get Predefined Models

Get All Available Models

Construire les métadonnées à partir d'une URL

Construire les métadonnées d'un modèle à partir d'une URL brute (les champs sont dérivés du nom de fichier) :

Créer les métadonnées à partir d'une URL

Fonctions utilitaires

Un ensemble de fonctions d'assistance est fourni pour le formatage et l'affichage des erreurs.

Octets vers chaîne lisible

Convertit un nombre d'octets en chaîne lisible par l'humain (par ex. "4.07 Go"). Utile pour afficher les tailles de modèles dans l'interface utilisateur.

Octets vers chaîne lisible

Formater la progression du téléchargement

Formate une chaîne de progression de téléchargement comme "1.23 Go / 4.07 Go (30.2%)". Si la taille totale est inconnue, retourne uniquement la quantité reçue.

Formater la progression du téléchargement

Obtenir la description de l'erreur / Chaîne du code d'erreur

Get LLM Error Description retourne une description textuelle lisible pour un code d'erreur. Get LLM Error Code String retourne le nom de la valeur enum en tant que chaîne (utile pour la journalisation).

Obtenir la description de l'erreur

Référence des codes d'erreur

CodeValeurDescription
Unknown0Une erreur non spécifiée
ModelLoadFailed10Le fichier GGUF n'a pas pu être chargé (fichier corrompu, format incompatible, etc.)
ContextCreateFailed11Échec de la création du contexte d'inférence
ModelNotLoaded20Une inférence a été tentée sans modèle chargé
ChatTemplateFailed21Le modèle de chat n'a pas pu être appliqué
TokenizationFailed22Le texte d'entrée n'a pas pu être tokenisé
ContextOverflow23Le prompt + le contexte dépasse la taille de contexte configurée
PromptDecodeFailed24Les tokens du prompt n'ont pas pu être décodés
ContextTooFullToGenerate25Pas assez d'espace de contexte restant pour générer la sortie
GenerationDecodeFailed30Un token n'a pas pu être décodé pendant la génération
GenerationTruncated31La génération s'est arrêtée car la limite maximale de tokens a été atteinte
LLMInstanceNull40L'instance LLM est null ou invalide
ModelNotFoundOnDisk41Le fichier modèle n'existe pas à l'emplacement attendu
ModelURLEmpty42Un téléchargement a été demandé avec une URL vide
ModelDownloadCancelled43Le téléchargement a été annulé
ModelDownloadEmptyData44Le téléchargement s'est terminé mais le corps de la réponse était vide
ModelDownloadSaveFailed45Le téléchargement s'est terminé mais le fichier n'a pas pu être sauvegardé sur le disque