mardi 10 septembre 2013

Luchiana - Présentation de l'architecture logicielle

Après la présentation de l'architecture physique et matérielle, voici la présentation de l'architecture logicielle.
    Côté client, c'est simple. Il y a la partie principale, l'interraction avec l'utilisateur. Ce module s'appuis sur le module Audio pour la reconnaissance et la synthèse vocale si ces options sont activées. Sinon le module peut fonctionner en solo. Il repose également sur un module de gestion des connexions. C'est un client TCP asynchrone semblable à celui dont j'ai publié le code précédemment. Ce module de connexion s'appuie sur un module Sécurité qui permet de chiffrer ou déchiffrer le contenu échanger entre le client et le serveur.

    Côté serveur, c'est un peu plus complexe. L'idée est d'avoir un module par type d'action. Un module web permettant de rechercher sur internet, d'envoyer des maisl ou de tweeter, un module Math pour toutes les opérations mathématiques, un module TankBot pour l'intéraction avec mon TankBot et un module System pour l'interaction avec le système linux du Raspberry. On retrouve également les modules de connexion avec le serveur TCP et le module de sécurité pour le chiffrement des communications.
    L'essentiel du travail est réalisé par un module nommé Cerveau. Il se charge d'analyser la phrase donnée par l'utilisateur. Il cherche dans sa base de connaisance l'action ou la réponse associée.
La base de connaissances ressemble à de l'AIML.

Voici un exemple:
comment/appelles/?;Je m'appelle Luchiana./Mon nom est Luchiana.
Cette ligne signifie: si une phrase contient "comment", "appelles" et un "?" alors réponds aléatoirement: "Je m'appelle Luchiana." ou "Mon nom est Luchiana."
La partie précédent le ";" est ainsi celle relative à l'entrée de l'utilisateur. Celle qui suit le ";" est la réponse.
Les réponses peuvent également être ou nécessiter des commandes/actions:
donne|quelle/date/?;bash;date +%d-%m-%Y;Nous sommes le %OUT%
Ici on voit apparaitre le "|". Il signifie que l'un des deux mots qui l'entourent doivent être présent. On voit également "bash;date +%d-%m-%Y" qui signifie que le Cerveau doit exécuter cette commande avant de répondre. Le résultat remplacera le %OUT% dans la réponse.

Aucun commentaire:

Enregistrer un commentaire