[Script] Interface MegaHAL (version actuelle : 4.1.0)
#1
 
Interface MegaHAL
 
Description :

MegaHAL Interface est une interface pour le module MegaHAL développé par Zev ^Baron^ Toledano et modifié par Artix, d'après l'I.A. de Jason Hutchens.

Ce script ne fonctionnera correctement qu'avec la version 3.5 du module MegaHAL modifié par Artix (Artixed Edition) qui est fournie avec.
Remarque : si vous choisissez de ne pas utiliser la version fournie du module et que vous avez des problèmes, ne venez pas m'en parler.

Le but de cette interface est d'accroître le contrôle que vous avez sur MegaHAL et d'ajouter de nombreuses fonctionnalités et améliorations.


Fonctionnalités :
  • Tout est en français.
  • Contrôle de l'I.A. par flags (donc par chan) :
    +/-megahal : Active/désactive la possibilité d'utiliser MegaHAL sur un chan donné. Ce flag est prioritaire sur les autres flags.
    +/-megahal_respond : Active/désactive les réponses du bot quand un mot mot-clé (son nick par exemple) est mentionné sur un chan donné.
    +/-megahal_chatter : Active/désactive les réponses spontanées du bot sur un chan donné (c'est à dire sans qu'il soit sollicité).
    +/-megahal_learn : Active/désactive l'apprentissage sur un chan donné.
    Notez que ces flags sont tous désactivés par défaut si c'est la première fois que vous utilisez ce script.
    Remarque : si le flag -megahal est appliqué sur un chan, les seules commandes publiques qui fonctionnent sont ".megahal on/off" et ".megahal_status"
  • Caractères spéciaux utilisables en début de ligne :
    & = apprentissage forcé + réponse forcée
    % = n'apprend pas + réponse forcée
    ~ = apprentissage forcé + ne répond pas
    $ = n'apprend pas + ne répond pas
    Remarque : attention, & et ~ sont ultra-prioritaires sur toutes les formes de filtrage et rien n'interdira au bot d'apprendre une commande par exemple, et ce même si l'apprentissage est désactivé ! Faites attention à qui vous donnez l'autorisation d'utiliser ces 2 symboles.
  • Commande d'aide n'affichant que les commandes auxquelles vous avez droit en fonction de votre accès.
  • Nombreuses commandes publiques et de partyline.
  • Régler à votre convenance les commandes et les autorisations pour chacune.
  • Définir un délai pour l'activation de l'I.A. après la connexion de l'eggdrop au serveur afin de réduire l'encombrement des files d'attente.
  • Choisir des mots clés qui provoqueront forcément une réponse. (variables acceptées).
  • Définir le niveau d'accès requis pour que l'I.A. soit autorisée à apprendre ce que dit un utilisateur.
  • Définir des autorisations rédhibitoires pour empêcher que l'I.A. apprenne ce que disent les utilisateurs ayant certains flags.
  • Définir le niveau d'accès requis pour que l'I.A. soit autorisée à répondre à un utilisateur.
  • Définir des autorisations rédhibitoires pour empêcher que l'I.A. réponde aux utilisateurs ayant certains flags.
  • Exclure certains nicks/handles de l'apprentissage : MegaHAL n'apprendra jamais ce qu'ils disent.
  • Exclure certais nicks/handles des réponses : MegaHAL ne leur répondra jamais.
  • Définir une liste de mots (jokers acceptés) que l'I.A. ne doit jamais apprendre.
  • Régler indépendamment le taux de réponse libre, le taux de réponse en réaction à un mot clé, et le taux d'apprentissage.
    Les taux sont exprimés en %.
  • Définir une longueur minimale en mots afin d'empêcher l'I.A. d'apprendre des phrases trop courtes.
  • Définir une longueur maximale en mots afin d'empêcher l'I.A. d'apprendre des phrases trop longues.
  • Choisir la longueur maximale en mots des réponses de MegaHAL (fonctionnalité d'origine du module).
  • Apprendre APRES avoir répondu, afin que la réponse ne soit pas influencée par ce qu'il vient juste d'apprendre.
  • Substituer le nick du bot par le nick de la personne à qui il répond selon un pourcentage de chances.
  • Substituer les nicks des personnes présentes sur le chan par des symboles lors de l'apprentissage, puis les substituer à nouveau par des nicks de personnes présentes sur le chan lorsqu'ils seront réutilisés par l'IA. (à l'exceptions de certains nicks que vous pouvez choisir)
  • Choisir la taille maximale du contexte (fonctionnalité d'origine du module).
  • Mode surprise autorisant l'I.A. à prendre plus de libertés (fonctionnalité d'origine du module).
  • Simuler le temps de frappe car un bot qui répond instantanément brise l'illusion.
  • Empêcher l'I.A. d'apprendre le contenu des copier/coller et le flood en imposant un délai minimum entre 2 apprentissages venant de la même personne.
  • Empêcher que l'I.A. envoie un flood de réponses (par exemple en réaction à un copier/coller dont chaque ligne mentionne le nom du bot) en imposant un délai minimum entre 2 réponses du bot à une même personne.
  • Protection anti-flood afin d'empêcher que MegaHAL réponde plus de x fois en y secondes.
  • Possibilité de faire taire le bot pendant un certain temps en lui demandant gentiment (ou pas), de choisir les autorisations requises pour pouvoir le faire, et des autorisations rédhibitoires empêchant de le faire.
  • Les réponses de MegaHAL sont placées dans une file d'attente dédiée dont la taille maximum peut être contrôlée.
  • Choisir la taille maximale du cerveau en nombre d'associations (également appelées nodes). (fonctionnalité d'origine du module)
  • Modifier le temps imparti à la génération d'une réponse par MegaHAL (par défaut 1 seconde).
  • Choisir si l'I.A. a le droit de répondre ou non quand quelqu'un tape une commande.
  • Possibilité d'activer/désactiver le mode debug du module. Ce mode permet au module d'afficher des informations sur le contexte en cas de crash mais consomme plus de mémoire.
  • Possibilité d'afficher aléatoirement une réponse double dont l'une des deux est une réponse neutre choisie aléatoirement dans une liste.
    La deuxième réponse neutre peut intervenir avant ou après la réponse de MegaHAL. Voici un exemple :
    <MenzAgitat> fais gaffe, je crois que t'es un bot.
    <bot> ou pas
    <bot> fais gaffe, t'es sur #boulets

  • Mode débogage à plusieurs niveaux affichant des informations détaillées en partyline en ce qui concerne le fonctionnement de l'interface MegaHAL. Des codes couleur sont utilisés afin que le flot d'information soit facilement lisible (rend beaucoup mieux sur fond noir que sur fond blanc).
    Voir le fichier megahal_interface.cfg pour des explications détaillées.
  • Sauvegarde automatique de la personnalité à heures fixes ou selon un intervalle de temps défini, mais aussi avant un rehash / restart / ... , et optionnellement un die.
  • Création automatique d'une copie de sauvegarde des bases de données de l'I.A. chaque jour à une heure définie.
  • Procédure de désinstallation intégrée au script afin de lui garantir une désinstallation propre à chaque re-lecture.
  • Suppression des balises "fin de couleur" (\017) que MegaHAL apprend par défaut.
  • Empêche l'I.A. d'apprendre des commandes et de les réutiliser (vous pouvez définir des exceptions)
  • Filtres d'apprentissages :
    • éviter au maximum que le bot apprenne son propre nom afin d'éviter qu'il le réutilise à outrance
    • éviter d'apprendre les <nick> dans les copier/coller
    • éviter d'apprendre les timestamps dans les copier/coller
    • personnifier le bot afin qu'il reconnaisse mieux quand on parle de lui et que ses réponses reflètent sa conscience de soi.
  • Filtres sur les réponses :
    • éviter au maximum que le bot utilise son propre nick dans ses phrases
    • personnifier le bot afin qu'il reconnaisse mieux quand on parle de lui et que ses réponses reflètent sa conscience de soi.
    • corriger certaines incohérences de langage récurrentes
    • corriger certaines fautes grammaticales récurrentes
    • corriger la casse de smileys qui ont besoin de majuscules pour conserver leur signification
    • corriger la casse des nicks des personnes présentes sur le chan (sans quoi Megahal met tout en minuscules)
    • augmenter le réalisme des réponses par certaines astuces simples (comme par exemple remplacer "pourquoi" en début de phrase par "parce que" afin que le bot ne réponde pas "pourquoi" à "pourquoi").
  • Log des réponses de MegaHAL dans les logs de chan de l'eggdrop. (en temps normal, l'eggdrop ne se log pas lui-même)


