メインコンテンツまでスキップ

プラグインの使用方法

このガイドでは、LLM インスタンスの作成、モデルの読み込み、メッセージの送信、ランタイムでのモデルのダウンロード、状態管理、ユーティリティ関数など、完全なランタイム API について説明します。

LLM インスタンスを作成する

最初に Runtime Local LLM オブジェクトを作成します。Blueprint 内の変数や C++ の UPROPERTY として参照を保持し、ガベージコレクションによる早期破棄を防ぎます。

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

Async Load (Blueprint)

手動でデリゲートをバインドする代わりに、出力ピンを介してロードの完了とエラーを処理するために、2つの非同期ノードが利用可能です。

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 With System Prompt を使用します:

Send Message With System Prompt

トークンは生成されると OnTokenGenerated を通じてストリーミングされます。生成が完了すると、OnGenerationComplete が完全な応答、所要時間、トークン数、1秒あたりのトークン数とともに発火します。

非同期メッセージ送信 (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インスタンスの現在の状態を確認します:

クエリ状態

  • Is Model Loaded: モデルが推論の準備ができている場合にTrue
  • Is Generating: 生成が進行中の場合にTrue
  • Is Busy: 何らかの操作(ロード、生成、ダウンロード)がアクティブな場合にTrue
  • Is Downloading: モデルのダウンロードが進行中の場合にTrue
  • Get Loaded Model Metadata: 現在のモデルのメタデータを返します
  • Get Applied Inference Params: ロード時に適用されたパラメータを返します

モデルライブラリ関数

ディスク上のモデルファイルを管理するための一連の静的ユーティリティ関数が提供されています。これらは、モデル選択UIの構築や、ランタイムでのモデルの利用可能性チェックに役立ちます。

ダウンロードされたモデル名 / メタデータの取得

ダウンロードされたモデル名の取得

ダウンロードされたすべてのモデルメタデータの取得

モデルがディスク上にあるか確認する

モデルがディスク上にあるか

モデルファイルパスの取得

モデルファイルパスの取得

モデルファイルを削除

モデルファイルを削除

事前定義済みモデルと利用可能なモデルを取得する

事前定義されたモデルを取得

すべての利用可能なモデルを取得

URLからメタデータを構築

生のURLからモデルメタデータを構築します(フィールドはファイル名から導出されます):

URLからメタデータを作成

Utility Functions

書式設定とエラー表示のための一連のヘルパー関数が提供されています。

Bytes to Readable String

バイト数を人間が読みやすい文字列(例: "4.07 GB")に変換します。UIでモデルサイズを表示するのに便利です。

Bytes to Readable String

Format Download Progress

ダウンロードの進捗文字列を "1.23 GB / 4.07 GB (30.2%)" のように整形します。合計サイズが不明な場合は、受信済みの量だけを返します。

Format Download Progress

エラー説明の取得 / エラーコード文字列

Get LLM Error Description はエラーコードに対応する人間が読めるテキスト説明を返します。Get LLM Error Code String は列挙値の名前を文字列として返します(ログ出力に便利です)。

Get Error Description

エラーコードリファレンス

CodeValueDescription
Unknown0未指定のエラー
ModelLoadFailed10GGUFファイルの読み込みに失敗しました(ファイル破損、非互換フォーマットなど)
ContextCreateFailed11推論コンテキストの作成に失敗しました
ModelNotLoaded20モデルが読み込まれていない状態で推論が試行されました
ChatTemplateFailed21モデルのチャットテンプレートの適用に失敗しました
TokenizationFailed22入力テキストをトークン化できませんでした
ContextOverflow23プロンプト+コンテキストが設定されたコンテキストサイズを超えています
PromptDecodeFailed24プロンプトトークンのデコードに失敗しました
ContextTooFullToGenerate25出力を生成するのに十分なコンテキスト領域が残っていません
GenerationDecodeFailed30生成中にトークンのデコードに失敗しました
GenerationTruncated31最大トークン数制限に達したため生成が停止されました
LLMInstanceNull40LLMインスタンスがnullまたは無効です
ModelNotFoundOnDisk41モデルファイルが指定されたパスに存在しません
ModelURLEmpty42空のURLでダウンロードが要求されました
ModelDownloadCancelled43ダウンロードがキャンセルされました
ModelDownloadEmptyData44ダウンロードは完了しましたが、レスポンスボディが空でした
ModelDownloadSaveFailed45ダウンロードは完了しましたが、ファイルをディスクに保存できませんでした