跳至主要内容

如何使用插件

本指南涵蓋完整的執行時期 API:建立 LLM 實例、載入模型、傳送訊息、在執行時下載模型、管理狀態以及實用函式。

建立一個 LLM 實例

首先建立一個 Runtime Local LLM 物件。保持對它的參考(例如在 Blueprints 中作為變數或 C++ 中的 UPROPERTY)以避免過早的垃圾回收。

Create 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:每個輸出 Token 時觸發
  • On Generation Complete:完整回應準備好時觸發,附帶持續時間、Token 數量和每秒 Token 數
  • 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

當 token 生成時,它們會透過 OnTokenGenerated 進行串流。生成完成時,OnGenerationComplete 會觸發,並提供完整的回應、持續時間、token 數量和每秒 token 數。

非同步發送訊息 (Blueprint)

Send LLM Message (Async) 節點提供專門的輸出引腳,用於 token、完成和錯誤:

非同步發送訊息

在執行時下載模型

除了前面說明的下載並載入流程之外,您還可以將模型下載到磁碟而不載入它。這對於在載入畫面或設定選單中預先快取模型很有用。

下載模型

也提供了僅 URL 的變體:

從 URL 下載模型

Download LLM Model (Async)Download LLM Model From URL (Async) 節點提供用於進度、完成和錯誤的輸出引腳:

非同步下載模型

OnDownloadProgress delegate 會在下載過程中回報進度。OnModelDownloaded 會在檔案儲存至磁碟時觸發。

若要取消進行中的下載:

取消下載

插件會自動防止重複下載 - 如果同一個模型的下載已正在進行中,後續的呼叫將被忽略。

停止生成

若要中斷正在進行的生成:

停止生成

重置對話上下文

清除對話歷史,開始新對話:

重置上下文

卸載模型

當不再需要模型時釋放資源:

卸載模型

查詢狀態

檢查 LLM 實例的當前狀態:

查詢狀態

  • Is Model Loaded: 如果模型已準備好進行推理,則為 True。
  • Is Generating: 如果正在進行生成,則為 True。
  • Is Busy: 如果任何操作(載入、生成、下載)處於活動狀態,則為 True。
  • Is Downloading: 如果正在下載模型,則為 True。
  • Get Loaded Model Metadata: 返回當前模型的中繼資料。
  • Get Applied Inference Params: 返回載入時套用的參數。

模型庫函式

提供一組靜態工具函式,用於管理磁碟上的模型檔案。這些函式有助於建構模型選擇 UI 或在執行階段檢查模型可用性。

Get Downloaded Model Names / 中繼資料

Get Downloaded Model Names

Get All Downloaded Model Metadata

檢查模型是否在磁碟上

模型是否在磁碟上

獲取模型檔案路徑

獲取模型檔案路徑

刪除模型檔案

刪除模型檔案

獲取預定義和可用模型

取得預定義模型

取得所有可用模型

從 URL 建構中繼資料

從原始 URL 建構模型中繼資料 (欄位會從檔案名稱衍生):

從 URL 建構中繼資料

工具函式

提供了一組輔助函式,用於格式化與錯誤顯示。

位元組轉成可讀字串

將位元組計數轉換為人類可讀的字串(例如 "4.07 GB")。適用於在 UI 中顯示模型大小。

Bytes to Readable String

格式化下載進度

格式化下載進度字串,如 "1.23 GB / 4.07 GB (30.2%)"。如果總大小未知,則僅回傳已接收的量。

Format Download Progress

取得錯誤描述 / 錯誤代碼字串

Get LLM Error Description 回傳錯誤代碼的人類可讀文字描述。Get LLM Error Code String 回傳枚舉值名稱的字串(便於記錄)。

Get Error Description

錯誤代碼參考

代碼描述
Unknown0未指定的錯誤
ModelLoadFailed10GGUF 檔案載入失敗(損壞的檔案、不相容的格式等)
ContextCreateFailed11無法建立推論前後文
ModelNotLoaded20在未載入模型的情況下嘗試進行推論
ChatTemplateFailed21模型的聊天模板無法套用
TokenizationFailed22輸入文字無法進行標記化處理
ContextOverflow23提示詞 + 前後文超出已設定的前後文大小
PromptDecodeFailed24提示詞標記解碼失敗
ContextTooFullToGenerate25剩餘的前後文空間不足以產生輸出
GenerationDecodeFailed30產生過程中某個標記解碼失敗
GenerationTruncated31因達到最大標記上限而停止產生
LLMInstanceNull40LLM 實例為空或無效
ModelNotFoundOnDisk41模型檔案不存在於預期的路徑
ModelURLEmpty42嘗試下載時 URL 為空
ModelDownloadCancelled43下載已取消
ModelDownloadEmptyData44下載完成但回應本文為空
ModelDownloadSaveFailed45下載完成但無法將檔案儲存至磁碟