Saltar al contenido principal

Cómo usar el plugin

Esta guía cubre la API completa en tiempo de ejecución: crear una instancia de LLM, cargar modelos, enviar mensajes, descargar modelos en tiempo de ejecución, gestionar el estado y funciones de utilidad.

Crear una instancia de LLM

Comience por crear un objeto Runtime Local LLM. Mantenga una referencia a él (por ejemplo, como una variable en Blueprints o una UPROPERTY en C++) para evitar la recolección prematura de basura.

Crear Runtime Local LLM

Cargar un Modelo

Debe cargar un modelo antes de enviar mensajes. El plugin ofrece varios métodos de carga según su flujo de trabajo.

Cargar por Nombre

Si gestiona los modelos a través del panel de configuración del editor, utilice Load Model (By Name).

En UE 5.4 y versiones posteriores, Load Model (By Name) presenta un menú desplegable con todos los modelos en disco; simplemente seleccione el modelo que desea cargar.

Load Model By Name UE 5.4+

Cargar desde ruta de archivo

Cargue un modelo directamente desde una ruta de archivo absoluta a un archivo .gguf:

Load Model From File

Cargar desde URL (Descargar y cargar)

Descarga un modelo desde una URL (si no se encuentra ya en el disco) y lo carga automáticamente. Si el archivo ya existe localmente, se omite la descarga.

La variante más simple solo requiere una URL: los metadatos se derivan del nombre del archivo:

Load Model From URL Simple

También puedes usar Load Model From URL con metadatos completos del modelo para obtener información más rica:

Load Model From URL

Carga Asíncrona (Blueprint)

Para gestionar la finalización de la carga y los errores mediante pines de salida en lugar de vincular delegados manualmente, hay dos nodos asíncronos disponibles.

Load Model By Name (Async) espeja a Load Model (By Name) - en UE 5.4+ presenta un desplegable con todos los modelos en disco:

Carga Asíncrona de Modelo por Nombre UE 5.4+

Load Model From File (Async) toma una ruta de archivo absoluta en su lugar:

Carga Asíncrona de Modelo desde Archivo

Vincular Eventos

Vincula los delegados de la instancia LLM para recibir callbacks. Todos los callbacks se ejecutan en el hilo del juego.

Vincular Eventos

Delegados disponibles:

  • On Token Generated: Se dispara por cada token de salida
  • On Generation Complete: Se dispara cuando la respuesta completa está lista, con duración, número de tokens y tokens por segundo
  • On Prompt Processed: Se dispara después de que el prompt de entrada se procesa, antes de que comience la generación
  • On Error: Se dispara si ocurre un error durante cualquier operación
  • On Model Loaded: Se dispara cuando un modelo termina de cargarse
  • On Model Unloaded: Se dispara cuando el modelo se descarga
  • On Download Progress: Se dispara periódicamente durante la descarga de un modelo (fracción de progreso, bytes recibidos, bytes totales)
  • On Model Downloaded: Se dispara cuando se completa una operación de solo descarga

Enviar Mensajes

Una vez cargado un modelo, envía un mensaje de usuario para generar una respuesta:

Send Message

Para sobrescribir el prompt del sistema para un mensaje específico, usa Send Message With System Prompt:

Send Message With System Prompt

Los tokens se transmiten a través de OnTokenGenerated a medida que se producen. Cuando la generación finaliza, OnGenerationComplete se activa con la respuesta completa, la duración, el recuento de tokens y los tokens por segundo.

Envío asincrónico de mensaje (Blueprint)

El nodo Send LLM Message (Async) proporciona pines de salida dedicados para tokens, completado y errores:

Envío asincrónico de mensaje

Descargar modelos en tiempo de ejecución

Además del flujo de descarga y carga descrito anteriormente, puedes descargar un modelo al disco sin cargarlo. Esto es útil para precargar modelos en una pantalla de carga o en el menú de configuración.

Descargar modelo

También está disponible una variante solo con URL:

Descargar modelo desde URL

El nodo Download LLM Model (Async) y Download LLM Model From URL (Async) proporciona pines de salida para progreso, completado y errores:

Descarga asincrónica de modelo

