0

我正在尝试为我们的帮助台系统设置 Bonjour(或 Ahavi)聊天机器人,它可以根据菜单系统回答基本问题。我的问题的基础是如何让 python 来创建机器人,以便它作为聊天客户端连接到网络。

基本上,我网络上使用 iChat 或 Empathy(或任何能够通过本地网络查看用户的聊天程序)的任何人都应该像看到其他用户一样看到机器人。实际的机器人部分编程起来非常简单,但我不知道如何在网络上获取它。

我研究了 ZeroConf,但我不确定它是如何工作的,或者如何让聊天服务与 python 一起运行。我已经看到了对 pybonjour、avahi 的 python 绑定和 pyzeroconf 的引用,但同样,我不知道如何设置它们。

如果有人能给出一个例子,或者参考,甚至是一篇关于这个主题的好文章,那将不胜感激。谢谢!

科里

4

2 回答 2

1

你在这里所拥有的是你想要做什么和如何去做之间的脱节。Zeroconf/Avahi 是关于服务发现的。你描述的是一个聊天机器人。聊天机器人连接到现有的聊天服务器。苹果与 iChat 稍微模糊了这些界限。

iChat(以及可能实现该协议的其他聊天客户端)使用 Bonjour 来提供一种避免外部服务器连接的方法。

本质上,您需要做的是实现一个也使用 Bonjour 的聊天服务器。Bonjour 部分宣传服务,而聊天部分处理实际通信。您可能希望使用 python 库进行心灵感应,例如 python-telepathy 或 python-empathy [Telepathy][1]。iChat 似乎会说 AIM,所以这将是要研究的协议。IIRC 它还支持 XMPP,因此 XMPP python 库可能是一个选项。

我会考虑使用 [bonjour-py][2] 来宣传该服务。这可能有点棘手,但听起来确实很有趣。bonjour-py 页面有许多其他术语,如果它不能满足您的需求,您可以搜索它。

[1]:http ://telepathy.freedesktop.org/wiki/心灵感应首页

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

于 2010-06-29T15:55:56.010 回答
0

最简单的做法是使用 Telepathy Salut 或 Pidgin/libpurple,并通过 D-Bus 与其交谈。

于 2010-06-18T20:50:14.560 回答