使用Python实现零配置聊天

0 投票
2 回答
1977 浏览
提问于 2025-04-16 00:09

我正在尝试为我们的客服系统设置一个Bonjour(或Ahavi)聊天机器人,它可以根据菜单系统回答一些基本问题。我的问题主要是,如何让Python创建这个机器人,使它能作为聊天客户端连接到网络。

简单来说,我网络上的任何人,只要使用iChat、Empathy或任何能够在本地网络上查看用户的聊天程序,都应该能看到这个机器人,就像看到其他用户一样。实际上,机器人的编程部分相对简单,但我不知道怎么让它连接到网络。

我查过ZeroConf,但不太明白它是怎么工作的,也不知道如何用Python运行一个聊天服务。我看到有提到pybonjour、avahi的Python绑定和pyzeroconf,但我还是不知道怎么设置它们。

如果有人能给个例子、参考资料,或者推荐一篇好的文章来阅读,我会非常感激。谢谢!

Kory

2 个回答

0

最简单的方法就是使用 Telepathy Salut 或者 Pidgin/libpurple,然后通过 D-Bus 来进行交流。

1

你现在遇到的问题是,你想做的事情和怎么做之间有些不对劲。Zeroconf/Avahi主要是用来发现服务的,而你描述的其实是一个聊天机器人。聊天机器人是连接到现有的聊天服务器上的。苹果的iChat在这方面有些模糊了界限。

iChat(还有其他实现了这个协议的聊天客户端)使用Bonjour来避免连接外部服务器。

简单来说,你需要做的是实现一个聊天服务器,同时也要使用Bonjour。Bonjour的部分负责宣传这个服务,而聊天的部分则处理实际的交流。你可能想用一些Python库,比如python-telepathy或python-empathy来处理聊天功能。iChat似乎使用的是AIM协议,所以你可以研究一下这个协议。如果我没记错的话,它也支持XMPP,所以XMPP的Python库可能也是一个选择。

我建议你看看[bonjour-py][2]来宣传这个服务。虽然可能会有点复杂,但听起来很有趣。如果这个不符合你的需求,bonjour-py页面上还有很多其他的术语可以搜索。

[1]: http://telepathy.freedesktop.org/wiki/ Telepathy主页

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

撰写回答