El delegado OnDownloadProgress informa del progreso durante la descarga. OnModelDownloaded se activa cuando el archivo se guarda en el disco.

Para cancelar una descarga en curso:

Cancelar descarga

El complemento evita descargas duplicadas automáticamente: si ya hay una descarga en curso para el mismo modelo, las llamadas posteriores se ignoran.

Detener Generación

Para interrumpir una generación en curso:

Detener Generación

Restablecer contexto de conversación

Borrar el historial de la conversación para iniciar una nueva conversación:

Restablecer contexto

Descargar un modelo

Libere recursos cuando un modelo ya no sea necesario:

Descargar modelo

Estado de Consulta

Consultar el estado actual de la instancia del LLM:

Estado de Consulta

  • Is Model Loaded: True si un modelo está listo para la inferencia
  • Is Generating: True si la generación está en progreso
  • Is Busy: True si cualquier operación (carga, generación, descarga) está activa
  • Is Downloading: True si una descarga de modelo está en progreso
  • Get Loaded Model Metadata: Devuelve los metadatos del modelo actual
  • Get Applied Inference Params: Devuelve los parámetros aplicados durante la carga

Funciones de la biblioteca de modelos

Se proporciona un conjunto de funciones de utilidad estáticas para administrar los archivos de modelo en el disco. Estas son útiles para construir una IU de selección de modelo o verificar la disponibilidad del modelo en tiempo de ejecución.

Obtener nombres de modelos descargados / Metadatos

Obtener nombres de modelos descargados

Obtener todos los metadatos de modelos descargados

Verificar si un modelo está en el disco

Verificar si el modelo está en el disco

Obtener ruta de archivo del modelo

Obtener ruta de archivo del modelo

Eliminar archivos de modelo

Eliminar archivos de modelo

Obtener modelos predefinidos y disponibles

Obtener modelos predefinidos

Obtener todos los modelos disponibles

Generar metadatos a partir de una URL

Construir metadatos del modelo a partir de una URL sin procesar (los campos se derivan del nombre del archivo):

Generar metadatos a partir de una URL

Funciones de utilidad

Se proporciona un conjunto de funciones auxiliares para formatear y mostrar errores.

Bytes a cadena legible

Convierte un número de bytes en una cadena legible por humanos (ej. "4.07 GB"). Útil para mostrar tamaños de modelo en la interfaz.

Bytes a cadena legible

Formatear progreso de descarga

Formatea una cadena de progreso de descarga como "1.23 GB / 4.07 GB (30.2%)". Si el tamaño total es desconocido, devuelve solo la cantidad recibida.

Formatear progreso de descarga

Obtener descripción de error / Cadena de código de error

Get LLM Error Description devuelve una descripción de texto legible para un código de error. Get LLM Error Code String devuelve el nombre del valor de enumeración como una cadena (útil para registro).

Obtener descripción de error

Referencia de códigos de error

CódigoValorDescripción
Unknown0Un error no especificado
ModelLoadFailed10El archivo GGUF no se pudo cargar (archivo corrupto, formato incompatible, etc.)
ContextCreateFailed11Falló la creación del contexto de inferencia
ModelNotLoaded20Se intentó inferencia sin modelo cargado
ChatTemplateFailed21La plantilla de chat del modelo no se pudo aplicar
TokenizationFailed22El texto de entrada no se pudo tokenizar
ContextOverflow23El prompt + contexto supera el tamaño de contexto configurado
PromptDecodeFailed24Los tokens del prompt no se pudieron decodificar
ContextTooFullToGenerate25No queda suficiente espacio de contexto para generar salida
GenerationDecodeFailed30Un token no se pudo decodificar durante la generación
GenerationTruncated31Generación detenida porque se alcanzó el límite máximo de tokens
LLMInstanceNull40La instancia LLM es nula o inválida
ModelNotFoundOnDisk41El archivo del modelo no existe en la ruta esperada
ModelURLEmpty42Se solicitó una descarga con una URL vacía
ModelDownloadCancelled43La descarga fue cancelada
ModelDownloadEmptyData44La descarga se completó pero el cuerpo de la respuesta estaba vacío
ModelDownloadSaveFailed45La descarga se completó pero no se pudo guardar el archivo en disco