又是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 |