【问题标题】:Can I create a Hangouts Chat bot to (get and) display results from a SQL database?我可以创建一个环聊聊天机器人来(获取和)显示来自 SQL 数据库的结果吗?
【发布时间】:2018-03-25 02:43:21
【问题描述】:

我想构建一个自定义聊天机器人(使用 Google Hangouts Chat)来回答诸如“Sales 08-03-2018 in $”->“$500000”之类的请求。我在 AWS Redshift 中有数据。我可以使用使用 Python 连接 Redshift 的 psycopg2。是否有任何 API 可以直接连接到 Redshift 或 MySQL 并将这些聚合结果发送回我的机器人以回答所需问题?如果没有,有哪些替代方法可以做到这一点?另外,谁能告诉我我们在哪里运行 Flask 代码?我是新手,如果有人能简单介绍一下在哪里编码和运行,那将非常有帮助。我有一个启用了 Hangouts Chat API 的 G Suite 帐户。请帮忙。

谢谢。

【问题讨论】:

    标签: google-api bots chatbot hangouts-chat


    【解决方案1】:

    您几乎拥有构建此解决方案所需的一切,并且不需要任何特定的 API 来完成工作(除非您想构建这个解决方案来服务其他用户)。

    • 用 Python 编写您的机器人(显然,因为您已经这样做了)
    • 如您所说,使用psycopg2 to access Redshift
    • 您的机器人应用会聚合来自 psycopg2+Redshift 的结果
    • 以 JSON 格式格式化您的输出并将其返回到环聊聊天
    • 使用Google App Engine 托管您的应用程序; it supports Flask
    • 从这个简单的同步 Flask App Engine 开始sample bot
    • 如果您的机器人无法立即响应,请使其异步;查看this equivalent async Flask bot
    • 如果您希望您的数据/结果在 Chat 中看起来不错,请查看this 3rd Flask sample bot,其中包含interactive cards,它允许formatted visual output
    • 一旦您的应用在 App Engine 上运行,请在“连接设置”->“机器人 URL”下的 Hangouts Chat "Configuration" tab 中注册其 YOUR_APP.appspot.com(或自定义域)端点李>
    • 查看所有 Hangouts Chat 开发者文档here
    • 您还可以在任何其他支持它的 PaaS 或 IaaS 实例上运行 Flask。
    • 也可以read this 了解有关平台本身的更多信息以及创建+托管机器人的其他方法
    • 来自摩托罗拉解决方案首席信息官per his Mar 2018 post 的类似想法...获取并绑定数据,然后在聊天室中显示结果

    【讨论】:

    • 非常感谢。只是一个快速的帮助,在实例上运行我的 test.py 脚本后,在发布机器人时,我应该添加什么机器人 URL?
    • 如上所述,它只是 YOUR_APP.appspot.com(无论您为项目选择的 YOUR_APP 名称是什么)或更具体的端点(如果您以这种方式创建应用程序)。
    • ps。调整了您的帖子以提供更具体、更适合主题的问题,以便其他人可以找到它,因为这是一个非常有效的用例。
    • 我必须使用 ec2 实例运行一个简单的聊天机器人,但是我认为安全组应该允许 ec2 上的入站和出站“所有流量”。确保在 ec2 上启用此功能。安全阻止了从 ec2 到机器人的连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多