Journal PyBorg ressucite !

Posté par  (site web personnel) .
Étiquettes : aucune
0
19
sept.
2006
Et voila, à la suite de mon journal précédent, dans lequel je demandais que faire après avoir décidé de reprendre un projet, j'ai le plaisir d'annoncer la sortie définitive du nouveau pyborg ! :)

Il s'agit d'un bot parlant et apprenant écrit en python. Il apprend l'agencement des phrases et s'en sert pour en créer de nouvelles. Ça n'a pas beaucoup d'intérêt, sauf pour animer un canal IRC,se marrer en lisant les conversations de ceux qui ne savent qu'ils parlent à un robot, ou chercher à comprendre comment on peut simuler le langage humain..

Au menu des nouveautés ( en gros ) :
* Ajout d'un support expérimental du protocole MSN
* Réécriture du système de génération des phrases
* Simulation d'un temps d'écriture
* Quelques nouvelles commandes et options
* Possibilité d'utiliser le moteur de megahal ( qui devrait fonctionner, je ne peux pas le tester à cause d'un segfault sur mon système )

Le projet a finalement été accepté sur gna; je remercie tout ceux qui m'ont conseillé et qui m'ont proposé leur aide !

Le fichier se trouve ici : http://download.gna.org/pyborg/pyborg-1.1.0.tar.gz
La page du projet : http://self.runner.free.fr/pyborg.html
La page de développement : https://gna.org/projects/pyborg/
  • # le tester en ligne

    Posté par  . Évalué à 3.

    ce robot (si possible avec un pseudo féminin), sévit-il sur un quelconque canal irc en ce moment ? Cela me plairait bien de le tester, mais j'ai pas spécialement envie de monter un serveur irc juste pour cela :)

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

    • [^] # Re: le tester en ligne

      Posté par  (site web personnel) . Évalué à 2.

      Rien ne t'empêche de squatter un serveur irc existant. D'autant que je me souvienne, pyborg n'a pas à être sur le serveur irc. Il se connecte en tant que client classique comme monsieur tout le monde.

      Tu installe le bot chez toi. Tu as sûrement un interpréteur python chez toi, je crois que c'est à peut près tout ce qui est requis (avec un connexion Internet). Tu peux lui donner un pseudo féminin, comme par exemple... hum... Anna (Anna heter hon).
      Tu lui définit un serveur (par exemple freenode très en vogue chez les geeks) et un chan. Ensuite tu peux rejoindre toi même ce même chan sur le serveur et parler avec ton bot.

      Mais tu risques de t'ennuyer rapidement seul avec ton bot à lui faire la conversation. Surtout qu'il va répéter ce que tu dis (en étant un peu mélangé). Le mieux est peut être de le mettre sur un chan fréquenté APRÈS s'être assuré d'avoir mis le replyrate à 0. Comme ça il apprend discrètement sur un chan populaire sans répondre et sans gêner les autres personnes. C'est utile si on ne souhaite pas se faire bannir tout de suite.

      Quand le bot est capable de troller tout seul quand on lui parle, je pense qu'on peut considérer que la mission est accomplie.



      Alternative : créer un chan spécial pour le bot, informer du serveur et du chan ici ou sur gna! et inviter des gens à venir tester leur bot dans un esprit convivial et dans la bonne humeur.
    • [^] # Re: le tester en ligne

      Posté par  (site web personnel) . Évalué à 2.

      Pas de problème, je l'ai mis sur irc.free.fr ( mon IP est bannie de irc.voila.fr a cause de mes tests trop nombreux :-( )
      pseudo : pyborg
      salon : #pyborg

      ( utiliser la commande !owner test pour obtenir les commandes de controle, bon, allez pas lui vider son dictionnaire avant demain, au cas ou certains voudraient tester ;-) )
      • [^] # Re: le tester en ligne... ici

        Posté par  . Évalué à 3.

        J'ai pas d'irc (boulot, tout ca..),
        qqun pourrait-il nous montrer ce que ca donne ? en copiant-collant quelques lignes d'une "conversation" avec ce bot ? (apres qu'il ai appris quelques vocabulaires bien sur)
        • [^] # Re: le tester en ligne... ici

          Posté par  . Évalué à 2.

          Normalement on peut parler à pyborg en local avec la commande pyborg-linein (ou quelque chose du genre). Pas besoin d'avoir internet pour s'amuser :)
      • [^] # Re: le tester en ligne

        Posté par  . Évalué à 2.

        je n'arrive pas à accéder à l'irc de free depuis xchat, je ne sais pas s'ils sont en standard...
        J'ai essayé d'y aller depuis leur applet java sur le site, mais je n'ai pas vu pyborg.

        Je l'ai installé sur freenode, nom PyBorg, canal #ifiction-fr (cf
        http://ifiction.free.fr/index.php?id=irc il y a également un applet java pour se connecter directement sur le canal) , vous pouvez aller tester si vous voulez (J'ai réglé le robot à 75 % de réponse (au lieu de 33%)). Pour le moment il n'est pas bien intelligent le pauvre robot. Peut-être que l'auteur pourrait livrer un genre de dictionnaire par défaut qui permettrait de le rendre un peu plus locace au début, quitte à mettre ce dico en option pour ceux qui veulent...

        J'ai remarqué aussi qu'il avait pas mal tendance à envoyer des virgules et des points pour un rien, est-ce que c'est moi qui l'ai mal entrainé lorsque j'essayais de faire cohabiter un autre robot en même temps ?

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: le tester en ligne

          Posté par  (site web personnel) . Évalué à 2.

          Il y a un dictionnaire et le fichier de configuration ( pyborg.cfg ) qui va avec à cette adresse :
          http://self.runner.free.fr/fichiers/pyborg/

          Pour ce qui est du problème des points et des virgules, c'est un problème qui apparait au début, mais cela disparaît par la suite...

          Voila !
          • [^] # Re: le tester en ligne

            Posté par  . Évalué à 1.

            J'ai pris l'archive et le fichier de configuration et ça bug quand je lance le robot.

            En gros l'erreur (car je ne peux pas la c/c) :

            pyborg.py line 172 __init__
            num_contexts += len(self.lines[x][0]).split()
            AttributeError: 'int' object has no attribute 'split'
            • [^] # Re: le tester en ligne

              Posté par  (site web personnel) . Évalué à 1.

              Ouups
              Effectivement, cela devrait être :
              num_contexts += len(self.lines[x][0].split())
              Je met a jour les fichiers illico !
              • [^] # Re: le tester en ligne

                Posté par  . Évalué à 1.

                Tant que tu y es ;-) dans pyborg-filein.py, il manque un argument à l'appel de filter_message
                   buffer = pyborg.filter_message(buffer, Borg)
                
                (enfin, ce me semble)
    • [^] # Re: le tester en ligne

      Posté par  . Évalué à 5.

      Tu veux monter un bot feminin...?

      C'est degueulasse...
  • # * Ajout d'un support expérimental du protocole MSN

    Posté par  (site web personnel) . Évalué à 7.

    Argumm, c'est le genre de chose qui me fait bondir. Le support d'un protocole propriétaire une fois de plus :(

    Un support de Jabber/XMPP aurais été plus approprié à mon avis et surtout moins galère à mettre en place avec les lib Jabber pour python qui existent déjà.

    M'enfin, apres, ce n'est que mon avis de libriste profond ..
    • [^] # Re: * Ajout d'un support expérimental du protocole MSN

      Posté par  (site web personnel) . Évalué à 2.

      Je suis d'accord avec vous que jabber est libre et mieux que MSN :)

      Mais en construisant le bot, je n'ai pas pensé à ça, j'ai juste lu les logs des gens qui cherchaient à avoir l'adresse MSN du bot et je me suis dit que ça pourrait être une bonne idée de lui en donner une...

      Le programme reste plus un gadget qu'autre chose ( à mes yeux en tout cas) et me permet de découvrir python plus qu'autre chose.
      Je suis pret à essayer d'implanter le bot sous jabber, il n'y a pas de problème, ce sera là pour la version 1.1.1 :-) Le programme est assez modulable ( en entrée comme en sortie ) pour que cela se fasse sans problème !
      • [^] # Re: * Ajout d'un support expérimental du protocole MSN

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        Je vais tester rapidement, le concept est génial, je connaissais pas ce bot (enfin en personne si, vu qu'il a officié sur le chan du rézal404 pendant pas mal de temps). Le support msn est sympa, effectivement un support jabber serait aussi intéressant :)

        Le mieux serait sûrement mieux de mettre un support jabber avec un support des transports sur jabber ;)

        En tout cas bravo à toi :)

        « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

    • [^] # Re: * Ajout d'un support expérimental du protocole MSN

      Posté par  (site web personnel) . Évalué à 3.

      > * Ajout d'un support expérimental du protocole MSN

      Vous allez rire, mais j'ai lu :

      "Ajout d'un support expérimental du protocole SMS" ...
    • [^] # Re: * Ajout d'un support expérimental du protocole MSN

      Posté par  . Évalué à 1.

      Comme ce que propose http://jpb.sphene.net/ ?
  • # megahal segfault

    Posté par  . Évalué à 1.

    Et bien je viens de tester avec megahal que j'ai installé avec un apt-get.
    Et j'ai un segfault aussi dès que le robot essaye de répondre ?

    Est ce que tout le monde à ce problème ?
    megahal semble marcher cependant tout seul.
    • [^] # Re: megahal segfault

      Posté par  (site web personnel) . Évalué à 1.

      J'avais eu un échange de mail à ce propos avec le mainteneur du projet, mais n'ayant pas eu assez d'informations à fournir, la recherche de bug s'est arretée.. C'est ce qui m'a poussé à réécrire le module de pyborg d'ailleurs..

      ( Dans mon cas megahal ne marche même pas tout seul.. et je suis aussi sous debian )
      • [^] # Re: megahal segfault

        Posté par  . Évalué à 2.

        sous Debian aussi, Megahal me dit qu'il ne connait pas encore assez de mots pour me répondre, mais il ne semble pas crasher.

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Merci

    Posté par  . Évalué à 2.

    Je viens de le tester, il est pas mal.
    Par contre, t'as pas de forum ?
    Parce que tu vois tu dis "simulation d'un temps d'écriture" et j'ai pas trouvé où (hide the fact that pyborg is a bot à 1 ca fait rien de plus).
    J'ai dû mettre un randint(4,8) suivi d'un time.sleep pour simuler le tps d'écriture dans la génération de réponse :D
    • [^] # Re: Merci

      Posté par  (site web personnel) . Évalué à 1.

      Pour ce qui est du forum, il faudrait que j'en mette un c'est vrai... ( pour l'instant on peut toujours m'envoyer un mail, mon adresse est sur le site de free
      Sinon pour le temps de différé, il est à la ligne 304 du fichier pyborg.py : time.sleep(.2*len(message))
      ( par contre il est normal que l'on ne s'en rende pas compte dans les sorties sur IRC, puisqu'il envoie les copie des messages au(x) owner(s) en même temps, de plus, le temps de différé n'est pas mis en route si c'est l'owner qui lui parle :p )

      De rien !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.