Commandes :

.aide_megahal
Affiche la liste des commandes spécifiques à l'Interface MegaHAL.

.megahal
Active/désactive l'I.A. sur le chan en cours (contrôle le flag megahal).

.learn
Active/désactive l'apprentissage sur le chan en cours (contrôle le flag
megahal_learn).

.respond
Active/désactive la réponse de l'I.A. en cas de mot clé détecté sur le chan en
cours (contrôle le flag megahal_respond).

.chatter
Active/désactive la libre expression sur le chan en cours (contrôle le flag
megahal_chatter).

.replyrate
Affiche/modifie le taux de réponse libre sur le chan en cours.

.keyreplyrate
affiche/modifie le taux de réponse en cas de mot clé détecté sur le chan en
cours.

.forget
Demande à l'I.A. d'oublier une phrase.

.forgetword
Demande à l'I.A. d'oublier un mot.

.seekstatement
Vérifie si l'I.A. connait une phrase donnée.

.countword
Vérifie si l'I.A. connait un mot donné et en compte toutes les occurrences.

.learnfile
Demande à l'I.A. d'apprendre le contenu d'un fichier.

.savebrain
Sauvegarde la personnalité.

.reloadbrain
Recharge la personnalité.

.reloadphrases
Recharge les phrases (depuis le fichier .phr).

