65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Python、Flask、Twilio SMS 和 CleverBot API 构建您自己的智能自动回复机器人

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2018年9月27日

CPOL
viewsIcon

8933

使用 Twilio 和 CleverBot API,您将制作一个 Flask 应用程序,向 CleverBot 发送短信。 CleverBot 是一个您可以与之聊天的 AI,它会从对话中学习。

如果您正在寻找一个初学者 Twilio 项目或一个新的短信伙伴,本教程适合您! 使用 Twilio 和 CleverBot API,您将制作一个 Flask 应用程序,向 CleverBot 发送短信,CleverBot 是一个您可以与之聊天的 AI,它会从对话中学习。

入门

您将需要一个 Twilio 帐户,该帐户具有可以发送和接收短信的电话号码。 在控制台中,导航到“购买号码”页面。 确保在功能下勾选 SMS,然后点击搜索按钮。 任何号码都可以,所以请随意选择一个适合您的号码!

您还需要一个 CleverBot API 密钥。 您将需要输入付款信息才能使用 API。 幸运的是,第一个月是免费的! 请记住,如果您不打算在此项目之后使用它,请取消您的订阅。

接下来,您必须为项目设置环境。 创建一个项目文件夹; 我的文件夹名为 cleverbot_text。 在此文件夹中,您将创建一个 虚拟环境。 这很重要,因为它允许您隔离您的项目,使其不会与其他项目冲突。

使用 virtualenv 命令创建虚拟环境,该命令将虚拟环境的名称作为参数。 在您的终端中运行以下命令

$  virtualenv cleverbot_text

如果您有 macOS 或 Linux,您可以通过运行以下命令来激活虚拟环境

$  source cleverbot_text/bin/activate

对于 Windows 用户,请运行

$  cleverbot_text\Scripts\activate

现在您需要在虚拟环境中安装您将用于项目的库。 在您的终端中,确保您位于项目文件夹中并键入

$  pip install twilio==6.14.9
$  pip install flask==1.0.2
$  pip install cleverwrap==0.2.3.6

请记住,每次您处理此项目时,您都必须重新激活虚拟环境。 如果您有兴趣,您可以在 此处 阅读更多关于设置您的 开发环境 的信息。

代码

好的,现在让我们开始编写代码吧! 在您的文件夹中,通过创建一个名为 app.py 的文件来创建您的 Flask 应用程序。 您将要添加的第一件事是 (1) 您将使用的库,(2) 一些 Flask 样板文件,以及 (3) 一行将保存您的 CleverBot API 密钥的代码。

将以下内容复制并粘贴到 app.py 中。 确保将您自己的 Cleverbot API 密钥 复制并粘贴到指定字段中。

from flask import Flask, request, redirect
from twilio.twiml.messaging_response import MessagingResponse
from cleverwrap import CleverWrap
app = Flask(__name__)
cleverbot_API = CleverWrap("INSERT YOUR API KEY")
@app.route("/sms", methods=['GET', 'POST'])
def sms_reply():
    message_body = request.form['Body']
    cleverbot_response = cleverbot_API.say(message_body)
    resp = MessagingResponse()
    resp.message(cleverbot_response)
    return str(resp)
if __name__ == "__main__":
    app.run(debug=True)

第一个代码块导入您需要的所有库。 之后,我们有一些 Flask 样板文件和您的 Cleverbot API 密钥。 接下来两行定义了您的 flask 服务器上的一个路由,Twilio 将在您的 Twilio 号码收到短信时调用该路由。 然后,message_body = request.form['Body'] 保存您的短信请求。 下一行代码将消息传递给 CleverBot 并将其响应保存到 cleverbot_response。 下一行代码创建一个名为 resp 的 TwiML 文本消息响应对象。 然后将其消息设置为 CleverBot 的响应。 最后两行在 Flask 上启用调试模式,这使得服务器可以在代码更改时重新加载自身并显示调试消息。

运行项目

接下来,您将使用 ngrok 为您的本地服务器创建一个公共 URL。 换句话说,它创建一个 Twilio API 可以访问的公共地址。 首先从 下载 并解压缩它到您的计算机上。 然后,在您的终端中,键入

$ ./ngrok http 5000

Ngrok 将生成一个 URL,该 URL 将流量转发到您 localhost 服务器上的端口 5000。 复制“转发”旁边的 URL。 请记住,每次运行 ngrok 时,URL 都会更改。

转到您的 Twilio 控制台并导航到“管理号码”。 单击您将要使用的号码。 向下滚动直到看到“消息传递 > 来了一条消息”,并将 ngrok URL 粘贴到该字段中。 确保在 URL 末尾添加 /sms。

现在是时候运行您的 Flask 应用程序了! 在您的终端中输入以下命令

$ export FLASK_APP=app.py
$ flask run

Windows 用户应该使用 set 而不是 export

你完成了!

在这一点上,您应该能够向您选择的 Twilio 号码发送短信,并收到来自 Cleverbot 的回复。 我希望您喜欢您新的短信伙伴。

如果这激起了您对 Cleverbot 的兴趣,您可以在他们的网站上查看 这篇文章 了解更多信息。 它为您提供了 Cleverbot 的历史和 Cleverbot 工作原理的完整介绍。 祝您在将 Cleverbot 添加到您正在处理的其他项目中好运!

© . All rights reserved.