Перейти к основному содержимому

Как использовать плагин

Это руководство охватывает весь API среды выполнения: создание экземпляра LLM, загрузку моделей, отправку сообщений, загрузку моделей во время выполнения, управление состоянием и вспомогательные функции.

Создание экземпляра LLM

Начните с создания объекта Runtime Local LLM. Сохраняйте ссылку на него (например, как переменную в Blueprints или UPROPERTY в C++), чтобы предотвратить преждевременную сборку мусора.

Создать Runtime Local LLM

Загрузка модели

Перед отправкой сообщений необходимо загрузить модель. Плагин предоставляет несколько способов загрузки в зависимости от вашего рабочего процесса.

Загрузка по имени

Если вы управляете моделями через панель настроек редактора, используйте Load Model (By Name).

В UE 5.4 и более поздних версиях Load Model (By Name) отображает выпадающий список всех моделей на диске - просто выберите нужную модель.

Загрузка модели по имени UE 5.4+

Загрузка из пути к файлу

Загрузите модель напрямую из абсолютного пути к файлу .gguf:

Загрузка модели из файла

Загрузка по URL (Скачать и загрузить)

Скачать модель по URL (если её ещё нет на диске) и автоматически загрузить. Если файл уже существует локально, загрузка пропускается.

Самый простой вариант принимает только URL — метаданные извлекаются из имени файла:

Load Model From URL Simple

Вы также можете использовать Load Model From URL с полными метаданными модели для более подробной информации о модели:

Load Model From URL

Асинхронная загрузка (Blueprint)

Для обработки завершения загрузки и ошибок через выходные пины вместо ручной привязки делегатов доступны два асинхронных узла.

Load Model By Name (Async) является зеркалом Load Model (By Name) — в UE 5.4+ он отображает выпадающий список всех моделей на диске:

Load Model By Name Async UE 5.4+

Load Model From File (Async) вместо этого принимает абсолютный путь к файлу:

Load Model From File Async

Привязка событий

Привяжитесь к делегатам экземпляра LLM для получения обратных вызовов. Все обратные вызовы выполняются в игровом потоке.

Bind Events

Доступные делегаты:

  • On Token Generated: Срабатывает для каждого выходного токена
  • On Generation Complete: Срабатывает, когда готов полный ответ, с указанием продолжительности, количества токенов и токенов в секунду
  • On Prompt Processed: Срабатывает после обработки входного промпта, до начала генерации
  • On Error: Срабатывает, если происходит ошибка во время любой операции
  • On Model Loaded: Срабатывает, когда модель завершает загрузку
  • On Model Unloaded: Срабатывает при выгрузке модели
  • On Download Progress: Срабатывает периодически во время загрузки модели (доля прогресса, полученные байты, общий размер)
  • On Model Downloaded: Срабатывает, когда завершается операция только загрузки модели

Отправка сообщений

После загрузки модели отправьте сообщение пользователя для генерации ответа:

Send Message

Для переопределения системного запроса для конкретного сообщения используйте Send Message With System Prompt:

Send Message With System Prompt

Токены передаются через OnTokenGenerated по мере их создания. Когда генерация завершается, OnGenerationComplete срабатывает с полным ответом, длительностью, количеством токенов и токенов в секунду.

Асинхронная отправка сообщения (Blueprint)

Узел Send LLM Message (Async) предоставляет выделенные выходные пины для токенов, завершения и ошибок:

Async Send Message

Загрузка моделей во время выполнения

Помимо описанного выше процесса загрузки и запуска, вы можете загрузить модель на диск без её загрузки. Это полезно для предварительного кэширования моделей на экране загрузки или в меню настроек.

Download Model

Также доступен вариант только с URL:

Download Model From URL

Узел Download LLM Model (Async) и Download LLM Model From URL (Async) предоставляет выходные пины для прогресса, завершения и ошибок:

Async Download Model

