又是Alice/Salut技能和Facebook/Telegram/VK机器人的通用封装
项目描述
tgAlice
这是Alice和Salut技能以及Telegram、VK和Facebook Messenger机器人另一种常见的Python封装。
目前,它提供以下功能:
- 您的机器人与Alice/Telegram/Facebook/VK之间(几乎)统一的接口:
DialogConnector - 一些简单的对话构造器:
BaseDialogManager及其变体,包括- 一个简单的FAQ对话管理器
- 一个简单的表单填写对话管理器
- 一个灵活的有限状态自动机对话管理器
- 一个更灵活的轮流对话管理器
- 对话状态的存储封装:
BaseStorage及其变体(特别是MongoBasedStorage) - 另一个将您的机器人作为Flask应用程序提供的封装
此包可以通过pip install tgalice安装。
简要说明
要创建自己的机器人,您需要为现有的对话管理器编写一个配置,或者从BaseDialogManager继承自己的对话管理器。
tgalice的组件可以组合成一个工作应用程序,如下所示
import tgalice
class EchoDialogManager(tgalice.dialog_manager.BaseDialogManager):
def respond(self, ctx: tgalice.dialog.Context):
return tgalice.dialog.Response(text=ctx.message_text)
connector = tgalice.dialog_connector.DialogConnector(
dialog_manager=EchoDialogManager(),
storage=tgalice.session_storage.BaseStorage()
)
server = tgalice.flask_server.FlaskServer(connector=connector)
if __name__ == '__main__':
server.parse_args_and_run()
现在,如果您的应用程序托管在地址{BASE_URL}上,那么Alice、Salut和Facebook的webhook将分别位于{BASE_URL}/alice/、{BASE_URL}/salut/和{BASE_URL}/fb/(如果您想的话,您可以重新配置它)。如果设置了TOKEN环境变量为您提供的token,则Telegram的webhook将自动设置。
如果您想在本地上测试您的应用程序,可以使用命令行参数运行它
--cli- 在命令行中读取和输入消息,完全离线--poll- 在本地运行Telegram机器人,以长轮询模式(在某些国家,您需要VPN才能这样做)--ngrok- 在本地运行机器人,使用ngrok工具**从您的计算机到互联网创建隧道。这可能是测试Alice技能而不部署到任何地方的最简单方法。
示例目录examples包含创建对话和提供机器人的更详细示例。
如果您有任何问题,可以在Telegram聊天@tgalice_support中提出。
* Telegram包装基于pyTelegramBotAPI包。
** ngrok连接器来自flask-ngrok库。一旦库在PyPI上更新,它将重构为依赖项。
项目详情
关闭
tgalice-0.2.28.tar.gz的散列
| 算法 | 散列摘要 | |
|---|---|---|
| SHA256 | 912f0cf3c3064a148da46bd15511ff4650cf0d9c4c11d50d1b9a50fcd0ab8a0a |
|
| MD5 | 082b437a06e667d66ccc8a07937f0fe8 |
|
| BLAKE2b-256 | cd863eb7c41d1a17b5b5b2209bbedde317b8dca8843ad6afd89aa56cc1d3adb2 |