[TCL] Interface MegaHAL (version actuelle : 4.1.0)
Bonjour,

Voila j'ai un eggdrop 1.6.21 compilé avec les tcl 8.6.

J'ai bien suivi le tuto pour installer l'interface MegaHAL, je compile mon eggdrop sauf que meme si je n'ai aucun message d'erreur, le fichier megahal.so ne se créé pas du coup j'ai un message d'erreur au lancement du bot que voici :

[15:10:35] 04[Interface MegaHAL - Erreur] Vous devez charger le module MegaHAL avant l'Interface MegaHAL. Tentative de chargement du module...
[15:10:35] Can't load modules megahal: /home/xxxxx/eggdrop3/modules/megahal.so: cannot open shared object file: No such file or directory
[15:10:35] 04[Interface MegaHAL - Erreur] Le module MegaHAL n'a pas pu ▒tre charg▒, abandon du chargement de l'Interface MegaHAL.





Vous avez une idée ?
Par avance merci
Répondre
Tu dois placer le répertoire megahal.mod dans le répertoire source de l'eggdrop avant de le compiler, de façon à avoir un chemin comme celui-ci :
eggdrop1.6.20/src/mod/megahal.mod/

En faisant make install, le fichier megahal.so devrait se positionner dans le répertoire de destination eggdrop/modules/megahal.so
Si ce n'est pas le cas, copie-le à cet endroit manuellement.
Répondre Avertir
Bonjour,

J'ai installer le tcl, et durant un moment l'eggdrop plante.
J'était en PL à ce moment la et rien comme message pour indiquer pourquoi..

Voici le message de quit

Citation :.[11:59:07] [Quit] Notifica (Eggdrop-Al@4079072706.eu) vient de quitter (Ping timeout: 185 seconds)

le megahal cfg :

Citation : ###############################################################################
#
# Interface MegaHAL v4.1.0 ©2007-2016 Menz Agitat
# Configuration
#
###############################################################################

# Notez que certaines des variables qui suivent sont définies dans le
# namespace global. Ce sont des variables déclarées et utilisées en interne
# par le module MegaHAL; il est donc important de les laisser où elles sont.


##############################
# Paramètres de l'I.A.
##############################

# Délai en secondes après lequel l'I.A. sera activée lors de la connexion de
# l'eggdrop au serveur. Vous pouvez augmenter ce délai afin de laisser le
# temps à votre bot de passer le flood des services et les messages qu'il doit
# envoyer au serveur en retour. Cela permet de ne pas encombrer inutilement
# les files d'attente de l'eggdrop à un moment où elles sont déjà engorgées.
# Le délai est en secondes.
variable IA_activation_delay 5

# Fréquence à laquelle le bot va répondre (par défaut 3%)
variable replyrate 95

# Fréquence à laquelle le bot va répondre si on prononce son nom ou un mot
# clé défini dans trigger_words (par défaut 90%)
variable keyreplyrate 50

# Fréquence à laquelle le bot va apprendre (par défaut 100%)
variable learnrate 100

# Nombre minimum de mots requis dans une phrase pour que MegaHAL l'apprenne
# (Il est recommandé de ne pas définir une valeur inférieure à $maxcontext+1,
# voir la variable maxcontext plus bas)
variable minlearnwords 3

# Nombre maximum de mots dans une phrase pour que MegaHAL l'apprenne.
# Si vous ne voulez pas définir de maximum, mettez 0
variable maxlearnwords 0

# Nombre maximum de mots dans une réponse
# Cela peut permettre d'éviter les longues phrases incohérentes, interminables
# et dénuées de sens.
# Ce paramètre force l'I.A. à construire des phrases plus courtes.
# Les valeurs recommandées sont environ 25-40; réglez à 0 pour autoriser une
# taille illimitée.
set ::maxreplywords 15

