[TCL] Interface MegaHAL (version actuelle : 4.1.0)
#91
lesny a écrit :comment le desactiver est cela ne derange pas les fonctionne du tcl ???
Citation :Vous trouverez de la documentation supplémentaire dans le fichier Megahal_Interface.cfg. Veuillez vous y reporter pour la configuration du script.
Et dans ce fichier, tout à la fin, on trouve:
Citation :##############################
# Déboguage
##############################

# DEBUGMODE vous permet d'activer le mode déboguage de l'Interface MegaHAL
# 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.
# Le mode déboguage peut vous aider à diagnostiquer pourquoi l'I.A. n'apprend
# pas ou ne répond pas.
# Si vous n'êtes pas dans ce cas, et que vous n'êtes ni développeur ni curieux,
# vous pouvez ignorer cette option.
# DEBUGMODE est une liste de 7 valeurs booléennes. Chacune de ces valeurs peut
# donc valoir 0 (désactivé) ou 1 (activé).
# Voici dans l'ordre leur signification :
# - appels de procédures + dump des arguments envoyés
# - phase d'apprentissage
# - phase de réponse
# - suivi des corrections effectuées par la moulinette d'apprentissage/soumission
# - suivi des corrections effectuées par la moulinette de réponse
# - activation / désactivation du mode "TAGUEULE"
# - surveillance de l'anti-flood
# Exemples :
# variable DEBUGMODE {0 0 0 0 0 0 0}
# -> aucune information de déboguage ne sera affichée
# variable DEBUGMODE {0 1 0 1 0 0 0}
# -> les informations suivantes seront affichées en partyline :
# phase d'apprentissage / suivi des corrections effectuées par la
# moulinette d'apprentissage
variable DEBUGMODE {0 0 0 0 0 1 0}

# Afin de ne pas être floodé par les lignes de debug au cas où l'eggdrop
# se trouve sur de nombreux chans fréquentés, le mode debug peut restreindre
# sa surveillance à un seul chan que vous définissez ici.
# Veillez à respecter la casse des caractères de votre chan.
# Si vous souhaitez malgré tout activer le mode debug sur tous les chans en
# même temps, mettez "*"
variable DEBUGMODE_chan "*"

# Activer/désactiver le mode debug du module MegaHAL.
# Ce mode permet au module d'afficher des informations sur le contexte en cas
# de crash du module, mais utilise plus de mémoire.
# (0 = désactivé ; 1 = activé)
set ::mega_debug 0

