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