# Temps maximum (en millisecondes) que MegaHAL s'autorise pour générer une
# réponse.
# Remarque : cette valeur est rendue paramétrable à des fins expérimentales;
# il n'est pas recommandé d'y toucher sans but précis.
set ::mega_timeout 1000

# Pourcentage de chances pour que le bot substitue son nick par celui de la
# personne à qui il répond. Mettez 0 si vous ne souhaitez pas qu'il fasse ça.
variable nickswitchrate 100

# 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'I.A. ?
# (0 = désactivé ; 1 = activé)
# Cette option permet, si elle est activée, de s'assurer que lorsque le bot
# utilisera le nick de quelqu'un dans une de ses réponses, ce nick sera
# presque toujours celui d'une des personnes présentes à ce moment.
# Remarque : cette option ne doit pas être activée ou désactivée selon votre
# humeur. La personnalité se construit différemment selon comme vous l'avez
# réglée et une lobotomie est fortement recommandée chaque fois que vous la
# modifierez.
variable substitute_all_nicks 1

# Nicks à exclure de la substitution des pseudos. Cette option est liée à
# l'option substitute_all_nicks ci-dessus et n'a de sens que si cette dernière
# est activée.
# Les nicks listés ici ne seront pas substitués par un symbole lors de
# l'apprentissage, et donc seront appris et réutilisés tels quels par l'I.A.
# Ils ne seront pas non plus utilisés lors de la substitution des symboles
# par des nicks dans les réponses du bot.
# Notez que si vous faites des modifications dans cette liste, elles ne seront
# pas répercutées sur ce que l'I.A. a déjà appris avant.
# Vous pouvez utiliser les variables $::botnick ou $::nick pour représenter le
# nick de l'Eggdrop.
variable nick_substitution_exclusion_list {artificiella_ Talk-Me Jessicao Melindao Player-Plus Security Player-Radio Jessica}

# Pourcentage de chances pour que l'I.A. utilise le nick de la personne à qui
# elle répond lors de la substitution. Voir l'option substitute_all_nicks.
# (par défaut 50%)
variable substitute_by_interlocutor_nick_rate 100

# Mots clés auxquels le bot doit répondre.
# Vous pouvez par exemple y mettre le nick de l'eggdrop, ses nicks
# alternatifs, des mots clés mots comme hello, musique, etc...
# Vous pouvez utiliser les variables $::botnick ou $::nick pour représenter le
# nick de l'Eggdrop.
variable trigger_words {$::botnick bot eggdrop windrop hello bonjour}

# Liste de mots que l'I.A. ne doit pas apprendre.
# Si une ligne contient l'un de ces mots, toute la ligne sera exclue de
# l'apprentissage. Vous pouvez utiliser des jokers.
# Exemples : *bot* matchera également "rabotage"
# "* bot *" matchera le mot "bot" sauf s'il est en début ou en fin de phrase
# "bot *" matchera le mot "bot" en début de phrase
# "* bot" matchera le mot "bot" en fin de phrase
variable learn_exclusion_wordlist {"*http://*" "http://*" "*www.*" "www.*" "Tcl:*"}

# Caractères servant de préfixe aux commandes
# (afin de permettre à l'I.A. d'éviter d'apprendre/réutiliser des commandes)
# remarque : pour désactiver ce filtrage et ainsi autoriser l'I.A. à apprendre
# et réutiliser des commandes (à vos risques et périls), mettez {}
variable command_prefixes {}

# Commandes pouvant être apprises/réutilisées par l'I.A. séparées par un espace.
# Ces commandes pourront être apprises et réutilisées par l'I.A. malgré
# le filtrage; cette règle est prioritaire sur la variable command_prefixes
# ci-dessus. Les jokers sont acceptés. Voir les exemples fournis pour l'option
# learn_exclusion_wordlist concernant la bonne utilisation des jokers.
# Exemple : variable allowed_commands {"!kick *" !randomkick}
variable allowed_commands {}

