Chuyển tới nội dung chính

Cách sử dụng plugin

Hướng dẫn này bao gồm toàn bộ API runtime: tạo một phiên bản LLM, tải mô hình, gửi tin nhắn, tải xuống mô hình trong runtime, quản lý trạng thái và các hàm tiện ích.

Tạo một Phiên bản LLM

Bắt đầu bằng cách tạo một đối tượng Runtime Local LLM. Duy trì một tham chiếu đến nó (ví dụ: như một biến trong Blueprints hoặc UPROPERTY trong C++) để ngăn chặn việc thu gom rác sớm.

Tạo Runtime Local LLM

Tải một Mô hình

Bạn phải tải một mô hình trước khi gửi tin nhắn. Plugin cung cấp một số phương pháp tải tùy thuộc vào quy trình làm việc của bạn.

Tải theo Tên

Nếu bạn quản lý các mô hình thông qua bảng cài đặt trình soạn thảo, hãy sử dụng Load Model (By Name).

Trong UE 5.4 trở lên, Load Model (By Name) hiển thị một menu thả xuống gồm tất cả các mô hình trên đĩa - chỉ cần chọn mô hình bạn muốn tải.

Tải Mô hình Theo Tên UE 5.4+

Tải từ Đường dẫn Tệp

Tải một mô hình trực tiếp từ đường dẫn tuyệt đối đến tệp .gguf:

Tải Mô hình Từ Tệp

Tải từ URL (Tải xuống và Tải)

Tải một mô hình từ URL (nếu chưa có trên đĩa) và tự động tải nó. Nếu tệp đã tồn tại cục bộ, quá trình tải xuống sẽ được bỏ qua.

Biến thể đơn giản nhất chỉ yêu cầu một URL - siêu dữ liệu được lấy từ tên tệp:

Tải Mô hình từ URL Đơn giản

Bạn cũng có thể sử dụng Tải Mô hình từ URL với siêu dữ liệu mô hình đầy đủ để có thông tin mô hình phong phú hơn:

Tải Mô hình từ URL

Tải Không Đồng Bộ (Blueprint)

Để xử lý việc hoàn tất tải và lỗi thông qua các chân đầu ra thay vì tự động gắn delegate, có sẵn hai node không đồng bộ.

Load Model By Name (Async) tương tự Load Model (By Name) - trong UE 5.4+, nó hiển thị một danh sách thả xuống của tất cả các model trên đĩa:

Load Model By Name Async UE 5.4+

Load Model From File (Async) nhận một đường dẫn tuyệt đối thay vào đó:

Load Model From File Async

Gắn Sự Kiện

Gắn vào các delegate của phiên bản LLM để nhận callback. Tất cả callback đều được kích hoạt trên luồng game.

Bind Events

Các delegate có sẵn:

  • On Token Generated: Kích hoạt cho mỗi token đầu ra
  • On Generation Complete: Kích hoạt khi phản hồi đầy đủ đã sẵn sàng, kèm theo thời lượng, số lượng token và token mỗi giây
  • On Prompt Processed: Kích hoạt sau khi lời nhắc đầu vào được xử lý, trước khi bắt đầu sinh
  • On Error: Kích hoạt nếu xảy ra lỗi trong bất kỳ thao tác nào
  • On Model Loaded: Kích hoạt khi một model hoàn tất tải
  • On Model Unloaded: Kích hoạt khi model được dỡ bỏ
  • On Download Progress: Kích hoạt định kỳ trong quá trình tải model (phần trăm tiến trình, số byte đã nhận, tổng số byte)
  • On Model Downloaded: Kích hoạt khi một thao tác chỉ tải xuống hoàn tất

Gửi Tin nhắn

Khi một mô hình đã được tải, hãy gửi một tin nhắn người dùng để tạo phản hồi:

Gửi Tin nhắn

Để ghi đè lời nhắc hệ thống cho một tin nhắn cụ thể, hãy sử dụng Send Message With System Prompt:

Gửi Tin nhắn Với Lời nhắc Hệ thống

Các token được truyền qua OnTokenGenerated khi chúng được tạo ra. Khi quá trình tạo hoàn tất, OnGenerationComplete sẽ kích hoạt với phản hồi đầy đủ, thời lượng, số lượng token và số token mỗi giây.

Gửi Tin nhắn Bất đồng bộ (Blueprint)

Node Send LLM Message (Async) cung cấp các chân đầu ra chuyên dụng cho token, hoàn tất và lỗi:

Async Send Message

Tải xuống Mô hình trong Runtime

Ngoài luồng tải xuống và tải như đã mô tả ở trên, bạn có thể tải xuống một mô hình vào đĩa mà không cần tải nó. Điều này hữu ích cho việc lưu trữ trước các mô hình trong màn hình tải hoặc menu cài đặt.

Download Model

Một biến thể chỉ có URL cũng có sẵn:

Download Model From URL

Node Download LLM Model (Async)Download LLM Model From URL (Async) cung cấp các chân đầu ra cho tiến trình, hoàn tất và lỗi:

Async Download Model

OnDownloadProgress ủy quyền báo cáo tiến trình trong quá trình tải xuống. OnModelDownloaded kích hoạt khi tệp được lưu vào đĩa.

Để hủy quá trình tải xuống đang diễn ra:

Hủy Tải Xuống

Plugin tự động ngăn chặn tải xuống trùng lặp - nếu một quá trình tải xuống cho cùng một mô hình đã đang diễn ra, các lệnh gọi tiếp theo sẽ bị bỏ qua.

Dừng Tạo Sinh

Để ngắt một quá trình tạo sinh đang diễn ra:

Dừng Tạo Sinh

Đặt lại Ngữ cảnh Hội thoại

Xóa lịch sử hội thoại để bắt đầu một cuộc trò chuyện mới:

Reset Context

Giải phóng một Mô hình

Giải phóng tài nguyên khi một mô hình không còn cần thiết nữa:

Giải phóng Mô hình

Trạng thái Truy vấn

Kiểm tra trạng thái hiện tại của phiên bản LLM:

Trạng thái Truy vấn

  • Is Model Loaded: True nếu một mô hình đã sẵn sàng để suy luận
  • Is Generating: True nếu quá trình sinh đang diễn ra
  • Is Busy: True nếu bất kỳ thao tác nào (tải, sinh, tải xuống) đang hoạt động
  • Is Downloading: True nếu quá trình tải xuống mô hình đang diễn ra
  • Get Loaded Model Metadata: Trả về siêu dữ liệu của mô hình hiện tại
  • Get Applied Inference Params: Trả về các tham số đã được áp dụng khi tải

Hàm Thư viện Mô hình

Một tập hợp các hàm tiện ích tĩnh được cung cấp để quản lý các tệp mô hình trên đĩa. Các hàm này hữu ích cho việc xây dựng giao diện người dùng chọn mô hình hoặc kiểm tra tính khả dụng của mô hình trong thời gian chạy.

Lấy Tên / Siêu dữ liệu Mô hình đã Tải xuống

Lấy Tên Mô hình đã Tải xuống

Lấy Tất cả Siêu dữ liệu Mô hình đã Tải xuống

Kiểm Tra Xem Mô Hình Có Trên Ổ Đĩa Không

Mô Hình Có Trên Ổ Đĩa

Lấy Đường Dẫn Tệp Mô Hình

Get Model File Path

Xóa Tệp Mô Hình

Xóa Tệp Mô Hình

Lấy các Mô Hình Đã Định Nghĩa Sẵn và Khả Dụng

Lấy Mô Hình Đã Định Nghĩa Sẵn

Lấy Tất Cả Mô Hình Khả Dụng

Xây dựng Metadata từ URL

Xây dựng metadata mô hình từ một URL thô (các trường được suy ra từ tên tệp):

Make Metadata From URL

Hàm Tiện Ích

Một tập hợp các hàm trợ giúp được cung cấp để định dạng và hiển thị lỗi.

Bytes sang Chuỗi Có Thể Đọc

Chuyển đổi số lượng byte thành một chuỗi có thể đọc được (ví dụ: "4.07 GB"). Hữu ích để hiển thị kích thước mô hình trong giao diện người dùng.

Bytes sang Chuỗi Có Thể Đọc

Định Dạng Tiến Trình Tải Xuống

Định dạng một chuỗi tiến trình tải xuống như "1.23 GB / 4.07 GB (30.2%)". Nếu tổng kích thước không xác định, chỉ trả về lượng đã nhận được.

Định Dạng Tiến Trình Tải Xuống

Lấy Mô Tả Lỗi / Chuỗi Mã Lỗi

Get LLM Error Description trả về mô tả văn bản có thể đọc được cho một mã lỗi. Get LLM Error Code String trả về tên giá trị enum dưới dạng chuỗi (hữu ích cho việc ghi log).

Lấy Mô Tả Lỗi

Tham Chiếu Mã Lỗi

Giá TrịMô Tả
Unknown0Một lỗi không xác định
ModelLoadFailed10Tệp GGUF không tải được (tệp hỏng, định dạng không tương thích, v.v.)
ContextCreateFailed11Không tạo được ngữ cảnh suy luận
ModelNotLoaded20Đã cố gắng suy luận khi chưa tải mô hình
ChatTemplateFailed21Mẫu trò chuyện của mô hình không áp dụng được
TokenizationFailed22Văn bản đầu vào không thể được token hóa
ContextOverflow23Lời nhắc + ngữ cảnh vượt quá kích thước ngữ cảnh đã cấu hình
PromptDecodeFailed24Các token lời nhắc không giải mã được
ContextTooFullToGenerate25Không đủ không gian ngữ cảnh còn lại để tạo đầu ra
GenerationDecodeFailed30Một token không giải mã được trong quá trình tạo
GenerationTruncated31Quá trình tạo bị dừng vì đã đạt đến giới hạn token tối đa
LLMInstanceNull40Phiên bản LLM là null hoặc không hợp lệ
ModelNotFoundOnDisk41Tệp mô hình không tồn tại tại đường dẫn dự kiến
ModelURLEmpty42Một yêu cầu tải xuống được thực hiện với URL trống
ModelDownloadCancelled43Quá trình tải xuống đã bị hủy
ModelDownloadEmptyData44Quá trình tải xuống hoàn tất nhưng nội dung phản hồi trống
ModelDownloadSaveFailed45Quá trình tải xuống hoàn tất nhưng không thể lưu tệp vào đĩa