Outils pour utilisateurs

Outils du site


linux:rivescript

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux:rivescript [2016/07/11 08:45] – [Parlons poids] brunolinux:rivescript [2016/07/12 22:31] (Version actuelle) bruno
Ligne 14: Ligne 14:
 Pour exécuter et tester votre code RiveScript, vous aurez besoin d' un interpréteur RiveScript, ou d'un programme qui utilise une bibliothèque RiveScript pour lire et à exécuter du code RiveScript.  Pour exécuter et tester votre code RiveScript, vous aurez besoin d' un interpréteur RiveScript, ou d'un programme qui utilise une bibliothèque RiveScript pour lire et à exécuter du code RiveScript. 
  
-Ce tutoriel suppose que vous utilisez la commade ''rivescript'' livré avec la bibliothèque Perl RiveScript. Sous les distributions GNU/Linux Debian  ou Ubuntu, vous pouvez installer le paquet suivant +Ce tutoriel suppose que vous utilisez la commade ''rivescript'' livré avec la bibliothèque Perl RiveScript. Sous les distributions GNU/Linux Debian  ou Ubuntu, vous pouvez installer le paquet « librivescript-perl », en tapant la commande suivante dans GNOME Terminal :
 <code bash> <code bash>
-apt-get install librivescript-perl+sudo apt-get install librivescript-perl
 </code> </code>
 ==== Le répertoire projet ==== ==== Le répertoire projet ====
 Pour ce tutoriel, vous devez créer un dossier pour enregistrer vos documents RiveScript. Suivent quelques emplacements conseillés, mais vous pouvez les placer où vous le souhaitez. Pour ce tutoriel, vous devez créer un dossier pour enregistrer vos documents RiveScript. Suivent quelques emplacements conseillés, mais vous pouvez les placer où vous le souhaitez.
  
-Pour les utilisateurs de Linux, Unix et Mac OS, je vous recommande de faire un dossier dans votre répertoire personnel, comme ceci:+Pour les utilisateurs de GNU/Linux, Unix et macOS, je vous recommande de faire un dossier dans votre répertoire personnel, comme ceci:
 <code bash> <code bash>
- Unix : /home/UTILISATEUR/rstut+ GNU/Linux : /home/UTILISATEUR/rstut
  macOS : /Users/UTILISATEUR/rstut  macOS : /Users/UTILISATEUR/rstut
 </code> </code>
Ligne 136: Ligne 136:
  
 ===== Parlons poids ===== ===== Parlons poids =====
-Bien que les réponses aléatoires sont certainement utiles, il y aura des moments où vous préférez que certaines réponses soient choisies plus souvent que d' autres. Par exemple, vous pourriez écrire un bot dont la personnalité est qu'il soit secrètement un extraterrestre prétendant être un humain qui fait semblant d'être un bot et vous voulez que le bot répondre un certain charabia inintelligible de temps à autre.+Bien que les réponses aléatoires soient certainement utiles, il y aura des moments où vous préférez que certaines réponses soient choisies plus souvent que d' autres. Par exemple, vous pourriez écrire un bot dont la personnalité est qu'il soit secrètement un extraterrestre prétendant être un humain qui fait semblant d'être un bot et vous voulez que le bot répondre un certain charabia inintelligible de temps à autre.
  
 Vous pouvez utiliser la balise ''{weight}'' dans une réponse pour augmenter la fréquence de la sélection de cette réponse par rapport aux autres. Dans notre exemple de charabia extraterrestre, vous pourriez écrire une réponse comme ceci : Vous pouvez utiliser la balise ''{weight}'' dans une réponse pour augmenter la fréquence de la sélection de cette réponse par rapport aux autres. Dans notre exemple de charabia extraterrestre, vous pourriez écrire une réponse comme ceci :
Ligne 142: Ligne 142:
 <code> <code>
 + salutations + salutations
-- Salut à tous ! {poids = 20} +- Salut à tous ! {weight = 20} 
-- Bonjour ! {poids = 25}+- Bonjour ! {weight = 25}
 - Yos kyoco duckeb ! - Yos kyoco duckeb !
 </code> </code>