# MegaHAL est-il autorisé à répondre lorsque quelqu'un tape une commande ?
# Remarque : voir l'option "command_prefixes"
# (0 = non ; 1 = oui)
variable allow_replies_to_commands 0

# Taille maximale du contexte (peut valoir de 1 à 5)
# 1 le fera bredouiller de façon incohérente la plupart du temps
# 2 est recommandé pour avoir des réponses amusantes
# 3 est plus ennuyeux mais produira aussi beaucoup plus de phrases cohérentes
# 4 et 5 le changeront en un perroquet au lieu d'une I.A. rigolote
variable maxcontext 3

# Mode "surprise" (0 = off ; 1 = on)
# Ce paramètre change la façon dont le bot construit ses phrases.
# S'il est activé, l'I.A. essaie de trouver des combinaisons de mots
# non-conventionnelles, ce qui signifie plus de fun mais aussi des phrases
# plus incohérentes. S'il est désactivé, la construction des phrases sera plus
# sûre mais l'I.A. ressemblera plus à un perroquet; il n'est donc recommandé de
# le désactiver que si la taille de l'I.A. est vaste, auquel cas le bot a
# beaucoup d'options valides à utiliser.
set ::surprise 1

# Taille maximum de l'I.A. (en nombre de nodes)
# Cette valeur influe sur la taille du cerveau, donc sur la place qu'il
# occupe en RAM ainsi que sur le disque dur.
# Estimation très approximative : 50000 nodes = 1Mo
# Il est recommandé de laisser la valeur par défaut, mais vous pouvez la
# diminuer si la consommation de RAM est un problème pour vous.
set ::maxsize 1000000

# Taille maximale de la file d'attente des réponses.
# Tant que le nombre de réponses contenues dans la file d'attente est
# supérieur ou égal à cette valeur, MegaHAL n'autorise pas l'ajout de
# nouvelles réponses provenant de l'I.A.
# Sachez néanmoins si vous utilisez conjointement Responder, qu'il est
# prioritaire et est autorisé à ajouter de nouvelles réponses quelle que soit
# la taille de la file d'attente.
variable max_talk_queue 3

# Vitesse à laquelle le bot répond (pour simuler le temps de frappe)
# reply_speed_coeff = coefficient de rapidité, multiplie/divise la rapidité
# (0.5 divise par 2 la vitesse de référence, etc)
# reply_speed_offset = ajoute ou enlève des secondes au délai (pour l'affinage)
variable reply_speed_coeff 1
variable reply_speed_offset 0

# Intervalle de temps minimum entre 2 apprentissages de la part d'une même
# personne (en secondes).
# Remarque : ce paramètre d'éviter à l'I.A. d'apprendre le contenu des
# copier/coller ou le flood. Il est conseillé de laisser au minimum 3 secondes
# pour tenir compte du fakelag qui espace les lignes de 2 secondes lorsqu'on
# copie/colle beaucoup de lignes d'un seul coup.
variable learn_interval 5

# Intervalle de temps minimum entre 2 réponses du bot à une même personne
# (en secondes)
# Remarque : ce paramètre permet d'éviter un flood de réponses de l'I.A. quand
# quelqu'un fait un copier/coller de 10 lignes dont chacune contient le nom
# de l'eggdrop par exemple.
variable reply_interval 5

# Protection anti-flood (à combien de lignes max en combien de secondes
# doit-il répondre ?)
variable floodlimiter 4:30

# Temps en minutes pendant lequel le bot se taira s'il lui est demandé de la
# fermer (également appelé mode "TAGUEULE")
variable shutup_time 5