Делегат OnDownloadProgress сообщает о прогрессе во время загрузки. OnModelDownloaded срабатывает, когда файл сохраняется на диск.

Чтобы отменить выполняющуюся загрузку:

Отмена загрузки

Плагин автоматически предотвращает повторные загрузки - если загрузка для той же модели уже выполняется, последующие вызовы игнорируются.

Остановка генерации

Чтобы прервать текущую генерацию:

Остановка генерации

Сброс контекста разговора

Очистите историю разговора, чтобы начать новый разговор:

Сброс контекста

Выгрузка модели

Освобождайте ресурсы, когда модель больше не нужна:

Выгрузка модели

Состояние запроса

Проверьте текущее состояние экземпляра LLM:

Состояние запроса

  • Модель загружена: True, если модель готова к инференсу
  • Генерируется: True, если идёт генерация
  • Занят: True, если активна какая-либо операция (загрузка, генерация, скачивание)
  • Загружается: True, если идёт загрузка модели
  • Получить метаданные загруженной модели: Возвращает метаданные текущей модели
  • Получить применённые параметры инференса: Возвращает параметры, применённые при загрузке

Функции библиотеки моделей

Предоставляется набор статических служебных функций для управления файлами моделей на диске. Они полезны для создания интерфейса выбора модели или проверки доступности модели во время выполнения.

Получить имена загруженных моделей / метаданные

Get Downloaded Model Names

Get All Downloaded Model Metadata

Проверить, находится ли модель на диске

Is Model On Disk

Получить путь к файлу модели

Получить путь к файлу модели

Удалить файлы модели

Удалить файлы модели

Получение предопределённых и доступных моделей

Получение предопределённых моделей

Получение всех доступных моделей

Сборка метаданных из URL

Сконструируйте метаданные модели из исходного URL (поля извлекаются из имени файла):

Создать метаданные из URL

Служебные функции

Предоставляется набор вспомогательных функций для форматирования и отображения ошибок.

Байты в читаемую строку

Конвертирует количество байт в читаемую строку (например, "4.07 ГБ"). Полезно для отображения размеров моделей в интерфейсе.

Байты в читаемую строку

Форматирование прогресса загрузки

Форматирует строку прогресса загрузки, например "1.23 ГБ / 4.07 ГБ (30.2%)". Если общий размер неизвестен, возвращает только полученный объем.

Форматирование прогресса загрузки

Получить описание ошибки / строку кода ошибки

Get LLM Error Description возвращает читаемое текстовое описание для кода ошибки. Get LLM Error Code String возвращает имя значения перечисления в виде строки (полезно для логирования).

Получить описание ошибки

Справочник кодов ошибок

КодЗначениеОписание
Unknown0Неопределенная ошибка
ModelLoadFailed10Не удалось загрузить файл GGUF (поврежденный файл, несовместимый формат и т. д.)
ContextCreateFailed11Не удалось создать контекст инференса
ModelNotLoaded20Попытка инференса без загруженной модели
ChatTemplateFailed21Не удалось применить шаблон чата модели
TokenizationFailed22Не удалось токенизировать входной текст
ContextOverflow23Подсказка + контекст превышает настроенный размер контекста
PromptDecodeFailed24Не удалось декодировать токены подсказки
ContextTooFullToGenerate25Недостаточно места в контексте для генерации вывода
GenerationDecodeFailed30Не удалось декодировать токен во время генерации
GenerationTruncated31Генерация остановлена, так как достигнут лимит максимального количества токенов
LLMInstanceNull40Экземпляр LLM имеет значение null или недействителен
ModelNotFoundOnDisk41Файл модели не существует по ожидаемому пути
ModelURLEmpty42Был запрошен скачивание с пустым URL
ModelDownloadCancelled43Загрузка была отменена
ModelDownloadEmptyData44Загрузка завершена, но тело ответа пустое
ModelDownloadSaveFailed45Загрузка завершена, но файл не удалось сохранить на диск