Dans ce modèle, j'ai créé une interface IA de base avec des capacités de plugin externes ; Une interface AI_Contracts permet l'interface avec l'IA ; L'implémentation de l'interface et le placement de la DLL compilée dans le dossier APPPlugins permettent à AI_Interface de découvrir et d'appeler le plugin en obtenant une réponse à renvoyer à l'utilisateur ; Le projet a été conçu en 4 étapes ; Chaque étape ou jalon permet au développement et à l'extension du Chatbot de devenir un produit enrichi digne d'une diffusion publique ;
Ici, l'interface reçoit une conception de base pour l'entrée et la sortie via du texte ; Maintenir l'historique du CHAT ; cette interface permet les tests de base de l'interface ; Aucun avatar n'a été ajouté ; cela est également dû au fait que l'avatar n'est pas essentiel mais cosmétique ; La première étape nous nous concentrons principalement sur la production d’une interface fonctionnelle ;
C'est le mécanisme par lequel nous allons permettre à l'UTILISATEUR de concevoir des scripts qui peuvent être exécutés par l'IA ; Au stade initial ; Fournir le mécanisme est l’objectif clé. l'interface initiale utilisée fournit uniquement la structure de la classe à implémenter ; la fonction utilisateur sera appelée par le script principal pour tous les objets de ce type trouvés à l'emplacement spécifié. cela permet une extensibilité étendue. Voici également un point sur lequel des extensions et des fonctions internes ou un framework d'IA peuvent être fournis à l'utilisateur pour être utilisés comme scripts d'assistance.
Dans la première version de l'IA, un exemple de plugin sera également créé pour permettre de tester l'interface. SAMPLE_PLUGIN cela fournira également un modèle pour la création ultérieure de plugins ; ###Remarque : petit BUG !!!!! AI_Contracts.Dll doit être déployé dans le dossier Plugins à côté du plugin ? Référencement relatif pour la séparation des plugins. Lorsque le plugin se trouvait dans le même dossier que l'application, l'application essayait de continuer à se lire et à planter, un dossier séparé était donc requis ; le MAN EXE doit également accéder à la DLL AI_Contacts SO...
Double déploiement !.
A ce stade, nous créons une fonction de mémoire interne, en fournissant une base de données de questions et réponses. ici, des réponses simples de style questions et réponses peuvent être créées, donnant un point de départ aux utilisateurs de l'application. Bien qu'il existe des implémentations où chaque tour est enregistré dans la base de données. dans cette itération, il est choisi d'être davantage axé sur une méthode SUPERVISÉE. Un éditeur de base de données devra être fourni. Mais cela sera fourni ultérieurement ; L'ordre d'exécution sera d'abord les PLUGINS, puis les questions et réponses, permettant ainsi de prioriser la découverte des réponses. Une réponse de repli sera également nécessaire pour gérer chaque fois que l'IA n'a pas de réponse ;
Une machine à états peut fournir un mécanisme pour gérer les états émotionnels ; Dans cette itération, une interface a été utilisée pour fournir une structure aux objets d'état émotionnel ; Chaque état est chargé dans le gestionnaire ; Les émotions sont détectées à chaque tour du script, ajustant les émotions actuellement contenues de manière positive et négative, permettant une intéisification des émotions. Ici, une réponse générique est donnée lorsque l'état émotionnel change. d’autres formes d’État peuvent également être transportées d’un tour à l’autre en utilisant une machine d’État ; Les méthodes de programmation précédentes utilisaient souvent des « variables itinérantes », tout en remplaçant souvent d'un état à l'autre par des valeurs de quotient finies pour le biais émotionnel. IE heureux = 0,78, SAD 0,23 ; cette technique ne permet pas l'intensité de l'émotion ; l'intensité de l'émotion est augmentée, c'est-à-dire : la joie est augmentée si la joie est détectée au prochain tour ; mais réduit si l'émotion suivante est simplement neutre. jusqu'à ce que le niveau d'intensité soit réduit à la valeur 0 qui peut changer d'état en Neutre.
La possibilité de coder et de compiler le plugin peut être fournie par l'interface du chatbot ; ici, j'ai fourni une interface à onglets pour créer des plugins, le modèle que nous avons implémenté à l'étape 1 est utilisé pour fournir un exemple de script de démarrage que l'utilisateur peut modifier et développer. SAUVEGARDER LE SCRIPT ET COMPILER LE SCRIPT sont fournis ;
Un éditeur de données permettant d'éditer les fichiers de questions et de réponses est également créé pour chaque tableau.
Ici, nous allons refactoriser le code en organisant et en étendant les fonctionnalités au framework UserScripting. Le processus de refactorisation et les commentaires permettent d'éditer et d'affiner ultérieurement l'application ; ainsi que fournir une compréhension à l'utilisateur ;
La parole sera également nécessaire pour fournir une interface utilisateur riche, bien que la reconnaissance vocale se soit améliorée au fil du temps ; Il sera ajouté principalement pour Speech out.
Certaines améliorations graphiques et thèmes seront ajoutés à l'application : (Peut-être LCARS _ Star trek Design !)
Pour le déploiement et l'accès centralisé du composant AI_Contracts : Il a également été décidé de centraliser la bibliothèque avec NUGET sous le nom SpydazWb.AI.Contracts ; Cela permet de centraliser les mises à jour supplémentaires pour la création du plugin et une livraison optimale : à ce stade, le code source AI_Contracts a également été supprimé du projet et AJOUTÉ en tant qu'assembly de référence NUGET ; Le projet AI_Contracts peut désormais être développé séparément à partir de l'interface utilisateur et des plugins ; Les plugins peuvent également être déployés en tant que packages Nuget sur une source centralisée séparément de Nuget ; c'est-à-dire un site Web centralisé !