# Liste des déclencheurs du mode "TAGUEULE"
# On choisit d'utiliser $::nick (qui est le nick par défaut de l'eggdrop)
# plutôt que $::botnick (qui est le nick actuel de l'eggdrop) car au moment
# où le script se charge au démarrage de l'eggdrop, $::botnick n'est pas
# encore renseigné.
variable shutup_triggers {
{ta gueule $::nick} {$::nick ta gueule}
{taggle $::nick} {$::nick taggle}
{ta geule $::nick} {$::nick ta geule}
{tg $::nick} {$::nick tg}
{ferme-la $::nick} {$::nick ferme-la}
{ferme la $::nick} {$::nick ferme la}
{la ferme $::nick} {$::nick la ferme}
{tu la fermes $::nick}
{tais-toi un peu $::nick}
{tais toi un peu $::nick}
{tais-toi $::nick} {$::nick tais-toi}
{tais toi $::nick} {$::nick tais toi}
{chut $::nick} {$::nick chut}
{ça suffit $::nick} {$::nick ça suffit}
{ca suffit $::nick} {$::nick ca suffit}
{ça suffit maintenant $::nick}
{ca suffit maintenant $::nick}
{shutup $::nick} {$::nick shutup}
{ftg $::nick} {$::nick ftg}
{stfu $::nick} {$::nick stfu}
{couché $::nick} {$::nick couché}
{$::nick ! couché} {va coucher $::nick}
{$::nick à la niche} {$::nick a la niche}
{la niche $::nick} {vos gueules les bots}
{vg les bots} {ta gueule le bot} {tg le bot}
}

# Le bot peut ajouter une 2ème réponse neutre avant ou après la réponse
# principale de MegaHAL (s'il répond).
# Ajouter aléatoirement une 2ème réponse neutre avant ou après la réponse
# principale ? (0 = non ; 1 = oui)
variable 2nd_neutral_reply 1

# Quel pourcentage de chances pour qu'il y ait une 2ème réponse neutre ?
variable 2nd_neutral_reply_rate 10