Quant à savoir si ça gène le fonctionnement de désactiver ce mode... A priori, le mode debug est fait pour trouver une anomalie de fonctionnement, donc un script (ou n'importe quel programme) fonctionne sans le mode debug. Ou plus exactement, s'il fonctionne avec le mode debug, il n'y a aucune raison pour qu'il ne fonctionne pas sans.
Répondre
#92
La module fonctionne, mais quand je fais un .restart l'eggdrop s'arrete avec un buffer overflow. L'eggdrop ne fonctionne plus. Si je supprime le fichier megahal.brn, ca fonctionne.

Sans le script tcl, ca fonctionne bien. Mais avec le script tcl, il fait un crash sur un restart.

J'utilise eggdrop version 1.6.21 sur un 64 bit ubuntu.

EDIT: solved
Répondre
#93
@morfeus :
Pourrais-tu s'il te plaît partager ta solution afin de servir de référence au cas où d'autres rencontreraient le même problème ?
Répondre Avertir
#94
J'ai un petit problème avec le script de megahal :

Il n'apprend visiblement pas la phrase avec le bon encodage :

[17:22] <@Megatchu> Est-ce que tu vas te décider a apprendre les accents hein ?

-> En partyline

[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i!i!i! #ecole <Megatchu> est-ce que tu vas te décider a apprendre les accents hein ?
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! ENUMERATION DES CRITERES D'APPRENTISSAGE (1ERE PASSE)
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! Il ne s'agit pas d'un CTCP ACTION.
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! L'apprentissage est actif sur #ecole (flag +megahal_learn).
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! Megatchu/Megatchu n'est pas présent dans la liste $learn_exclusion_list
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! Megatchu/Megatchu n'a pas d'autorisations rédhibitoires pour pouvoir apprendre à l'I.A. (hjlmnoptx|-)
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! Megatchu/Megatchu a les privilèges requis pour apprendre à l'I.A. (hjlmnoptx|-)
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! aucun mot ne figure dans la liste des mots dont l'apprentissage est interdit
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! Le mode "floodlock_learn" n'est pas actif pour Megatchu sur #ecole
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! tirage d'un nombre aléatoire entre 1 et 100 afin de déterminer si le bot a le droit d'apprendre : 90
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! La phrase a une longueur supérieure ou égale à $minlearnwords (12 >= 4)
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! La phrase a une longueur inférieure ou égale à $maxlearnwords (12 <= 20)
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! le bot a 100% de chances d'apprendre.
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! la ligne n'est pas une commande ou fait partie des commandes autorisées.
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! ENUMERATION DES CRITERES D'APPRENTISSAGE (2EME PASSE)
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! La phrase a une longueur supérieure ou égale à $minlearnwords (12 >= 4)
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! La phrase a une longueur inférieure ou égale à $maxlearnwords (12 <= 20)
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! la ligne n'est pas une commande ou fait partie des commandes autorisées.
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] [#ecole] est-ce que tu vas te décider a apprendre les accents hein ?
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] --learn--> est-ce que tu vas te décider a apprendre les accents hein ?
[17:22] <BigBrother> [17:22:26] [MEGAHAL DEBUG] i!i!i! appris est-ce que tu vas te décider a apprendre les accents hein ? de Megatchu

Donc si en partyline le bot m'affiche bien l'accent, la phrase apprise est en revanche modifiée, et c'est du coup très difficile d'effacer ces mots même via un .forgetword, je suis donc obligé de passer par .forget au risque de chopper la mauvaise phrase :/

Encore une fois, j'ai la case encode/decode utf8 de décoché sur mIRC, et via un autre script comme le motus je n'ai aucun problème avec les accents.

[17:27] <~Megatchu> écolieres
[17:27] <~BigBrother> ::::| E C O L I E R E S |:::| B A L L O N N É _ |:::: 2pts


EDIT : J'ai regardé un peu via google et le code TCL, en faisant quelques essais.
Visiblement la modification suivante permet de ne plus faire bugger l'encodage :


###
### Apprentissage
###
proc ::megahal_interface::learn {nick clean_nick chan clean_chan text} {
set encoded [encoding convertfrom utf-8 $text]
set text $encoded
Répondre
#95
Bonsoir,

Je suis débutant en eggdrop, j'ai tenté d'installer un eggdrop 1.6.21 sous Gentoo 32 bits avec le module MegaHAL 3.5 fournis dans l'archive de l'interface MegaHAL 4.0.0 (que j'ai lui même installé). Je n'ai eu aucun problème insurmontable pendant la compilation ou la configuration, mais il semble que MegaHAL ne soit pas reconnu.

Lorsque je tape .megahal on, l'eggdrop me sort le message "Quoi? Essayez '.help'", pourtant lorsque je tape .modules MegaHAL 3.5 est bien présent dans la liste. MegaHAL Interface a également l'air d'être chargé puisqu'il effectue une sauvegarde toutes les heures et que les commandes comme .lobotomy sont reconnues.
Je me suis bien rajouté en propriétaire dans la configuration avec la ligne "set owner" et ai vérifié que les commandes .set et .tcl étaient bien activées, tel que décrit dans le post http://www.eggdrop.fr/board/Aidez-nous-a...t-112.html. Le module MegaHAL a l'air d'être chargé mais aucune de ses commandes n'est reconnue par l'eggdrop (que ce soit en telnet ou en DCC). J'ai aussi essayé de rajouter les flags +megahal, +learnall et +freespeak sur les canaux dans la configuration (http://wiki.barkerjr.net/wiki/MegaHAL_Module) mais ils ne sont pas reconnus non plus et empêchent même le rehashage de l'eggdrop.
Répondre
#96
Salut,

Ta essayer de taper en PL ou sur salon la commande .megahal on ?
Essaye sur salon.

De plus il faut exactement faire ça au premier lancement :

Citation :Mise en route :

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.
Répondre Avertir
#97
En effet, comme le sous-entend alias_angelius, le script "interface MegaHal" permet d'avoir les commandes en canal.
Répondre
#98
Effectivement, je n'avais pas fait attention à "Ces commandes sont à taper sur le chan sur lequel vous désirez activer MegaHAL". Apparement ça marche là, merci beaucoup!
Répondre
#99
Bonjour,

Voilà je post car j'ai un soucis sur la version 4.0
Je m'explique mieux.

J'ai supprimer l'ancien cerveau toutes la totalité.
Les fichiers .aux etc.

Ensuite j'ai mis les nouveau fichiers.
Ainsi que le module fournis dans le dossier zip mis en téléchargement sur le site.
J'ai donc recompiler l'eggdrop tout niquel pas de soucis.

Lorsque je lance l'eggdrop voici ce que j'ai dans putty :
Citation :talkme [~/Orange/Notifica] > ./eggdrop Notifica.conf

Eggdrop v1.6.20 © 1997 Robey Pointer © 2010 Eggheads
[13:20:33] --- Loading eggdrop v1.6.20 (Sat Sep 1 2012)
[13:20:33] Listening at telnet port 7126 (all).
[13:20:33] Module chargé: dns
[13:20:33] Module chargé: channels
[13:20:33] Module chargé: server
[13:20:33] Module chargé: irc
[13:20:35] MegaHAL v3.4 by ^Baron^ loaded.
[13:20:35] Module chargé: megahal
[13:20:35] Ne peut pas charger les modules megahal.so: /home/talkme/Orange/Notifica/modules/megahal.so.so: cannot open shared object file: No such file or directory
[13:20:35] Module chargé: ctcp
[13:20:35] Module chargé: blowfish
[13:20:35] Module chargé: console (avec support internationnal)
[13:20:35] Module chargé: uptime
[13:20:35] Nick Change Responder v2.0.20110408 (©2011 MenzAgitat) a été chargé.
[13:20:35] 04[Interface MegaHAL - Erreur] Vous utilisez une version du module MegaHAL antérieure à la v3.5. Vous devez impérativement utiliser la version fournie avec cette interface pour qu'elle puisse fonctionner.
[13:20:35] 04[Action Replyer - ERREUR] Vous avez activé l'option megahal_interface mais le script Interface MegaHAL v3.4.0 (ou plus) n'est apparemment pas présent.
[13:20:35] 04[Responder - ERREUR] Vous avez activé l'option use_MegaHAL_Interface mais le script Interface MegaHAL v3.0.1 (ou plus) n'est apparemment pas présent.

Voici dans la conf les modules chargé :
Citation :loadmodule megahal
loadmodule megahal.so

Malgrès tout sa le bot se connecte sur l'irc.
Donc voici ce qui se passe lors d'un .megahal on et .aide_megahal :

Citation :[13:26:07] (+alias_angelius) .megahal on
[13:26:07] (+Notifica) alias_angelius, On peut écrire comme on parle et sans faire de faute ses pas comme certain il est aussi drole en vrai qu'en photo
[13:26:11] (+alias_angelius) .aide_megahal
[13:26:11] [Quit] Notifica [Notifica@761501953.fr] Read Error: EOF from client

Donc lors du .megahal on ya juste la phrase qui sort sais pas d'ou vus que le cerveau et vide..
Et lors du .aide_megahal il crash voici l'erreur en PL :

Citation :[13:26:11] <Notifica> [13:26:18] * Last context: tclhash.c/710 [Tcl proc: *pubm:mega, param: $_pubm1 $_pubm2 $_pubm3 $_pubm4 $_pubm5]
[13:26:11] <Notifica> [13:26:18] * Please REPORT this BUG!
[13:26:11] <Notifica> [13:26:18] * Check doc/BUG-REPORT on how to do so.
[13:26:11] <Notifica> [13:26:18] * Wrote DEBUG
[13:26:11] <Notifica> [13:26:18] * SEGMENT VIOLATION -- CRASHING!

Je transmet par pastebin le megahal.cfq pour gagner du temps au cas ou une erreur de ma part aurez était faite :
http://pastebin.com/9Bt9rbSa

Voila Smile
Répondre Avertir
Résolu,

J'ai réussis à trouver d'ou venais l'erreur Smile
Répondre Avertir
(02/09/2012, 11:09)alias_angelius a écrit : Résolu,

J'ai réussis à trouver d'ou venais l'erreur Smile

Trouver l'erreur, c'est bien, l'expliquer pour le cas où quelqu'un aurait le même souci est mieux.
Répondre
J'avais pas mis : megahal.mod dans le bon dossier.
Il était dans eggdrop1.6.20/src
Hors il faut le mettre dans : eggdrop1.6.20/src/mod

Voilà.
Répondre Avertir
Nouvelle version disponible : v4.1.0

Changelog partiel :

Citation :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 :   Interface MegaHAL v4.1.0

Vous pouvez trouver une liste de mes autres releases ici


Laissez vos commentaires / suggestions / rapports de bugs.
Répondre Avertir
Je peux tapper n'importe quel commande sur un salon rien ne fonctionne ... J'sais pas d'où ça viens ! Surprised
Répondre Avertir
Raisons possibles :
  • script pas installé / pas activé -> voir procédure d'installation dans la doc
  • erreur au chargement du script, donc script pas chargé -> connecte-toi en partyline et tape .rehash pour relire tous les scripts, puis surveille si un message d'erreur s'affiche au chargement de l'Interface MegaHAL.
  • ton eggdrop ne te reconnaît pas -> connecte-toi à la partyline et assure-toi d'associer un masque de host pertinent à ton handle
  • tu écris en couleur / gras / ...
Répondre Avertir


Atteindre :


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