创建聊天机器人的库

eddie的Python项目详细描述


Build Status

eddie是一个库,您可以使用它在 几秒钟。

这是一个非常年轻的图书馆,任何要求/建议/帮助 很感激。为他们,创造一个问题或联系我!

安装

您可以使用pip:

$ pip install eddie

如果希望在项目中下载此存储库的最新版本,或者 使用pip:

$ pip install git+https://github.com/greenkey/eddie.git

用法

必须定义bot类,扩展默认的Botclass:

>>>fromeddie.botimportBot>>>classMyBot(Bot):...pass...>>>b=MyBot()>>>b<__main__.MyBotobjectat0x7f16e79f3940>

当然你会想定义一些巴哈维奥,以下章节 教你怎么做。

定义默认响应

>>>fromeddie.botimportBot>>>classMyBot(Bot):...defdefault_response(self,in_message):...# setting echo as default response...returnin_message...>>>b=MyBot()>>>b.process("Hello!")'Hello!'>>>b.process("Goodbye!")'Goodbye!'

定义命令

只需使用commanddecorator定义bot类的方法。

>>>fromeddie.botimportBot,command>>>classMyBot(Bot):...@command...defhello(self):...return"hello!"...>>>bot=MyBot()>>>bot.process("/hello")# the default command prepend is "/"'hello!'

定义接口

在本地运行的机器人是没有用的,不是吗?

我们可以给bot提供的最简单的接口是http接口。

>>>fromeddie.botimportBot>>>fromeddie.endpointsimportHttpEndpoint>>>classMyBot(Bot):...defdefault_response(self,in_message):...returnin_message...>>>bot=MyBot()>>>ep=HttpEndpoint()>>>bot.add_endpoint(ep)>>>bot.run()

然后可以使用简单的get请求向bot发送消息: http://localhost:8000/process?in_message=hello

注意:默认端口是8000,如果已经使用,HttpEndpoint将 使用8000(8001,8002…)之后的第一个空闲端口。

使用该示例的输出将是带有以下消息的json: {"out_message": "hello"}

电报

是的,由于 这个 python-telegram-bot 图书馆。

你不必担心什么,除了从 BotFather并传递它 给你的机器人。

>>>fromeddie.botimportBot>>>fromeddie.endpointsimportTelegramEndpoint>>>classMyBot(Bot):...defdefault_response(self,in_message):...returnin_message...>>>bot=MyBot()>>>ep=TelegramEndpoint(...token='123:ABC'...)>>>bot.add_endpoint(ep)>>>bot.run()

推特

这不是一个合适的bot框架,但是使用eddie可以在 twitter也是,感谢tweepy 图书馆。

只要按照how to create a Twitter App上的说明操作 ,获取所有令牌并使用它们实例化TwitterEndpoint

>>>fromeddie.botimportBot>>>fromeddie.endpointsimportTwitterEndpoint>>>classMyBot(Bot):...defdefault_response(self,in_message):...returnin_message...>>>bot=MyBot()>>>ep=TwitterEndpoint(...consumer_key='your consumer_key',...consumer_secret='your consumer_secret',...access_token='your access_token',...access_token_secret='your access_token_secret'...)>>>bot.add_endpoint(ep)>>>bot.run()

记录

此库使用日志记录模块。将日志记录设置为标准 输出,输入:

importlogginglogging.basicConfig(level=logging.DEBUG)

在你剧本的开头。

参与

如果您想参与,请下载存储库,然后:

$ virtualenv ~/.venv/eddie # not required but highly suggested
$ source ~/.venv/eddie/bin/activate
$ pip install -r requirements-dev.txt # install all the requirements
$ pytest

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
迭代值时的java HashMap线程安全性   java Android:从sqlite数据库检索数据   java OpeNni:颜色坐标到深度坐标   替换Java将所有逗号替换为分号,引号内的逗号除外   java如何获取数据库中的图像,并将其设置为特定行的表的“tooltipText()   java如何使用“没有休息吗?   java Spring引导与Gradle版本的Gradle问题   java无法更新oracle中的clob字段   用Java创建一个简单的银行账户   java openfire服务器是否实现了地雷功能?   java Android获取支持的区域设置列表   用sqlite安卓实现java简单数学计算   JavaAEMServlet获取请求头值   在java中生成随机16位数字   有类似dotnetkicks的东西吗。com for Java   xml@xmlanyement不会解组为特定的Java类型,而是在JAXBElement处停止   尝试反序列化对象时发生java错误   java如何将JSON对象从POSTMAN发送到Restful Web服务   com的java性能。太阳网httpserver。HttpServer和HttpURLConnection?