# Réponses neutres possibles à placer avant la réponse principale.
# Si vous souhaitez utiliser les caractères \ { } vous devez les antislasher
# comme ceci : \\ \{ \}
# Vous pouvez utiliser les variables $nick $chan et $hand dans les réponses.
variable 2nd_neutral_pre_reply_list {
{nawak} {n'importe quoi} {oué oué} {ouais c'est ça ouais} {ben voyons}
{gné ?} {huh ?} {ou pas} {mmh ?} {euh..} {oué} {erf} {+1} {lol} {mdr} {?}
{huh} {uh ?} {oups} {:]} {:°} {Surprised} {bizarre} {tiens ?} {><} {genre} {bah}
{mwé} {mouais} {voilà} {hein ?} {héhé} {et ?} {osef} {on s'en fout}
{t'as raison}
}

# Réponses neutres possibles à placer après la réponse principale.
# Si vous souhaitez utiliser les caractères \ { } vous devez les antislasher
# comme ceci : \\ \{ \}
# Vous pouvez utiliser les variables $nick $chan et $hand dans les réponses.
variable 2nd_neutral_post_reply_list {
{enfin je crois} {hum mauvaise fenêtre} {oups mauvais chan}
{ça a un sens ce que je viens de dire ?} {ou alors j'ai rien compris}
{non ?} {ou pas} {bref} {mmh ?} {euh..} {oué} {lol} {mdr} {?} {huh ?}
{uh ?} {oups} {:]} {:°} {Surprised} {><} {bah} {mwé} {voilà} {hein ?} {héhé}
{enfin moi c'que j'en dis} {un truc de dingue} {bizarre} {tu trouves pas ?}
{t'es pas d'accord ?} {je reviens} {c'est fou} {enfin osef} {enfin bref}
{mais qu'est-ce que je dis ><}
}


##############################
# Paramètres divers
##############################

# Sauvegarde automatique de la personnalité lorsque la commande DIE est
# utilisée ? (0 = désactivé ; 1 = activé)
set ::mega_saveondie 1

# A quelle fréquence souhaitez-vous enregistrer la personnalité ?
# Remarque : Il s'agit d'une chaîne de crontab, vous trouverez des détails
# concernant la syntaxe ainsi que de nombreux exemples ici :
# http://fr.wikipedia.org/wiki/Crontab
# Avec le réglage fourni par défaut, la personnalité est enregistrée sur le
# disque dur une fois par heure.
variable auto_savebrain_cron "3 * * * *"

# Heure de la création d'une copie de sauvegarde quotidienne des bases de données.
variable backuptime "05:15"

# Afficher l'aide en notice ou par message privé ?
# (0 = notice ; 1 = message privé)
variable help_mode 0

# Nombre maximum de lignes que la commande .viewbranch a le droit d'afficher
# sur un chan.
variable pub_viewbranch_max 10

# Ce paramètre permet de choisir d'afficher ou non les messages automatiques
# en partyline comme "Personnalité élaguée", "Personnalité sauvegardée",
# "Sauvegarde des bases de données...". Les messages importants et ceux qui
# résultent d'une opération manuelle seront cependant toujours affichés.
# (0 = ne pas afficher ; 1 = afficher)
variable verbose_automatisms 1

# Activer les couleurs dans les messages de l'interface ? (0 = non ; 1 = oui)
variable use_colors 1

# Couleur principale dans les messages de l'interface
variable main_color 14

# Couleur secondaire dans les messages de l'interface
variable secondary_color 07

# Ce script sera-t-il utilisé en conjonction avec Responder ?
# Remarque : cette fonctionnalité nécessite Responder, script du même auteur
# à télécharger séparément. Responder complète parfaitement MegaHAL en
# ajoutant du réalisme et de la pertinence aux réactions de l'Eggdrop.
# (0 = non ; 1 = oui)
variable use_responder 0


##############################
# Commandes et autorisations
##############################

# Préfixe des commandes publiques :
variable pub_command_prefix "."

# Autorisations requises pour que l'I.A. apprenne ce qu'un utilisateur dit
variable learn_auth "-|-"

# Autorisations rédhibitoires pour l'apprentissage (l'I.A. n'apprendra jamais
# ce que disent les utilisateurs portant ces flags).
# Si vous ne souhaitez pas utiliser cette option, mettez "".
# Si par exemple vous souhaitez définir "v" en autorisations locales et ne pas
# définir d'autorisations globales, ne mettez surtout pas "-|v", car cela
# interdirait à tout le monde d'apprendre à l'I.A. Mettez plutôt "|v".
# Remarque : ces autorisations sont prioritaires sur learn_auth.
variable learn_forbidden_auth "o|o"

# Liste des nicks/handles à ignorer dans la procédure d'apprentissage
# (MegaHAL peut leur répondre mais n'apprend pas).
# Cette liste peut (et devrait) contenir les noms des autres bots, car un bot
# qui apprend à parler à un autre bot ne donne jamais rien de bon.
variable learn_exclusion_list {}

# Autorisations requises pour que l'I.A. réponde à un utilisateur.
variable reply_auth "-|-"

# Autorisations rédhibitoires pour la réponse (l'I.A. ne répondra jamais aux
# utilisateurs portant ces flags).
# Si vous ne souhaitez pas utiliser cette option, mettez "".
# Si par exemple vous souhaitez définir "v" en autorisations locales et ne pas
# définir d'autorisations globales, ne mettez surtout pas "-|v", car cela
# interdirait à l'I.A de répondre à tout le monde. Mettez plutôt "|v".
# Remarque : ces autorisations sont prioritaires sur reply_auth.
variable reply_forbidden_auth ""

# Liste des nicks/handles à qui le bot ne répondra jamais
# (il pourra néanmoins apprendre ce qu'ils disent)
variable reply_exclusion_list {}

# Autorisations requises pour avoir le droit de faire taire le bot en le lui
# demandant.
# Remarque : pour avoir le droit de faire taire le bot, un utilisateur doit de
# plus ne pas figurer dans reply_exclusion_list, ne pas avoir déclenché
# l'antiflood, être autorisé par reply_auth, et enfin ne pas être entravé par
# reply_forbidden_auth.
variable shutup_auth "o|o"

# Autorisations rédhibitoires pour faire taire le bot en le lui demandant
# (le bot ignorera la demande si elle émane d'un utilisateur portant ces flags)
# Si vous ne souhaitez pas utiliser cette option, mettez "".
# Si par exemple vous souhaitez définir "v" en autorisations locales et ne pas
# définir d'autorisations globales, ne mettez surtout pas "-|v", car cela
# interdirait à tout le monde de faire taire le bot. Mettez plutôt "|v".
# Remarque : ces autorisations sont prioritaires sur shutup_auth.
variable shutup_forbidden_auth ""

# Préfixe à mettre en début de phrase pour forcer l'I.A. à apprendre + répondre.
variable force_L_R_cmd "&"
# Autorisations requises pour pouvoir l'utiliser
variable force_L_R_auth "m|m"

# Préfixe à mettre en début de phrase pour forcer l'I.A. à ne pas apprendre
# + répondre.
variable force_noL_R_cmd "%"
# Autorisations requises pour pouvoir l'utiliser
variable force_noL_R_auth "m|l"

# Préfixe à mettre en début de phrase pour forcer l'I.A. à apprendre + ne pas
# répondre.
variable force_L_noR_cmd "~"
# Autorisations requises pour pouvoir l'utiliser
variable force_L_noR_auth "m|m"

# Préfixe à mettre en début de phrase pour forcer l'I.A. à ne pas apprendre
# + ne pas répondre.
variable force_noL_noR_cmd "$"
# Autorisations requises pour pouvoir l'utiliser.
variable force_noL_noR_auth "m|m"

# Commande et autorisations requises pour afficher la liste des commandes
# spécifiques à MegaHAL.
variable help_cmd "aide_megahal"
variable help_auth "m|m"

# Commande et autorisations requises pour activer/désactiver l'I.A. sur un chan.
variable masterswitch_cmd "megahal"
variable masterswitch_auth "n|n"

# Commande et autorisations requises pour activer/désactiver l'apprentissage
# sur un chan.
variable learnstate_cmd "learn"
variable learnstate_auth "n|n"

# Commande et autorisations requises pour activer/désactiver la réponse de
# l'I.A. en cas de mot clé détecté.
variable respondstate_cmd "respond"
variable respondstate_auth "n|n"

# Commande et autorisations requises pour activer/désactiver la libre
# expression.
variable chatterstate_cmd "chatter"
variable chatterstate_auth "n|n"

# Commande et autorisations requises pour afficher/modifier le taux de réponse
# libre.
variable replyrate_cmd "replyrate"
variable replyrate_auth "m|m"

# Commande et autorisations requises pour afficher/modifier le taux de réponse
# en cas de mot clé détecté.
variable keyreplyrate_cmd "keyreplyrate"
variable keyreplyrate_auth "m|m"

# Commande et autorisations requises pour demander à l'I.A. d'oublier une
# phrase.
variable forget_cmd "forget"
variable forget_auth "n|n"

# Commande et autorisations requises pour demander à l'I.A. d'oublier un mot.
variable forgetword_cmd "forgetword"
variable forgetword_auth "n|n"

# Commande et autorisations requises pour vérifier si l'I.A. connait une phrase
# donnée.
variable seekstatement_cmd "seekstatement"
variable seekstatement_auth "m|m"

# Commande et autorisations requises pour vérifier si l'I.A. connait un mot
# donné et en compter toutes les occurrences.
variable countword_cmd "countword"
variable countword_auth "m|m"

# Commande et autorisations requises pour demander à l'I.A. d'apprendre le
# contenu d'un fichier.
variable learnfile_cmd "learnfile"
variable learnfile_auth "n|n"

# Commande et autorisations requises pour sauvegarder la personnalité.
variable savebrain_cmd "savebrain"
variable savebrain_auth "m|m"

# Commande et autorisations requises pour recharger la personnalité.
variable reloadbrain_cmd "reloadbrain"
variable reloadbrain_auth "n|n"

# Commande et autorisations requises pour recharger les phrases
# (depuis le fichier .phr).
variable reloadphrases_cmd "reloadphrases"
variable reloadphrases_auth "n|n"

# Commande et autorisations requises pour effectuer un élagage de la
# personnalité.
variable trimbrain_cmd "trimbrain"
variable trimbrain_auth "n|n"

# Commande et autorisations requises pour effectuer un lavage de cerveau.
variable lobotomy_cmd "lobotomy"
variable lobotomy_auth "n|n"

# Commande et autorisations requises pour restaurer un backup de la
# personnalité.
variable restorebrain_cmd "restorebrain"
variable restorebrain_auth "n|n"

# Commande et autorisations requises pour afficher le statut de l'I.A. sur le
# chan en cours.
variable chanstatus_cmd "megahal_status"
variable chanstatus_auth "m|m"

# Commande et autorisations requises pour afficher des informations sur l'I.A.
variable braininfo_cmd "braininfo"
variable braininfo_auth "m|m"

# Commande et autorisations requises pour afficher une estimation de la quantité
# de mémoire utilisée par l'I.A.
variable memusage_cmd "memusage"
variable memusage_auth "m|m"

# Commande et autorisations requises pour afficher la taille d'une arborescence
# (commande de déboguage).
variable treesize_cmd "treesize"
variable treesize_auth "m|m"

# Commande et autorisations requises pour afficher le contenu d'une branche de
# l'arborescence(commande de déboguage).
variable viewbranch_cmd "viewbranch"
variable viewbranch_auth "m|m"

# Commande et autorisations requises pour afficher une liste des mots contenus
# dans une phrase spécifiée, telle qu'elle sera mémorisée par l'I.A. (commande
# de déboguage).
variable make_words_cmd "make_words"
variable make_words_auth "m|m"

# Commande et autorisations requises pour 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).
variable debug_output_cmd "debug_output"
variable debug_output_auth "m|m"

# Commande et autorisations requises pour afficher l'index (numérique) d'un
# mot spécifié, qui pourra ensuite être utilisé avec .viewbranch pour voir
# les associations liées à ce mot (commande de déboguage).
variable getwordsymbol_cmd "getwordsymbol"
variable getwordsymbol_auth "m|m"

# Commande et autorisations requises pour 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).
variable moulinex_in_cmd "moulinex_in"
variable moulinex_in_auth "m|m"

# Commande et autorisations requises pour 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).
variable moulinex_out_cmd "moulinex_out"
variable moulinex_out_auth "m|m"

# Commande et autorisations requises pour afficher la version du module et de
# l'interface.
variable megaver_cmd "megaver"
variable megaver_auth "m|m"


##############################
# 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 1

En PL lorsqu'il à planté j'ai eut que ceci :

Citation :.[12:01:26] <Notifica> [12:04:27] [Interface MegaHAL] Personnalité élaguée.

Des idées de ou ça peut provenir ?
Répondre Avertir
Il s'agit d'un bug du module qui cesse parfois de répondre, mais le problème est plutôt occasionnel.
Ce n'est pas lié au script tcl et ce n'est pas de mon ressort (ni dans mes compétences) de le corriger.
Répondre Avertir
Bonjour,

Ayant installé  Interface MegaHAL 4.1.0 sur un Windrop 1.8.1 que j'avais au préalable compilé avec TCL 8.6.6, je me suis retrouvé avec des messages de ce type :

[Interface MegaHAL - Erreur] Vous devez charger le module MegaHAL avant l'Interface MegaHAL. Tentative de chargement du module...
Ne peut pas charger les modules megahal: No such file or directory
[Interface MegaHAL - Erreur] Le module MegaHAL n'a pas pu être chargé, abandon du chargement de l'Interface MegaHAL.

Après avoir tout essayé, le module MegaHAL megahal.dll ne fonctionnait pas.

J'ai donc recompilé le tout (Windrop + TCL + MegaHAL) ce qui a résolu le problème.

Voici donc en PJ la DLL générée.


A+
Répondre
Bonjour, suite a re installation du serveur complet je suis passé à débian 11, re installé tout , les bots se sont lancé et ont fonctionné une bonne semaine, j'ai du rebooter le serveur et là les 3 eggdrops qui ont megahal plantent tout le système pendant de longues minutes, si je désactive megahal ils se lancent sans problème.
Ce que je trouve curieux c'est que ça a bien fonctionné après l’installation pendant une bonne semaine jusqu'au reboot 
on dirait que megahal.so peine a se charger et sature processeur et mémoire.
  eggdrop-1.9.2 sur débian 11
Répondre Avertir
Bonjour @berni13
Essaie de supprimer le fichier meghal.brn (ou déplace-le ailleurs le temps de tester).
Répondre Avertir
(09/11/2023, 15:44)MenzAgitat a écrit : Bonjour @berni13
Essaie de supprimer le fichier meghal.brn (ou déplace-le ailleurs le temps de tester).

Merci j'ai supprimé l'ancienne base qui était énorme .bm .dic etc et là ça marche il a recréé les fichiers et doit tout re apprendre mais ça c'est pas bien grave.
Répondre Avertir
(10/11/2023, 03:00)berni13 a écrit :
(09/11/2023, 15:44)MenzAgitat a écrit : Bonjour @berni13
Essaie de supprimer le fichier meghal.brn (ou déplace-le ailleurs le temps de tester).

Merci j'ai supprimé l'ancienne base qui était énorme .bm .dic etc et là ça marche il a recréé les fichiers et doit tout re apprendre mais ça c'est pas bien grave.

Par contre il fonctionne mais tombe souvent en ping time out et apparemment au moment de l'élagage sauvegarde, bloqué je dois tuer le processus et relancer.
Répondre Avertir
Je te conseille de limiter la taille du .brn à 1 million de noeuds pour éviter que ça se reproduise.

Evite de trop solliciter le bot pendant son apprentissage, comporte-toi normalement et ne fais pas attention à lui. Les plantages proviennent du module MegaHAL lui-même et non pas du script et mon niveau en C ne me permet pas de trouver ce qui provoque une boucle infinie.

Pour accélérer son apprentissage, tu peux garder l'ancien .dic et .phr, et utiliser la commande .learnfile pour lui faire réapprendre le contenu du .phr.
Il retrouvera ainsi la mémoire.
Répondre Avertir
Merci MenzAgitat je viens de limiter la taille du bm à 500000, elle était à 1000000 avant. c'est curieux que avec les même réglage qu'avant ou ça marchait bien ça plante ( les mystères de l'informatique ) on vas bien voir comment il se comporte.
Répondre Avertir
Ca ne devrait pas poser de problème à 1 million, sauf si tu es un peu juste en RAM.
Répondre Avertir
(11/11/2023, 15:11)MenzAgitat a écrit : Ca ne devrait pas poser de problème à 1 million, sauf si tu es un peu juste en RAM.

Alors la réduction n'as rien changé il a continué à planter environ 48 heures et sans intervention de ma part il s'est stabilisé, ça reste un mystère mais du moment que ça fonctionne on vas plus y toucher. 
Merci pour l'aide très réactive.
Répondre Avertir
(11/11/2023, 03:44)MenzAgitat a écrit : Evite de trop solliciter le bot pendant son apprentissage, comporte-toi normalement et ne fais pas attention à lui. Les plantages proviennent du module MegaHAL lui-même et non pas du script et mon niveau en C ne me permet pas de trouver ce qui provoque une boucle infinie.
Répondre Avertir


Atteindre :


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