Viewing 10 reply threads
  • Author
    Posts
    • #7516
      lecagnois
      Participant

      Leçon 1 AIML

      Nous allons maintenant utiliser le chatbot bien plus puissant avec le langage AIML

      Notre ami Anthony à commencer un immense travail sur l’ AI en française pour notre inmoov . (AI , intelligence artificielle).

      La première chose à faire est de dire à notre robot de changer de moteur pour la voix
      Nous allons donc modifier le fichier de config Inmoov.config
      Qui se trouve …/InmoovScript/

      Nous allons mettre en commantaire EarInterpretEngine=ear.AddCommand
      Et enlever le point virgule à EarInterpretEngine=chatbot

      [VOCAL]
      ;EarInterpretEngine=ear.AddCommand 
      EarInterpretEngine=chatbot
      ;ear.addCommand : it's is hardcoded text, very simple to use and script
      ;chatbot : Very powefull AIML engine

      Relancer le tout vous êtes maintenant avec le Chatbot
      Les fichiers de travail se trouvent dans :
      …/InmoovScrit/inmoovVocal/bots/fr
      Je ne sais pas a quoi servent tous les répertoires, Anthony pourra peut être nous aider
      Aiml
      Aimlif
      Config
      Maps
      sets

      Nous travaillerons surtout dans aiml pour comprendre, mais Anthony a déjà beaucoup codé de fichier AIML prêt à l’emploi
      Nous allons partir d’un exemple pour expliquer les balises vous aller vite comprendre.
      Il s’agit d un langage de balise basé sur XML (comme pour développé sous android)

      Lien en anglais pour un tuto aiml
      http://www.tutorialspoint.com/aiml/

      Comme je suis nul en anglais je vais essayer de vous traduire ce que j’ai compris.

      Exemple :

      <?xml version = "1.0" encoding = "UTF-8"?>
      <aiml version = "1.0.1" encoding = "UTF-8"?>
         <category>
            <pattern> BONJOUR TOTO </pattern>
            
            <template>
               Salut toi
            </template>
            
         </category>
      </aiml>

      <aiml> entête principale d ‘un document on fermera la balise par
      /aiml>

      <category> définit l’unité de connaissance on fermera la balise par
      </category>

      <pattern> les mots que va comprendre le bot on fermera la balise par
      </pattern>

      <template> défini la réponse du robot on fermera la balise par
      </template>

      Maintenant nous allons essayer de faire un exemple avec le petit programme que nous avons créer avec les tutos précédent .
      Nous voulons que notre InMoov compte jusqu’a trois.
      Nous avons déjà écris le script python pour cela , on va donc simplement demande au chatbot de le lancer.

      Nous allons créer un fichier nommé test.aiml dans le répertoire :
      …/InmoovScrit/inmoovVocal/bots/fr/aiml

      Voici le contenu du fichier :

      <?xml version="1.0" encoding="UTF-8"?>
      <aiml>
        
         <category>
          <pattern>compte</pattern>
          <template>
      
            <oob>
              <mrl>
                <service>python</service>
                <method>exec</method>
                <param>compte123()</param>
              </mrl>
            </oob>
      
           </template>
        </category> 
        
        </aiml>

      Lorsque que l on dira le mot compte la réponse du bot sera d’exécuter le script python .
      Que ce passe t-il entre la balise <oob> </oob> ,
      En français , Exécute ma méthode (exec) du service python en passant en paramètre le script « compte123() »

      Relancer le tout et maintenant votre inMoov fonction avec son Intelligence Artificielle grâce à Anthony vous pouvez commencer à papoter avec lui .
      Dite le mot compte, normalement il devrait compter sur ses doigts.

      Je vous parlerai des autres Balises si cela vous intéresse bien sur .

      Attachments:
      You must be logged in to view attached files.
    • #7520
      anthony
      Moderator

      Enorme sujet l’aiml ! ce n’est pas du tout “user friendly” et il y a de quoi vite devenir dingue avec ce truc. Mais c’est relativement puissant.
      Pour le moment en aiml sur ce projet je n’ai pas codé grand chose, c’est surtout de l’optimisation du travail de Gael et des correctifs auxquels vous avez participé aussi.

      Aiml :
      Dossier ou sont stockés les aiml

      Aimlif :
      Dossier ou sont converti les aiml en csv ( plus rapide à charger au démarrage, mais désactivé pour le moment il y a un soucis avec l apprentissage )

      Config :
      Dossier ou sont stocké les paramètres du robot ( quand il vous demande “quel est mon nom” par exemple ) . Ce n’est pas l’apprentissage a proprement parlé, c’est un autre sujet.

      Maps et Sets sans entrer dans les détails sont une sorte de base de donnée de correspondances. Exemple pour un fichier “couleurs” vous trouverez dedans “rouge,vert,bleu…”

      Sans le pousser dans ses retranchements, l’aiml a bien des avantages simples par rapport aux commandes basique, on peut donner des mot clé plutôt qu’une phrase complète. Ou faire des redirections afin de “corriger” ce que le robot aurait mal compris.

      Enfin y a tellement à dire. Merci pour ton travail de synthèse !

    • #7521
      Pierrick
      Participant

      Encore une remarque à la c..
      Les extraits de fichiers py de tes tutos sont truffés de symboles “&” exemple <param>compte123()</param&gt
      Est-ce juste à l’affichage sur mon pc?
      Est-ce à rapprocher du fait que quand j’ouvre un py dans notepad le “ê” devient xEA, le “é” xE9 et toutes les lettres accentuées subissent ce genre de déformation?
      Oui je sais….y’a que moi pour ce genre de pb

    • #7527
      My’s Moov
      Moderator

      @pierrick faut utiliser notepad ++

      :p

    • #7530
      lecagnois
      Participant

      @pierrick

      l’affichage des &gt, &quot ,&#039 etc…. ce sont des bug du au site qui transforme certain caractères ASCII , il te faut regarder le fichier joint ou la il ne sont pas déformés.

      • This reply was modified 7 years, 7 months ago by lecagnois.
      Attachments:
      You must be logged in to view attached files.
    • #7545
      Pierrick
      Participant

      J’utilise bien Notepad++, voir copie d’écran jointe

      Attachments:
      You must be logged in to view attached files.
    • #7547
      lecagnois
      Participant

      Avec notepad++
      Tu fais bien enregistré sous et type de fichier python (extension *.py ; *.pyw) ?
      ton encodage dans notepad ++ tu a bien encoder UTF-8 dans le menu encodage

    • #7553
      Pierrick
      Participant

      J’ai essayé encodage UTF8 avec et sans BOM. Convertir en utf8 avec et sans BOM
      J’ai essayé avec sublime text…..idem
      En résumé j’encode en UTF8 , j’enregistre sous py: c’est ok quand je réouvre dans notepad ou bloc note, MAIS ça part en vrille quand j’ouvre dans l’onglet Python de MRL

    • #7557
      lecagnois
      Participant

      je vois pas normalement l’encodage UTF-8 est le plus répandu !
      Peut être une paramètre de MRL ou la version
      Mais la moi pas spécialiste de MRL………(lol)
      si tu corrige à la main dans MRL et que tu exécute cela fonctionne ?

    • #7565
      lecagnois
      Participant

      @Pierrick

      J’ai reproduit l’erreur effectivement avec des copier/coller avec notepad++ au format UTF-8 tu a des caractères erronés .
      je n’avais pas eu le problème en tapant du code directement …..
      AHHHH les mystères de l’informatique ….

      J ai converti en ANSI puis enregistrer sous format python

      Après dans l’éditeur MRL plus de problèmes

    • #7583
      Pierrick
      Participant

      Effectivement en bidouillant un peu on y arrive.
      Merci Lecagnois

Viewing 10 reply threads
  • You must be logged in to reply to this topic.