2010-06-18 11 views
0

J'essaie de configurer un chatbot Bonjour (ou Ahavi) pour notre système d'assistance qui répondrait aux questions de base basées sur un système de menu. La base de ma question est comment puis-je obtenir python pour créer le bot afin qu'il se connecte au réseau en tant que client de chat. Fondamentalement, n'importe qui sur mon réseau avec iChat ou Empathy (ou n'importe quel programme de causerie capable d'afficher des utilisateurs sur le réseau local) devrait voir le bot juste comme ils voient un autre utilisateur. La partie de bot réelle serait assez simple à programmer, mais je n'ai aucune idée de comment l'obtenir sur le réseau.ZeroConf Discuter avec Python

J'ai regardé dans ZeroConf, mais je ne sais pas exactement comment cela fonctionne, ou comment faire fonctionner un service de chat avec python. J'ai vu des références à pybonjour, des bindings python pour avahi, et pyzeroconf, mais encore une fois, je n'ai aucune idée de comment les mettre en place.

Si quelqu'un pouvait donner un exemple, ou une référence, ou même un bon article à lire sur le sujet, il serait très apprécié. Merci!

Kory

Répondre

1

Ce que vous avez ici est un décalage entre ce que vous voulez faire et comment le faire. Zeroconf/Avahi sont sur la découverte de service. Ce que vous décrivez est un robot de discussion. Les robots de discussion se connectent à un serveur de discussion existant. Apple avec iChat a légèrement brouillé ces lignes. IChat (et vraisemblablement d'autres clients de chat qui implémentent le protocole) utilise Bonjour pour fournir un moyen d'éviter les connexions de serveurs externes. Essentiellement, ce que vous devez faire est d'implémenter un serveur de discussion qui utilise également Bonjour. La partie Bonjour annonce le service et la partie chat gère la communication réelle. Vous voudrez probablement utiliser des bibliothèques python pour la télépathie comme python-télépathie ou python-empathy [Telepathy] [1]. iChat semble parler AIM, ce serait donc le protocole à examiner. IlRC prend également en charge XMPP, donc les bibliothèques python XMPP peuvent être une option.

Je regarderais en utilisant [bonjour-py] [2] pour annoncer le service. C'est peut-être un peu difficile, mais cela semble intéressant. La page bonjour-py a de nombreux autres termes que vous pouvez rechercher s'il ne répond pas à vos besoins.

[1]: http://telepathy.freedesktop.org/wiki/ télépathie Accueil

[2]: http://www.mcs.anl.gov/research/projects/accessgrid/bonjour-py/-py

Bonjour
+0

Je n'ai jamais vraiment commencé à travailler sur le projet, mais votre réponse est la meilleure. – korylprince

0

La meilleure chose à faire est d'utiliser télépathie ou Pidgin Salut/libpurple, et parler avec lui sur D-Bus.

+0

Merci, je regarderai certainement dans ce. Je suis tout pour facile ... Bien que l'utilisant de cette façon, cela aurait-il besoin d'avoir un serveur X en cours d'exécution? J'espérais que quelque chose pourrait être exécuté juste sur la console ... – korylprince

+0

Non, ni la télépathie ni la libpurple ne devraient nécessiter un serveur X, bien que libpurple ne supporte pas l'activation de D-Bus. –

+0

Aha, très bien alors ... Cela peut être ce que je décide d'utiliser alors ... Bien que d'autres suggestions seraient également les bienvenus .. Merci beaucoup! Kory – korylprince