.trimbrain
Effectue un élagage de la personnalité.

.lobotomy
Effectue un lavage de cerveau.

.restorebrain
Restaure un backup de la personnalité.

.megahal_status
Affiche le statut de l'I.A. sur le chan en cours.

.braininfo
Affiche des informations sur l'I.A.

.memusage
Affiche une estimation de la quantité de mémoire occupée par l'I.A.

.treesize
Affiche la taille d'une arborescence (commande de déboguage).

.viewbranch
Affiche le contenu d'une branche de l'arborescence (commande de déboguage).

.make_words
Retourne la phrase spécifiée, telle qu'elle sera mémorisée par l'I.A., en
mettant en évidence les caractères "glue" servant à empêcher la dissociation
de ce qui les entoure (commande de déboguage).

.debug_output
Soumet une phrase à make_words, puis a make_output dans le but de voir
l'impact du module MegaHAL sur la construction de la phrase s'il essayait de
la restituer (commande de déboguage).

.getwordsymbol
Retourne l'index (numérique) d'un mot, qui pourra ensuite être utilisé avec
.viewbranch pour voir les associations liées à ce mot (commande de déboguage).

.moulinex_in
Soumet une phrase au traitement par la moulinette entrante de l'Interface
MegaHAL, afin de voir de quelle façon elle serait modifiée lors de
l'apprentissage (commande de déboguage).

.moulinex_out
Soumet une phrase au traitement par la moulinette sortante de l'Interface
MegaHAL, afin de voir de quelle façon elle serait modifiée si le bot s'en
resservait (commande de déboguage).

.megaver
Affiche la version du module et de l'interface.


Installation du module :

L'installation du module sur un Eggdrop nécessite que ce dernier soit recompilé avec, après avoir placé les fichiers du module dans eggdrop1.6.20/src/mod/ ou eggdrop1.6.21/src/mod/ selon la version de votre Eggdrop.

L'installation du module sur un Windrop nécessite seulement de placer le fichier megahal.dll dans le répertoire modules de votre Windrop.

Ajoutez enfin la ligne suivante dans le fichier eggdrop.conf :
loadmodule megahal


Activation :

