跳转到主要内容

另一个通用的Alice/Salut技能和Facebook/Telegram/VK机器人的包装器

项目描述

dialogic

PyPI version

这是另一个通用的Python包装器,用于AliceSber 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 (79.5 kB 查看哈希值)

上传时间

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面