En este modelo, he creado una interfaz AI básica con capacidades de complementos externos; Una interfaz AI_Contracts permite la interfaz con la IA; Implementar la interfaz y colocar la DLL compilada en la carpeta APPPlugins permite que AI_Interface descubra y llame al complemento y obtenga una respuesta que se devolverá al usuario; El proyecto fue diseñado en 4 etapas; Cada etapa o hito permite que el desarrollo y extensión del Chatbot se convierta en un producto enriquecido digno de lanzamiento público;
Aquí la interfaz recibe un diseño básico para entrada y salida a través de texto; Mantener el historial del CHAT; esta interfaz permite realizar pruebas básicas de la interfaz; No se ha agregado un avatar; esto también se debe a que el avatar no es imprescindible sino cosmético; La primera etapa nos enfocamos principalmente en producir una interfaz funcional;
Este es el mecanismo donde habilitaremos al USUARIO para diseñar scripts que puedan ser ejecutados por la IA; En la etapa inicial; Proporcionar el mecanismo es el objetivo clave. la interfaz inicial utilizada solo proporciona la estructura de la clase necesaria para implementarse; La función de usuario será llamada por el script principal para todos los objetos de este tipo que se encuentren en la ubicación especificada. esto permite una amplia extensibilidad. Aquí también hay un punto sobre qué extensiones y funciones internas o un marco de IA se pueden proporcionar al usuario para su uso como scripts de ayuda.
En la primera versión de la IA también se creará un complemento de muestra para permitir las pruebas de la interfaz. SAMPLE_PLUGIN esto también proporcionará una plantilla para una mayor creación de complementos; ###Nota: ¡Pequeño ERROR!!!!! ¿AI_Contracts.Dll debe implementarse en la carpeta de complementos junto con el complemento? Referenciación relativa para separación de complementos. Cuando el complemento estaba en la misma carpeta que la aplicación, la aplicación intentaba seguir leyéndose y fallaba, por lo que se requería una carpeta separada; MAN EXE también necesita acceder a la DLL AI_Contacts, así que...
¡Doble Despliegue!.
En esta etapa creamos una función de memoria interna, proporcionando una base de datos de preguntas y respuestas. aquí se pueden crear respuestas de estilo de pregunta y respuesta simples que brindan un punto de partida para los usuarios de la aplicación. Aunque hay implementaciones donde cada Turno se guarda en la base de datos. en esta iteración se elige estar más enfocado hacia un Método SUPERVISADO. Será necesario proporcionar un editor de base de datos. Sin embargo, esto se proporcionará en una etapa posterior; El orden de ejecución será PLUGINS primero, luego pregunta y respuesta en segundo lugar, lo que permitirá priorizar el descubrimiento de respuestas. También se requerirá una respuesta alternativa para manejar cualquier momento en que la IA no tenga respuesta;
Una máquina de estados puede proporcionar un mecanismo para mantener estados emocionales; En esta iteración se ha utilizado una interfaz para proporcionar una estructura para objetos de estado emocional; Cada estado se carga en el controlador; Las emociones se detectan en cada giro del guión, ajustando las emociones actuales de manera positiva y negativa, permitiendo la intensificación de las emociones. Aquí se da una respuesta genérica a medida que se cambia el estado emocional. también se pueden llevar a cabo otras formas de Estado de un turno a otro mediante el uso de una máquina de estados; Los métodos de programación anteriores a menudo utilizaban "variables itinerantes" pero a menudo reemplazaban un estado por otro con valores de cociente finito para el sesgo emocional. Es decir, feliz = 0,78, TRISTE 0,23; esta técnica no permite la intensidad de la emoción; la intensidad de la emoción aumenta, es decir: la felicidad aumenta si se detecta felicidad en el siguiente turno; pero se reduce si la siguiente emoción es simplemente neutral. hasta que el nivel de intensidad se haya reducido al valor 0 que puede cambiar de estado a Neutral.
La interfaz del chatbot puede proporcionar la capacidad de codificar y compilar el complemento; Aquí he proporcionado una interfaz con pestañas para crear complementos, la plantilla que implementamos en la etapa 1 se utiliza para proporcionar un script de ejemplo inicial para que el usuario lo edite y lo expanda. Se proporcionan GUARDAR GUIÓN Y COMPILAR GUIÓN;
También se crea un editor de datos para editar los archivos de preguntas y respuestas para cada tabla.
Aquí refactorizaremos el código organizando y ampliando la funcionalidad al marco de UserScripting. El proceso de refactorización y los comentarios permiten editar y refinar posteriormente la aplicación; así como proporcionar comprensión al usuario;
También se requerirá voz para proporcionar una interfaz de usuario enriquecida, aunque el reconocimiento de voz ha mejorado con el tiempo; Se agregará principalmente para discursos.
Se agregarán algunas mejoras gráficas y temas a la APLICACIÓN: (¡Quizás LCARS _ Star Trek Design!)
Para la implementación y el acceso centralizado del Componente AI_Contracts: También se decidió centralizar la Biblioteca con NUGET como SpydazWb.AI.Contracts; Esto permite centralizar más actualizaciones para la creación de complementos y la entrega óptima: en este punto, el código fuente de AI_Contracts también se eliminó del proyecto y se AGREGÓ como un conjunto de referencia de NUGET; El proyecto AI_Contracts ahora se puede desarrollar por separado desde la interfaz de usuario y los complementos; Los complementos también se pueden implementar como paquetes Nuget en una fuente centralizada separada de Nuget; es decir, ¡sitio web centralizado!