创建聊天机器人的库
eddie的Python项目详细描述
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