UE Plugin AIChatPlus Documento de Instrucciones
Almacén público
Obtención del complemento
Descripción del complemento
Este complemento es compatible con UE5.2+.
UE.AIChatPlus es un complemento de Unreal Engine que permite la comunicación con varios servicios de chat de IA de GPT. Actualmente, soporta servicios como OpenAI (ChatGPT, DALL-E), Azure OpenAI (ChatGPT, DALL-E), Claude, Google Gemini, Ollama y llama.cpp para uso local sin conexión. En el futuro, se seguirán añadiendo más proveedores de servicios. Su implementación se basa en solicitudes REST asíncronas, ofreciendo un rendimiento eficiente y facilitando a los desarrolladores de UE la integración de estos servicios de chat de IA.
Al mismo tiempo, UE.AIChatPlus también incluye una herramienta de edición que permite utilizar directamente estos servicios de chat con inteligencia artificial en el editor, generando texto e imágenes, analizando imágenes, entre otros.
Instrucciones de uso
Herramienta de chat del editor
La opción del menú Tools -> AIChatPlus -> AIChat abre la herramienta de chat del editor proporcionada por el complemento.
La herramienta ofrece soporte para generar texto, chatear por texto, generar imágenes y analizar imágenes.
La interfaz de la herramienta es aproximadamente la siguiente:
Funciones principales
- Modelo grande fuera de línea: integra la biblioteca llama.cpp, soporta la ejecución local y fuera de línea de modelos grandes.
Crear un nuevo chat de texto: haz clic en el botón Nuevo chat
en la esquina inferior izquierda para iniciar una nueva conversación de texto.
- Generación de imágenes: haz clic en el botón
New Image Chat
en la esquina inferior izquierda para crear una nueva sesión de generación de imágenes.
Análisis de imágenes: Algunos servicios de chat en la función "Nuevo Chat" admiten el envío de imágenes, como Claude, Google Gemini. Simplemente haz clic en el ícono 🖼️ o 🎨 encima del cuadro de texto para cargar la imagen que quieres enviar.
Apoyo a Blueprint: Apoyo a la creación de Blueprint para realizar solicitudes de API, completar chat de texto, generación de imágenes, entre otras funciones.
- Configurar el rol actual del chat: el menú desplegable en la parte superior del cuadro de chat permite establecer el rol de los textos que se envían actualmente, lo que facilita ajustar la conversación de IA simulando diferentes personajes.
Vaciar la conversación: El botón ❌ en la parte superior de la ventana de chat permite borrar el historial de mensajes de la conversación actual.
- Plantilla de diálogo: incorpora cientos de plantillas de configuración de diálogo, facilitando el manejo de preguntas frecuentes.
Configuración global: haz clic en el botón Setting
en la esquina inferior izquierda para abrir la ventana de configuración global. Aquí podrás establecer la configuración predeterminada para el chat de texto, el servicio de generación de imágenes mediante API y los parámetros específicos para cada tipo de servicio de API. Los ajustes se guardarán automáticamente en la carpeta del proyecto $(ProjectFolder)/Saved/AIChatPlusEditor
.
- Configuración de la conversación: Haz clic en el botón de configuración en la parte superior del cuadro de chat para abrir la ventana de configuración de la conversación actual. Se puede modificar el nombre de la conversación, cambiar el servicio API utilizado en la conversación y ajustar de manera independiente los parámetros específicos que usa cada conversación. La configuración de la conversación se guarda automáticamente en
$(ProjectFolder)/Saved/AIChatPlusEditor/Sessions
.
- Modificación del contenido del chat: Al pasar el mouse sobre el contenido del chat, aparecerá un botón de configuración para ese contenido específico, que permite regenerar el contenido, modificarlo, copiarlo, eliminarlo y regenerar contenido en la parte inferior (para el contenido cuyo rol es el de usuario).
Exploración de imágenes: para la generación de imágenes, al hacer clic en una imagen se abrirá una ventana de visualización de imágenes (ImageViewer), que permite guardar la imagen como PNG/UE Texture. Las texturas se pueden ver directamente en el navegador de contenido (Content Browser), facilitando su uso en el editor. También se admiten funciones como eliminar imágenes, regenerarlas, continuar generando más imágenes, entre otras. En el editor de Windows, también se puede copiar la imagen al portapapeles para facilitar su uso. Las imágenes generadas en la sesión se guardarán automáticamente en la carpeta de cada sesión, generalmente en la ruta $(ProjectFolder)/Saved/AIChatPlusEditor/Sessions/${GUID}/images
.
Plano:
Configuración general:
Configuración de la conversación:
Modificar el contenido del chat:
Visor de imágenes:
Uso de modelos grandes fuera de línea
Plantilla de diálogo
Introducción al código central
Actualmente, el complemento se divide en los siguientes módulos:
AIChatPlusCommon: Módulo de tiempo de ejecución, encargado de manejar el envío de solicitudes a diversas interfaces de API de inteligencia artificial y de analizar el contenido de las respuestas.
AIChatPlusEditor: Módulo de Editor encargado de implementar la herramienta de chat de IA del editor.
- AIChatPlusCllama: Módulo de tiempo de ejecución (Runtime), encargado de encapsular la interfaz y los parámetros de llama.cpp, logrando la ejecución offline de grandes modelos.
Thirdparty/LLAMACpp: Un módulo de terceros en tiempo de ejecución que integra la biblioteca dinámica y archivos de cabecera de llama.cpp.
El UClass responsable de enviar las solicitudes específicas es FAIChatPlus_xxxChatRequest, cada servicio de API tiene su propio UClass de solicitud independiente. Las respuestas de las solicitudes se obtienen a través de las dos clases UClass UAIChatPlus_ChatHandlerBase / UAIChatPlus_ImageHandlerBase, solo necesitas registrar el delegado de callback correspondiente.
Antes de enviar la solicitud, es necesario configurar los parámetros de la API y el mensaje a enviar; esto se realiza a través de FAIChatPlus_xxxChatRequestBody. El contenido específico de la respuesta también se analiza en FAIChatPlus_xxxChatResponseBody, y al recibir la llamada de retorno, se puede obtener el ResponseBody a través de una interfaz específica.
Más detalles del código fuente pueden obtenerse en la tienda de UE: AIChatPlus
Cllama(llama.cpp)
Herramientas de editor utilizan el modelo offline Cllama (llama.cpp)
A continuación se explica cómo utilizar el modelo fuera de línea llama.cpp en la herramienta de edición AIChatPlus.
- Primero, descarga el modelo offline desde el sitio web de HuggingFace: Qwen1.5-1.8B-Chat-Q8_0.gguf
Coloca el modelo en una carpeta específica, como por ejemplo en el directorio Content/LLAMA del proyecto de juego.
Abre la herramienta de edición AIChatPlus: Herramientas -> AIChatPlus -> AIChat, crea una nueva sesión de chat y accede a la página de configuración de la sesión.
Establece la API en Cllama, activa la configuración personalizada de la API y agrega la ruta de búsqueda de modelos, luego elige un modelo.
- ¡Comencemos a chatear!
Las herramientas del editor utilizan el modelo offline Cllama (llama.cpp) para procesar imágenes.
- Descargar el modelo offline MobileVLM_V2-1.7B-GGUF desde el sitio web de HuggingFace y colocarlo en el directorio Content/LLAMA: ggml-model-q4_k.gguf和 mmproj-model-f16.gguf。
- Configurar el modelo de la sesión:
Enviar imágenes para iniciar una conversación.
El código utiliza el modelo offline Cllama (llama.cpp)
A continuación se explica cómo utilizar el modelo offline llama.cpp en el código.
Primero, también es necesario descargar el archivo del modelo en la carpeta Content/LLAMA.
- Modificar el código para añadir un comando y enviar un mensaje al modelo offline dentro del comando.
#include "Common/AIChatPlus_Log.h"
#include "Common_Cllama/AIChatPlus_CllamaChatRequest.h"
void AddTestCommand()
{
IConsoleManager::Get().RegisterConsoleCommand(
TEXT("AIChatPlus.TestChat"),
TEXT("Test Chat."),
FConsoleCommandDelegate::CreateLambda([]()
{
if (!FModuleManager::GetModulePtr<FAIChatPlusCommon>(TEXT("AIChatPlusCommon"))) return;
TWeakObjectPtr<UAIChatPlus_ChatHandlerBase> HandlerObject = UAIChatPlus_ChatHandlerBase::New();
// Cllama
FAIChatPlus_CllamaChatRequestOptions Options;
Options.ModelPath.FilePath = FPaths::ProjectContentDir() / "LLAMA" / "qwen1.5-1_8b-chat-q8_0.gguf";
Options.NumPredict = 400;
Options.bStream = true;
// Options.StopSequences.Emplace(TEXT("json"));
auto RequestPtr = UAIChatPlus_CllamaChatRequest::CreateWithOptionsAndMessages(
Options,
{
{"You are a chat bot", EAIChatPlus_ChatRole::System},
{"who are you", EAIChatPlus_ChatRole::User}
});
HandlerObject->BindChatRequest(RequestPtr);
const FName ApiName = TEnumTraits<EAIChatPlus_ChatApiProvider>::ToName(RequestPtr->GetApiProvider());
HandlerObject->OnMessage.AddLambda([ApiName](const FString& Message)
{
UE_LOG(AIChatPlus_Internal, Display, TEXT("TestChat[%s] Message: [%s]"), *ApiName.ToString(), *Message);
});
HandlerObject->OnStarted.AddLambda([ApiName]()
{
UE_LOG(AIChatPlus_Internal, Display, TEXT("TestChat[%s] RequestStarted"), *ApiName.ToString());
});
HandlerObject->OnFailed.AddLambda([ApiName](const FAIChatPlus_ResponseErrorBase& InError)
{
UE_LOG(AIChatPlus_Internal, Error, TEXT("TestChat[%s] RequestFailed: %s "), *ApiName.ToString(), *InError.GetDescription());
});
HandlerObject->OnUpdated.AddLambda([ApiName](const FAIChatPlus_ResponseBodyBase& ResponseBody)
{
UE_LOG(AIChatPlus_Internal, Display, TEXT("TestChat[%s] RequestUpdated"), *ApiName.ToString());
});
HandlerObject->OnFinished.AddLambda([ApiName](const FAIChatPlus_ResponseBodyBase& ResponseBody)
{
UE_LOG(AIChatPlus_Internal, Display, TEXT("TestChat[%s] RequestFinished"), *ApiName.ToString());
});
RequestPtr->SendRequest();
}),
ECVF_Default
);
}
Después de recompilar, simplemente utiliza el comando en el editor Cmd y podrás ver los resultados de la salida del modelo grande en el registro OutputLog.
El archivo llama.cpp utiliza el modelo fuera de línea del plan.
A continuación se explica cómo utilizar el modelo offline llama.cpp en Blueprint.
En el panel de control, haz clic derecho para crear un nodo llamado Enviar solicitud de chat de Cllama
.
- Crear un nodo de Options y establecer
Stream=true, ModelPath="E:\UE\projects\FP_Test1\Content\LLAMA\qwen1.5-1_8b-chat-q8_0.gguf"
Crear mensajes, agregar un mensaje del sistema y un mensaje del usuario en Messages.
- Crear un Delegate que acepte la información de salida del modelo y la imprima en la pantalla.
La traducción al español es la siguiente:
- La apariencia de un blueprint completo es la siguiente: luego de ejecutar el blueprint, podrás ver en la pantalla del juego el mensaje que devuelve la impresión de un gran modelo.
OpenAI
El editor utiliza OpenAI Chat.
Abre la herramienta de chat Tools -> AIChatPlus -> AIChat, crea una nueva conversación de chat New Chat, establece la conversación ChatApi como OpenAI, y configura los parámetros de la interfaz.
Comenzar conversación:
Cambiar el modelo a gpt-4o / gpt-4o-mini permite utilizar la función de análisis visual de imágenes de OpenAI.
El editor utiliza OpenAI para procesar imágenes (crear/modificar/variar).
Crear una nueva conversación de imagen en la herramienta de chat, modificar la configuración de la conversación a OpenAI y establecer los parámetros.
- Crear imagen
- Modifica la imagen, cambia el tipo de conversación de Image Chat a Edit, y sube dos imágenes, una es la imagen original y la otra es la máscara en la que las áreas transparentes (canal alfa igual a 0) indican los lugares que necesitan ser modificados.
- Cambia el tipo de conversación de Image Chat a Variación y sube una imagen; OpenAI te devolverá una variación de la imagen original.
Utilizando el modelo de chat de OpenAI para la creación de un plan de conversación.
En el diagrama, haz clic derecho para crear un nodo llamado Enviar solicitud de chat OpenAI en el mundo
.
- Crea un nodo Options y establece
Stream=true, Api Key="tu clave de API de OpenAI"
- Crear mensajes, añadiendo un Mensaje del Sistema y un Mensaje del Usuario por separado.
Crear un Delegado que reciba la información de salida del modelo y la imprima en pantalla.
- El plano completo se ve así; al ejecutar el plano, podrás ver en la pantalla del juego el mensaje devuelto por el gran modelo.
El plano utiliza OpenAI para crear imágenes.
- Haz clic derecho en el plano para crear un nodo
Send OpenAI Image Request
y estableceIn Prompt="a beautiful butterfly"
- Crear un nodo de Options y configurar
Api Key="tu clave de API de OpenAI"
- Vincular el evento On Images y guardar las imágenes en el disco duro local.
El diseño completo se ve así, ejecuta el diseño y verás que la imagen se guarda en la ubicación especificada.
Azure
El editor utiliza Azure.
- Nueva conversación (New Chat), cambia ChatApi a Azure y configura los parámetros de la API de Azure.
Iniciar conversación.
El editor utiliza Azure para crear imágenes.
Crear una nueva sesión de chat de imagen (New Image Chat), cambiar ChatApi a Azure y configurar los parámetros de la API de Azure. Ten en cuenta que si es el modelo dall-e-2, es necesario establecer los parámetros Quality y Stype en not_use.
- Comienza a chatear y deja que Azure cree imágenes.
Plano utiliza Azure Chat
Crea el siguiente plano, configura las Opciones de Azure, haz clic en ejecutar y podrás ver en la pantalla los mensajes de chat devueltos por Azure.
Plano para crear imágenes con Azure
Crea el siguiente plano, configura las opciones de Azure y haz clic en ejecutar. Si la creación de la imagen es exitosa, verás en la pantalla el mensaje "Create Image Done".
De acuerdo con la configuración del plano anterior, la imagen se guardará en la ruta D:\Descargas\mariposa.png.
Claude
El editor utiliza Claude para chatear y analizar imágenes.
Crear un nuevo chat, cambia ChatApi por Claude y configura los parámetros de la API de Claude.
Comenzar conversación.
Utilizar el plano de Claude para chatear y analizar imágenes.
En el plano, haz clic derecho para crear un nodo llamado Enviar solicitud de chat a Claude
.
Crea un nodo de opciones y configura Stream=true, Api Key="tu clave de API de Clude", Max Output Tokens=1024
.
Crear mensajes, crear Texture2D desde un archivo y luego utilizar esa Texture2D para crear AIChatPlusTexture, finalmente agregar AIChatPlusTexture al mensaje.
- Al igual que en el tutorial anterior, crea un Evento y muestra la información en la pantalla del juego.
La traducción al español de este texto es:
"* La versión completa del diagrama de flujo se ve así, al ejecutar el diagrama de flujo, podrás ver en la pantalla del juego el mensaje que devuelve la impresión del modelo grande."
Ollama
Obtener Ollama
Puede obtener el paquete de instalación para instalar localmente a través del sitio web oficial de Ollama: ollama.com
Se puede utilizar Ollama a través de la interfaz de Ollama proporcionada por otra persona.
El editor utiliza Ollama para chatear y analizar imágenes.
Crear una nueva conversación (New Chat), cambiar ChatApi a Ollama y configurar los parámetros de la API de Ollama. Si es un chat de texto, establecer el modelo como modelo de texto, como llama3.1; si es necesario procesar imágenes, configurar el modelo como un modelo compatible con visión, como moondream.
- Comenzar a chatear
Utilizar Ollama para chatear y analizar imágenes en BluePrint.
Crea el siguiente plano, configura las opciones de Ollama, haz clic en ejecutar y podrás ver en la pantalla la información del chat devuelta por Ollama.
Gemini
El editor utiliza Gemini.
Crear una nueva conversación (New Chat), cambiar ChatApi a Gemini y configurar los parámetros de la API de Gemini.
- Iniciar chat
El editor utiliza Gemini para enviar audio.
- Seleccionar Leer audio desde archivo / Leer audio desde Asset / Grabar audio desde micrófono, generar el audio que se necesita enviar.
- Comenzar a chatear
Utiliza Gemini Chat en Blueprint.
Crea el siguiente plano, configura correctamente Gemini Options, haz clic en ejecutar y podrás ver los mensajes de chat devueltos por Gemini impresos en la pantalla.
Utiliza Gemini para enviar audio en Blueprint.
Crear el siguiente plan, configurar la carga de audio, establecer las opciones de Gemini, hacer clic en ejecutar y podrás ver en la pantalla la información de chat devuelta por Gemini después de procesar el audio.
Deepseek
Editor utiliza Deepseek
Crear una nueva conversación (New Chat), cambiar ChatApi por OpenAi y configurar los parámetros de la API de Deepseek. Agregar un nuevo modelo de candidato llamado deepseek-chat y configurar el modelo como deepseek-chat.
Iniciar conversación.
Utiliza Deepseek en tu chat de Blueprints.
Para crear el siguiente plan, configure las opciones de solicitud relacionadas con Deepseek, incluyendo el Modelo, la URL base, la URL del punto final y el ApiKey. Haga clic en "Ejecutar" y podrá ver en pantalla la información de chat devuelta por Gemini.
Registro de actualizaciones
v1.5.1 - 2025.01.30
Nueva característica
- Solo se permite que Gemini pronuncie audio.
Optimiza el método para obtener PCMData, descomprimiendo los datos de audio al generar B64.
- solicitud de añadir dos callbacks OnMessageFinished OnImagesFinished
- Optimizar el Método Gemini, obteniendo automáticamente el Método según bStream.
- Agregar algunas funciones de blueprint que faciliten la conversión de Wrapper a tipos reales y permitan obtener el Mensaje de Respuesta y el Error.
Bug Fix
- Corregir el problema de llamadas múltiples de Request Finish
v1.5.0 - 2025.01.29
Nueva funcionalidad
- Soporte para enviar audio a Gemini
Las herramientas del editor admiten el envío de audio y grabaciones.
Bug Fix
- Reparar el error de fallo en la copia de sesión
v1.4.1 - 2025.01.04
Reparación de problemas
Las herramientas de chat admiten enviar solo imágenes sin mensajes.
- Reparar el problema de envío de imágenes en la interfaz de OpenAI.
- Arreglar el problema de que en la configuración de la herramienta de chat de OpanAI y Azure faltan los parámetros Quality, Style, ApiVersion.
v1.4.0 - 2024.12.30
Nueva característica
- (Función experimental) Cllama (llama.cpp) admite modelos multimodales y puede procesar imágenes.
Todos los parámetros de tipo blueprint ahora vienen con instrucciones detalladas.
v1.3.4 - 2024.12.05
Nueva función
- OpenAI apoya la API de visión
Corrección de problemas
- Corregir el error cuando OpenAI stream=false
v1.3.3 - 2024.11.25
Nueva función
- Soporte para UE-5.5
Corrección de problemas
Corregir el problema de que algunas de las plantillas no están funcionando correctamente.
v1.3.2 - 2024.10.10
Solución de problemas
Reparar el fallo de cllama que ocurre al detener manualmente la solicitud.
Corregir el problema de la versión de descarga de la tienda donde no se encuentra el archivo ggml.dll o llama.dll en el paquete win.
- Verificar si está en GameThread al crear la solicitud, CrearSolicitud verificar en el hilo del juego.
v1.3.1 - 2024.9.30
Nuevas funciones
- Agregar un SystemTemplateViewer, que permita ver y utilizar cientos de plantillas de configuración del sistema.
Reparación de problemas
Reparar el complemento descargado desde la tienda, llama.cpp no encuentra la biblioteca de enlace.
- Solucionar el problema de la ruta demasiado larga en LLAMACpp
- Reparar el error de enlace llama.dll después de empaquetar en Windows
Corregir problema de lectura de ruta de archivos en iOS/Android.
- Reparar el error en el nombre de configuración de Cllame
v1.3.0 - 2024.9.23
Funcionalidades importantes
- Integra llama.cpp, soportando la ejecución local y offline de grandes modelos.
v1.2.0 - 2024.08.20
Nueva funcionalidad
Apoyo a OpenAI Image Edit/Image Variation.
- Soporte para la API de Ollama, permite obtener automáticamente la lista de modelos soportados por Ollama.
v1.1.0 - 2024.08.07
Nueva función
Apoyo a la propuesta decisiva.
v1.0.0 - 2024.08.05
Nueva función.
- Funcionalidad completa básica
- Soporte para OpenAI, Azure, Claude, Gemini
- Editor de chat con funciones completas integradas.
Original: https://wiki.disenone.site/es
This post is protected by CC BY-NC-SA 4.0 agreement, should be reproduced with attribution.
Visitors. Total Visits. Page Visits.
Este mensaje ha sido traducido utilizando ChatGPT, por favor proporcionar comentariosSeñalar cualquier omisión.