Ligne 150: Ligne 150:
  
 Vous pouvez tester cela en disant « salutations »à votre bot maintes et maintes fois. Il devrait très rarement choisir la réponse « Yos kyoco duckeb ! » par rapport aux deux autres. Vous pouvez tester cela en disant « salutations »à votre bot maintes et maintes fois. Il devrait très rarement choisir la réponse « Yos kyoco duckeb ! » par rapport aux deux autres.
 +
 +La valeur du poids contrôle la probabilité que la réponse soit choisie. Les réponses qui ne comprennent pas explicitement une balise ''{weight}'' ont automatiquement un poids de un. La probabilité de chaque réponse choisie est le poids de la réponse divisée par la somme de tous les poids combinés (dans cet exemple, 20 + 25 + 1 = 46, de sorte que chaque réponse a son poids sur 46 chances d'être choisie).
 +
 +Les valeurs de poids ne peuvent pas être à zéro et ne peuvent pas être négatives.
 +
 +Vous **ne pouvez pas** utiliser des poids dans une balise ''{random}''.
 +
 +====== Saut de ligne  ======
 +À certains moments vous écrirez une très longue ligne de code RiveScript et vous allez vouloir la répartir sur plusieurs lignes. Dans ce cas, vous pouvez utiliser la commande ''^'' (Continuation). La commande ''^'' étend automatiquement les données de la ligne précédente. Voici un exemple :
 +<code>
 ++ recite moi un poeme                                                           
 +- La petite demoiselle Muffet assise sur un tabouret, \n                        
 +^ D'une manière nonchalante. \n                                                 
 +^ Avec son champ de force autour d'elle, \n                                     
 +^ L'araignée, le malotru, \n                                                    
 +^ n'est pas dans l'image aujourd'hui.  
 +</code>
 +
 +Notez que la commande de continuation n'insère pas automatiquement un espace entre la ligne précédente et la ligne de continuation. Prenons l'exemple suivant:
 +
 +<code>
 +// Il n'y aura pas d'espace entre « programmé » et « en utilisant » !
 ++ qui etes vous   
 +- Je suis une intelligence artificielle programmée
 +^ en utilisant RiveScript.
 +</code>
 +
 +Si vous avez demandé « qui etes vous » avec cette réplique, le bot répondra : « Je suis une intelligence artificielle programméeen utilisant RiveScript », sans espace entre « programmé » et « en utilisant ».
 +
 +Pour garantir qu'il y aura un espace entre les continuations, utiliser la séquence d'échappement ''\s'' où vous voulez que l'espace apparaisse.
 +<code>
 +// Celui-ci disposera d'un espace.
 ++ qui etes vous   
 +- Je suis une intelligence artificielle programmée\s
 +^ en utilisant RiveScript.
 +</code>
 +
 +Dans l'exemple « recite moi un poeme »,  la séquence d'échappement ''\n'' insère un saut de ligne à la place d'un espace.
 +
 +Si vous souhaitez souvent utiliser les continuations et que vous voulez presque toujours avoir des espaces (ou des sauts de ligne) entre chacun d' eux, vous pouvez indiquer au parseur de toujours insérer ces symboles automatiquement quand il voit une commande ''^''.
 +
 +Vous pouvez le faire avec une « option local du parseur » qui ne concerne que le fichier en cours et n'affecte les lignes qui viennent après l'option du parseur. Par exemple :
 +<code>
 +// Indique au parseur de joindre les lignes de continuation avec des sauts de ligne
 +! local concat = newline
 +
 +// Maintenant, nous n'avons pas besoin d'écrire explicitement des caractères \n caractères à chaque fois !
 ++ recite moi un poeme                                                           
 +- La petite demoiselle Muffet assise sur un tabouret,                        
 +^ D'une manière nonchalante.                                                
 +^ Avec son champ de force autour d'elle,    
 +^ L'araignée, le malotru,                                      
 +^ n'est pas dans l'image aujourd'hui. 
 +
 +// Maintenant, change le mode concat pour des espaces
 +! local concat = space
 +
 +// Ici, nous n'avons pas utiliser \s comme dans l'exemple précédent.
 ++ qui etes vous   
 +- Je suis une intelligence artificielle programmée
 +^ en utilisant RiveScript.
 +
 +
 +// Retour au mode de concaténation par défaut (qui n'insère aucun
 +// caractère lors de l'assemblage des lignes)
 +! local concat = none
 +</code>
 +
 +Sachant que le paramètre ''! local concat''  modifie la façon dont le parseur gère les lignes de continuation, ce paramètre est « au niveau du fichier » et affecte uniquement le parseur dans le fichier actuel. Lorsque le parser en a terminé avec un fichier et commence à traiter le prochain, le réglage de concaténation est remis à la valeur par défaut (''none'') et aucun espace ou saut de ligne ne sera plus automatiquement ajouté dans les commandes continuations.
 +
 +Les options supportées sont :
 +  * ''none'' : la valeur par défaut, rien est ajouté lorsque les lignes de continuation sont assemblées entre elles.
 +  * ''space'' : les lignes de continuation sont jointes par un espace (''\s'').
 +  * ''newline'' : les lignes de continuation sont jointes par un caractère de saut de ligne (''\n''). 
 +
 +===== Anatomie d'un cerveau RiveScript =====
 +
 +==== Le fichier begin ====
 +
 +Vous savez maintenant quelques-unes des notions de base sur la façon dont les déclencheurs et les réponses se rapportent les uns aux autres. Avant de continuer, vous devez savoir comment les cerveaux RiveScript sont généralement organisés. 
 +
  
linux/rivescript.1468226754.txt.gz · Dernière modification : 2016/07/11 08:45 de bruno