Pular para o conteúdo principal

Como usar o plugin

Este guia cobre toda a API de runtime: criação de uma instância de LLM, carregamento de modelos, envio de mensagens, download de modelos em runtime, gerenciamento de estado e funções utilitárias.

Criar uma Instância de LLM

Comece criando um objeto Runtime Local LLM. Mantenha uma referência a ele (por exemplo, como uma variável em Blueprints ou uma UPROPERTY em C++) para evitar a coleta prematura de lixo.

Criar Runtime Local LLM

Carregar um Modelo

Você deve carregar um modelo antes de enviar mensagens. O plugin oferece vários métodos de carregamento, dependendo do seu fluxo de trabalho.

Carregar por Nome

Se você gerencia modelos através do painel de configurações do editor, use Load Model (By Name).

No UE 5.4 e posterior, Load Model (By Name) apresenta um menu suspenso de todos os modelos no disco - basta selecionar o modelo que deseja carregar.

Load Model By Name UE 5.4+

Carregar do Caminho do Arquivo

Carregue um modelo diretamente de um caminho absoluto de arquivo para um arquivo .gguf:

Carregar Modelo do Arquivo

Carregar a partir de URL (Baixar e Carregar)

Baixe um modelo a partir de uma URL (se já não estiver no disco) e carregue-o automaticamente. Se o arquivo já existir localmente, o download é ignorado.

A variante mais simples recebe apenas uma URL - os metadados são derivados do nome do arquivo:

Load Model From URL Simples

Você também pode usar Load Model From URL com metadados completos do modelo para informações mais ricas sobre o modelo:

Load Model From URL

Carregamento Assíncrono (Blueprint)

Para lidar com a conclusão do carregamento e erros via pinos de saída em vez de vincular delegates manualmente, dois nós assíncronos estão disponíveis.

Load Model By Name (Async) espelha Load Model (By Name) - no UE 5.4+, ele apresenta uma lista suspensa de todos os modelos no disco:

Load Model By Name Async UE 5.4+

Load Model From File (Async) aceita um caminho de arquivo absoluto em vez disso:

Load Model From File Async

Vincular Eventos

Vincule-se aos delegates da instância LLM para receber callbacks. Todos os callbacks são executados na thread do jogo.

Bind Events

Delegates disponíveis:

  • On Token Generated: Dispara para cada token de saída
  • On Generation Complete: Dispara quando a resposta completa está pronta, com duração, contagem de tokens e tokens por segundo
  • On Prompt Processed: Dispara após o prompt de entrada ser processado, antes de a geração começar
  • On Error: Dispara se ocorrer um erro durante qualquer operação
  • On Model Loaded: Dispara quando um modelo termina de carregar
  • On Model Unloaded: Dispara quando o modelo é descarregado
  • On Download Progress: Dispara periodicamente durante o download de um modelo (fração de progresso, bytes recebidos, total de bytes)
  • On Model Downloaded: Dispara quando uma operação de apenas download é concluída

Enviar Mensagens

Assim que um modelo estiver carregado, envie uma mensagem de usuário para gerar uma resposta:

Enviar Mensagem

Para substituir o prompt do sistema para uma mensagem específica, use Send Message With System Prompt:

Enviar Mensagem com Prompt do Sistema

Os tokens fluem através de OnTokenGenerated conforme são produzidos. Quando a geração termina, OnGenerationComplete é disparado com a resposta completa, duração, contagem de tokens e tokens por segundo.

Envio Assíncrono de Mensagem (Blueprint)

O nó Send LLM Message (Async) fornece pinos de saída dedicados para tokens, conclusão e erros:

Envio Assíncrono de Mensagem

Baixar Modelos em Tempo de Execução

Além do fluxo de download e carregamento descrito acima, você pode baixar um modelo para o disco sem carregá-lo. Isso é útil para pré-armazenar modelos em cache durante uma tela de carregamento ou menu de configurações.

Baixar Modelo

Uma variante somente de URL também está disponível:

Baixar Modelo a partir de URL

O nó Download LLM Model (Async) e Download LLM Model From URL (Async) fornece pinos de saída para progresso, conclusão e erros:

Download Assíncrono de Modelo

