IRC Python机器人:最佳方式

11
我想构建一个机器人,它基本上要做以下几件事情:
  1. 监听聊天室并与用户互动,鼓励他们私信机器人。
  2. 一旦用户给机器人发送了私信,就使用各种人工智能技术与客户进行交互。
我应该只使用Python中的IRC库或套接字,还是需要更多的机器人框架呢?
你会怎么做?
谢谢!
这里是我目前正在使用的代码,但是我还没有让它正常工作。
#!/usr/bin/python 
import socket
network = 'holmes.freenet.net'
port = 6667
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( network, port ) )
irc.send ( 'NICK PyIRC\r\n' )
irc.send ( 'USER PyIRC PyIRC PyIRC :Python IRC\r\n' )
irc.send ( 'JOIN #pyirc\r\n' )
irc.send ( 'PRIVMSG #pyirc :Can you hear me?\r\n' )
irc.send ( 'PART #pyirc\r\n' )
irc.send ( 'QUIT\r\n' )
irc.close()

2
我快要完成一个Python的IRC包,可能能够帮到你。我会在这里提供它:http://ircutils.evanfosmark.com/ - Evan Fosmark
太棒了!谢谢!我会记住的! - Noah Clark
6个回答

12

如果你想拥有一个合理的设计,请使用 Twisted 或者 Asynchat。虽然也可以只使用套接字来完成,但是为什么要白白自己从头开始呢?


我刚刚再次查看了Twisted,并在IM部分找到了它。感谢提供链接。Asynchat具体有什么帮助呢? - Noah Clark

7
如果您想使用AI技术,我建议您查看Python的AIML包。这是ALICE机器人所使用的相同技术。

1
感谢您提供AIML软件包的信息! - Noah Clark

5
如果你想创建AI部分,为什么要自己编写所有需要的IRC连接代码呢?我建议使用SupyBot,并将你的AI代码作为插件编写。有相当易懂的文档和许多示例代码可供查找。此外,它还带有大量插件,适用于各种可能补充你的AI的用途。

4

因为我是两年后回复的,所以我只是为了谷歌用户写这篇文章 :-P

在这里尝试我的“另一个无用IRC机器人”https://github.com/julienpalard/yauib,允许您使用任何语言编写机器人的每个功能。


2

使用现有的IRC库,而不是自己实现协议。


2
我使用irclib制作了一个(非常糟糕的,并且长期重构)IRC机器人。文档几乎没有,但它可以省去让你必须处理所有那些套接字连接之类的事情,这些都是我真的不想处理的东西。当然,各有所好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接