跳转到主要内容

又是Alice/Salut技能和Facebook/Telegram/VK机器人的通用封装

项目描述

tgAlice

PyPI version

这是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 (57.0 kB 查看散列)

上传时间

支持者