O delegado OnDownloadProgress informa o progresso durante o download. OnModelDownloaded é acionado quando o arquivo é salvo no disco.

Para cancelar um download em andamento:

Cancelar download

O plugin previne downloads duplicados automaticamente - se um download já estiver em andamento para o mesmo modelo, chamadas subsequentes são ignoradas.

Interromper Geração

Para interromper uma geração em andamento:

Interromper Geração

Redefinir Contexto da Conversa

Limpe o histórico da conversa para iniciar uma nova conversa:

Redefinir Contexto

Descarregar um Modelo

Libere recursos quando um modelo não for mais necessário:

Descarregar Modelo

Estado da Consulta

Verifique o estado atual da instância LLM:

Estado da Consulta

  • Is Model Loaded: Verdadeiro se um modelo estiver pronto para inferência
  • Is Generating: Verdadeiro se a geração estiver em andamento
  • Is Busy: Verdadeiro se qualquer operação (carregamento, geração, download) estiver ativa
  • Is Downloading: Verdadeiro se um download do modelo estiver em andamento
  • Get Loaded Model Metadata: Retorna os metadados do modelo atual
  • Get Applied Inference Params: Retorna os parâmetros aplicados durante o carregamento

Funções da Biblioteca de Modelos

Um conjunto de funções utilitárias estáticas é fornecido para gerenciar arquivos de modelo no disco. Elas são úteis para criar uma interface de seleção de modelo ou verificar a disponibilidade do modelo em tempo de execução.

Obter Nomes de Modelos Baixados / Metadados

Get Downloaded Model Names

Get All Downloaded Model Metadata

Verificar se um modelo está no disco

Verificar se o modelo está no disco

Get Model File Path

Get Model File Path

Excluir Arquivos de Modelo

Excluir Arquivos de Modelo

Obter modelos pré-definidos e disponíveis

Obter Modelos Pré-definidos

Obter Todos os Modelos Disponíveis

Construir Metadados a partir de uma URL

Construa metadados do modelo a partir de uma URL bruta (os campos são derivados do nome do arquivo):

Criar Metadados a partir de uma URL

Funções Utilitárias

Um conjunto de funções auxiliares é fornecido para formatação e exibição de erros.

Bytes para String Legível

Converte uma quantidade de bytes em uma string legível por humanos (ex: "4.07 GB"). Útil para exibir tamanhos de modelo na interface.

Bytes para String Legível

Formatar Progresso de Download

Formata uma string de progresso de download como "1.23 GB / 4.07 GB (30.2%)". Se o tamanho total for desconhecido, retorna apenas o valor recebido.

Formatar Progresso de Download

Obter Descrição de Erro / String de Código de Erro

Get LLM Error Description retorna uma descrição de texto legível para um código de erro. Get LLM Error Code String retorna o nome do valor enum como uma string (útil para logging).

Obter Descrição de Erro

Referência de Códigos de Erro

CódigoValorDescrição
Unknown0Um erro não especificado
ModelLoadFailed10Falha ao carregar o arquivo GGUF (arquivo corrompido, formato incompatível, etc.)
ContextCreateFailed11Falha ao criar o contexto de inferência
ModelNotLoaded20A inferência foi tentada sem um modelo carregado
ChatTemplateFailed21O template de chat do modelo falhou ao ser aplicado
TokenizationFailed22O texto de entrada não pôde ser tokenizado
ContextOverflow23O prompt + contexto excede o tamanho do contexto configurado
PromptDecodeFailed24Os tokens do prompt falharam ao serem decodificados
ContextTooFullToGenerate25Espaço de contexto restante insuficiente para gerar a saída
GenerationDecodeFailed30Um token falhou ao ser decodificado durante a geração
GenerationTruncated31A geração parou porque o limite máximo de tokens foi atingido
LLMInstanceNull40A instância do LLM é nula ou inválida
ModelNotFoundOnDisk41O arquivo do modelo não existe no caminho esperado
ModelURLEmpty42Uma tentativa de download foi feita com uma URL vazia
ModelDownloadCancelled43O download foi cancelado
ModelDownloadEmptyData44O download foi concluído mas o corpo da resposta estava vazio
ModelDownloadSaveFailed45O download foi concluído mas o arquivo não pôde ser salvo em disco