Voici les commandes à taper pour activer complètement l'I.A. sur un chan :
  .megahal on
  (active la possibilité d'utiliser MegaHAL sur ce chan)
  .learn on
  (active l'apprentissage sur ce chan)
  .respond on
  (active la réponse de l'I.A. en cas de mot clé détecté sur ce chan)
  .chatter on
  (active la libre expression sur ce chan)

Ces commandes sont à taper sur le chan sur lequel vous désirez activer MegaHAL.
Notez que .megahal on/off agit comme un interrupteur global, vous permettant d'activer/désactiver entièrement MegaHAL sur ce chan via une seule commande, mais que son utilisation ne change rien à l'état des 3 autres interrupteurs (learn, respond et chatter), qui nécessitent d'être activés indépendamment.

Si vous venez juste d'installer Interface MegaHAL et que votre bot possède déjà une personnalité, il est recommandé de lui effacer la mémoire (au moyen de la commande .lobotomy) afin de profiter pleinement des capacités de ce script.

Vous trouverez de la documentation supplémentaire dans le fichier Megahal_Interface.cfg. Veuillez vous y reporter pour la configuration du script.


Changelog :
Citation :v3.0.0
  • 1ère release publique
v3.1.0
  • Correction des réglages par défaut des options megawc_boundary et megawc_glue : les caractères [ et ] n'étaient pas échappés.
  • Correction de la doc, la variable DEBUGMODE ne PEUT PAS valoir juste 0, elle doit OBLIGATOIREMENT être une liste de 7 valeurs.
  • Correction de l'option learn_exclusion_list qui ne fonctionnait pas dans certains cas.
  • Ajout de la déclaration de package MegaHAL_Interface 3.1.0
  • Suppression de l'intégration de MC.Respond
  • Intégration de Responder (script du même auteur à télécharger séparément)
  • La file d'attente de parole est maintenant gérée différemment et simule de façon plus réaliste le temps de frappe. Auparavant, les délais de réponse étaient calculés à partir d'un point de départ commun; ils sont maintenant indépendants et sont ajoutés les uns à la suite des autres.
  • La commande .learnfile est maintenant plus bavarde et vous affiche un message de confirmation.
  • Correction : la casse des nicks des personnes présentes sur le chan est maintenant corrigée même si l'option substitute_all_nicks est activée.
  • Correction : lors d'une lobotomie, on s'assure que le fichier BRN existe bien avant d'effacer l'ancien fichier OLD.
v3.1.1
  • Correction : l'option reply_exclusion_list ne fonctionnait pas dans certains cas.
  • Changement de licence.
v3.2.0
  • Correction d'un bug se manifestant lors d'un restart du bot : il sauvegardait le brain, déchargeait le module MegaHAL, puis tentait à nouveau une sauvegarde du brain, ce qui provoquait l'erreur "invalid command name "trimbrain"".
  • Correction d'un bug lors de la correction de la casse des nicks des personnes présentes sur le chan : si un mot contenait un nick, il en corrigeait la casse. Exemple : Fira étant un nick présent sur le chan, le bot aurait répondu "ça sufFira".
  • Correction d'un bug dans l'affichage de l'aide (commande .aide_megahal par défaut) : la commande .memusage n'était pas affichée.
  • Correction d'un bug de la commande .memusage : l'unité de mesure ne s'affichait pas si la taille était inférieure à 1Ko.
  • Correction d'une erreur dans la syntaxe affichée des commandes .viewbranch et .treesize
  • Correction d'un bug dans la fonctionnalité de la commande .viewbranch
  • Correction : les caractères accentués sont désormais mis correctement en minuscules lors de l'apprentissage.
  • Correction : maintenant, la commande .lobotomy réinitialise également megahal.dic et megahal.phr
  • Correction : maintenant, la commande .restorebrain restaure également les backups de megahal.dic et megahal.phr
  • Modification : la configuration de l'Interface MegaHAL a été séparée du script et se fait désormais par le biais du fichier MegaHAL_Interface.cfg
  • Modification : le backup de megahal.brn qui est fait lors de l'utilisation de .lobotomy porte désormais l'extension .brn.old au lieu de .old
  • Suppression de l'option 2nd_neutral_reply_delay qui n'a plus lieu d'exister depuis que MegaHAL gère sa propre file d'attente (donc depuis la version 3.1.0).
  • Ajout de la reconnaissance des CTCP ACTION (/me). MegaHAL ne les apprendra pas mais pourra y répondre.
  • Ajout de l'option allow_replies_to_commands, vous permettant d'autoriser ou non MegaHAL à répondre lorsque quelqu'un tape une commande.
  • Ajout du paramètre pub_command_prefix vous permettant de définir le symbole que vous voulez utiliser pour préfixer les commandes publiques.
  • Ajout de l'équivalent dcc des commandes publiques suivantes : .aide_megahal .forget .forgetword .seekstatement .countword .learnfile .savebrain .reloadbrain .reloadphrases .trimbrain .lobotomy .restorebrain .memusage .treesize .viewbranch
  • Ajout de l'option pub_viewbranch_max, vous permettant de limiter le nombre d'éléments d'une branche qui seront affichés sur un chan.
  • Ajout de nouvelles chaînes de correction pour les moulinettes entrantes et sortantes (il s'agit des corrections que l'interface apporte au texte appris et dit afin d'augmenter le réalisme en donnant plus de sens au bot).
  • Nombreuses améliorations/optimisations mineures du code.
v3.3.0
  • Correction : les flags prioritaires ~ et & étaient inopérants si l'apprentissage était désactivé, ce qui était en contradiction avec leur rôle de passe-droit.
  • Ajout de l'option substitute_by_interlocutor_nick_rate vous permettant de choisir le pourcentage de chances pour que l'I.A. utilise le nick de la personne à qui elle répond lors de la substitution, plutôt qu'un nick aléatoire (voir l'option substitute_all_nicks).
  • Ajout de l'option learn_auth permettant d'interdire à l'I.A. d'apprendre ce que des utilisateurs n'ayant pas les privilèges requis disent.
  • Ajout de l'option reply_auth permettant d'interdire à l'I.A. de répondre aux utilisateurs n'ayant pas les privilèges requis.
  • Ajout/modification de chaînes de correction des moulinettes entrantes et sortantes (il s'agit des corrections que l'interface apporte au texte appris et dit afin d'augmenter le réalisme en donnant plus de sens au bot).
  • Ajout de nouvelles réponses neutres pour les options 2nd_neutral_pre_reply_list et 2nd_neutral_post_reply_list.
  • Modification : les caractères ; et : ont été retirés de l'option megawc_boundary afin de préserver certains smileys qui sinon étaient cassés (cependant ceux qui auront été appris avant ce correctif resteront cassés).
v3.4.0
  • L'Interface MegaHAL détecte maintenant si le module MegaHAL n'est pas chargé et affiche un message explicite en partyline et dans les logs le cas échéant. Si le module n'est pas détecté, le script tentera néanmoins de le charger automatiquement.
  • Correction : les caractères spéciaux dans le nom de l'eggdrop ne provoquent plus d'erreur.
  • Correction : la détection des mots clés a été arrangée afin qu'un mot clé ne soit plus détecté au milieu d'un autre mot.
  • Correction : les symboles de début de ligne & % ~ et $ ne pouvaient pas être utilisés par quelqu'un n'ayant pas de handle (c'est à dire pas d'accès dans la userlist de l'eggdrop).
  • Correction : les <nick> (nick) (@nick) <%nick> et autres formes courantes sont maintenant correctement filtrées dans les copier/coller.
  • Correction : les nicks n'étaient pas correctement substitués s'ils étaient collés à un symbole, comme par exemple une virgule (voir option substitute_all_nicks).
  • Correction : en raison d'un traitement de la moulinette entrante, certains smileys étaient cassés lors de l'apprentissage.
  • Ajout de l'option learn_forbidden_auth permettant de définir des autorisations rédhibitoires pour l'apprentissage à l'I.A.
  • Ajout de l'option reply_forbidden_auth permettant de définir des autorisations rédhibitoires pour les réponses de l'I.A.
  • Ajout de l'option shutup_auth permettant de définir les autorisations requises pour pouvoir faire taire le bot en le lui demandant.
  • Ajout de l'option shutup_forbidden_auth permettant de définir les autorisations rédhibitoires pour faire taire le bot en le lui demandant.
  • Ajout de l'option auto_savebrain_cron afin de pouvoir définir à quels moments (ou à quel intervalle de temps) la personnalité doit être enregistrée sur le disque dur.
  • Ajout/modification de chaînes de correction des moulinettes entrantes et sortantes (il s'agit des corrections que l'interface apporte au texte appris et dit afin d'augmenter le réalisme en donnant plus de sens au bot).
v3.5.0
  • Correction : en raison d'un traitement de la moulinette entrante, la 1ère lettre de certaines phrases était occasionnellement tronquée lors de l'apprentissage.
  • Correction : les commandes .forget et .forgetword tiennent maintenant compte de la substitution des nicks (si elle est activée) lorsque ce que vous voulez faire oublier à l'I.A. contient un nick.
  • Ajout de l'option maxlearnwords vous permettant de définir un nombre de mots maximum dans les phrases que l'I.A. a le droit d'apprendre.
  • Ajout de quelques reconnaissances de phrases supplémentaires pour dire au bot de se taire.
  • Quelques optimisations mineures du code
v4.0.0
  • Nouvelle version du module (v3.5) par Zev ^Baron^ Toledano and Jason Hutchens, et nouvelles améliorations du module par Artix. Si vous utilisiez déjà une précédente version de MegaHAL, il vous faudra recompiler votre Eggdrop avec la nouvelle version fournie s'il s'agit d'un Eggdrop, ou remplacer le fichier megahal.dll précédent par le nouveau s'il s'agit d'un Windrop.
    Cette nouvelle version du module devrait (entre autres) réduire sensiblement les problèmes de phrases incomplètes que le bot sortait fréquemment et éliminer les messages du genre "ATTEMPTING TO FREE NULL PTR" qui survenaient lors d'un restart de l'Eggdrop.
    En raison du découpage qui se fait maintenant différemment à l'apprentissage, il est recommandé de repartir avec une nouvelle personnalité (voir la commande .lobotomy).
  • Correction : la susbstitution des nicks ne fonctionnait plus dans la version 3.5.0
  • Correction : la forme de HL "nick »" est maintenant correctement filtrée.
  • Correction : la commande .seekstatement tient maintenant compte de la substitution des nicks (si elle est activée).
  • Correction : la commande .countword tient maintenant compte de la substitution des nicks (si elle est activée).
  • Correction d'un bug dans la commande .braininfo : elle ne reflétait pas l'état réel du flag megahal_learn.
  • Correction : les paramètres de couleur sont maintenant respectés partout dans les messages de l'interface (hors DEBUGMODE) et sont modifiables/désactivables à volonté. De plus, sur un chan où le mode +c est actif, les codes de couleur/gras/... seront automatiquement filtrés.
  • Modification : en raison d'un problème de découpage lié aux _ dans les __usernick$hash__, la forme devient oooooousernick$hashoooooo.
  • Modification : l'Interface MegaHAL détecte maintenant si la version du module qui est chargée est la bonne ou pas.
  • Modification : l'option mega_timeout fonctionne maintenant en millisecondes et permet donc des valeurs inférieures à 1 seconde.
    Dans les versions précédentes où le réglage se faisait en secondes, les valeurs décimales n'avaient pas l'effet souhaité.
  • Modification : les options megawc_boundary megawc_space et megawc_glue ont disparu car elles ne sont désormais plus justifiées, en raison du fonctionnement différent de la nouvelle version du module en ce qui concerne le découpage.
  • Ajout de l'option verbose_automatisms permettant de choisir d'afficher ou non les messages automatiques en partyline comme "Personnalité réduite", "Personnalité sauvegardée" et "Sauvegarde des bases de données...".
    Les messages importants et ceux qui résultent d'une opération manuelle seront cependant toujours affichés.
  • Ajout de la commande .make_words, retournant une phrase spécifiée, telle qu'elle sera mémorisée par l'I.A., en mettant en évidence les caractères "glue" servant à empêcher la dissociation de ce qui les entoure. (commande de déboguage).
  • Ajout de la commande .debug_output, permettant de soumettre une phrase à make_words, puis a make_output dans le but de voir l'impact du module MegaHAL sur la construction de la phrase s'il essayait de la restituer (commande de déboguage).
  • Ajout de la commande .getwordsymbol, retournant l'index (numérique) d'un mot, qui pourra ensuite être utilisé avec .viewbranch pour voir les associations liées à ce mot (commande de déboguage).
  • Ajout de la commande .moulinex_in, permettant de soumettre une phrase au traitement par la moulinette entrante de l'Interface MegaHAL, afin de voir de quelle façon elle serait modifiée lors de l'apprentissage (commande de déboguage).
  • Ajout de la commande .moulinex_out, permettant de soumettre une phrase au traitement par la moulinette sortante de l'Interface MegaHAL, afin de voir de quelle façon elle serait modifiée si le bot s'en resservait (commande de déboguage).
  • Ajout de la commande .megaver permettant d'afficher la version du module et de l'interface.
  • Ajout/modification de chaînes de correction des moulinettes entrantes et sortantes.
  • Nombreuses corrections / améliorations / optimisations mineures.
v4.1.0
  • Correction : l'utilisation de certains caractères provoquait une erreur avec les commandes .forget .forgetword .countword et .seekstatement
  • Correction : la moulinette entrante supprimait parfois un nick en début de phrase alors qu'il était important pour le sens de la phrase.
  • Modification : amélioration du filtrage des nicks en début de phrase lorsqu'ils ne servent qu'à attirer l'attention de l'interlocuteur.
  • Modification : les fichiers du script se trouvent désormais dans le répertoire MegaHAL_Interface.
  • Modification : Une bonne partie des substitutions faites par les moulinettes (en entrée et en sortie) ont été supprimées car elles donnaient de mauvais résultats depuis la mise en place du système de substitution des nicks.
  • Modification : l'Interface MegaHAL ne touche désormais plus à l'encodage du texte.
  • Modification : l'affichage de l'aide utilise maintenant une file d'attente dédiée ayant une priorité nulle afin de ne pas engorger les autres files d'attente de l'Eggdrop.
    Les messages contenus dans cette file d'attente ne s'afficheront que lorsque toutes les autres files d'attente sont vides.
  • Modification : les informations retournées par la commande .braininfo ont été condensées pour tenir sur 2 ou 3 lignes au lieu de 3 ou 4.
  • Modification : le paramètre substitute_by_interlocutor_nick_rate n'autorise désormais plus qu'une seule substitution par le nick de l'interlocuteur afin d'augmenter la pertinence des réponses.
  • Ajout : si le nick d'un utilisateur présent est cité en s'adressant à MegaHAL et que la substitution des nicks est activée, celui-ci pourra être réutilisé dans la réponse.
  • Diverses optimisations du code.

Téléchargement :

Vous pouvez télécharger le script ici : Interface MegaHAL v4.1.0

Vous pouvez trouver une liste de mes autres releases ici


Laissez vos commentaires / suggestions / rapports de bugs ici.
Répondre Avertir
#2
Bonjour !

Quel bonheur de voir cette publication ! Cette Interface MegaHAL m'a l'air assez géniale. J'ai cependant quelques soucis avec son installation :

J'ai remplacé le module Artixed 2.1 que j'avais par le 3.0, et ses fichiers complémentaires, sourcé le script dans le .conf, configuré le tcl, chansetté les channels. Les commandes fonctionnent, j'ai lobotomisé, mais le soucis est qu'il n'apprend strictement rien. lorsque je met le debugmode, il me dit :

*iKube* [11:53] [MEGAHAL DEBUG] i!i!i! dump process : Kube | ~Acx@EpiK-30A79117.fbx.proxad.net | Kube | #Klan | testons ce script de foufou
*iKube* [11:53] [MEGAHAL DEBUG] i!i!i!i!i! #Klan <Kube> testons ce script de foufou
*iKube* [11:53] [MEGAHAL DEBUG] i!i!i! dump is_learn_allowed_1st_pass : Kube | Kube | ~Acx@EpiK-30A79117.fbx.proxad.net | Kube (hjlmnoptx|-) | #Klan | #Klan | testons ce script de foufou
*iKube* [11:53] Tcl error [megahal_interface::process]: expected boolean value but got ""

Une idée de là où j'ai pu pécher ?
Répondre Avertir
#3
Citation : # DEBUGMODE vous permet d'activer le mode déboguage et d'afficher tout un tas
# d'informations en partyline sur le fonctionnement interne de l'Interface
# MegaHAL. Si vous activez tous les niveaux de débogage en même temps, cela
# génèrera un flood important dans la partyline de l'eggdrop.
# Si vous n'êtes pas développeur ou pas curieux, vous pouvez ignorer cette
# option.
# DEBUGMODE peut valoir 0 (mode déboguage désactivé) ou être une liste de
# 7 valeurs. Chacune des 7 valeurs peut valoir 0 (désactivé) ou 1 (activé).
Répondre Avertir
#4
Merci pour l'indic, ça marche mieux Now.

Nami-Doc a mis le doigt sur un soucis : aux lignes 391/7, pour les caracteres séparateurs et de fin de mot, les '[]" devraient être remplacés par des "\[\]"

Merci encore, pour ce script assez génial !
Répondre Avertir
#5
bsr MenzAgitat
j ai un soucis en pl stp

Code :
Tcl error [megahal_interface::process]: expected boolean value but got ""

#OpTiX-PrO# set error Tcl error [megahal_interface::process]: expected boolean value but got ""

j ai mis les scripts avec la config :

source scripts/alltools.tcl
source scripts/action.fix.tcl
source scripts/nauth.tcl
source scripts/Nick_Change_Responder.tcl
source scripts/IRC-Story.tcl
source scripts/detecteur_de_vents.tcl
source scripts/megahal.tcl
source scripts/MegaHAL_Interface.tcl

Peux tu m aider stp ?
Répondre Avertir
#6
C'est dû à une connerie de ma part, je me suis planté dans la description du DEBUGMODE.

En fait, la variable DEBUGMODE doit être une liste de 7 valeurs.

Pour désactiver totalement le DEBUGMODE, il ne faut donc pas faire :
TCL
variable DEBUGMODE 0


mais :
TCL
variable DEBUGMODE {0 0 0 0 0 0 0}



Je rectifierai ça dans la prochaine version.
Répondre Avertir
#7
Re MenzAgitat
j ai fais le changement
mais...

[/code]

[01:10:20] ‹(babita› [11:12] read-only variable
[01:10:20] ‹(babita› (write trace on "version")
[01:10:20] ‹(babita› invoked from within
[01:10:20] ‹(babita› "variable version "3.0.0.20100625""
[01:10:20] ‹(babita› (file "scripts/MegaHAL_Interface.tcl" line 646)
[01:10:20] ‹(babita› invoked from within
[01:10:20] ‹(babita› "source scripts/MegaHAL_Interface.tcl"
[01:10:20] ‹(babita› (file "babita.conf" line 124)
[01:10:20] ‹(babita› [11:12] * FICHIER DE CONFIGURATION NON CHARGE (INTROUVABLE OU ERREUR)
[01:10:20] ‹(babita› [12] Chat closed

[/code]

j suis fautif stp ?
Répondre Avertir
#8
Tu as probablement fait une erreur en modifiant quelque chose et tu fermes plus de } que tu n'ouvres de {.

Vois si t'as pas fait ça par exemple :
TCL
variable DEBUGMODE 0 0 0 0 0 0 0}


Répondre Avertir
#9
re bsr

Dsl de te déranger ( prb c t moi )

c'est résolu merci beaucoup...

marche nikel le script..

trop cool Smile
Répondre Avertir
#10
Moi j'ai juste l'impression qu'il n'apprend rien oO

Comment lui faire apprendre ? faut-il être seul avec lui dans un salon?
Répondre Avertir
#11
tape
.megahal on
.learn on

dans le canal
Répondre Avertir
#12
Et il répond au bout de combien de temps?
Répondre Avertir
#13
il faut faire
.chatter on
et
.respond on
Répondre Avertir
#14
Je vais essayer ça, mais ça m'a l'air vraiment bien. Pas mal de réglages fins, c'est cool !
Répondre Avertir
#15
J'ai un souci avec un eggdrop 1.6.20
http://pastebin.com/JDhauWJh
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté