

通过 HTTP,用户可以使用多种语言(包括 Python、Java、JavaScript 和 Ruby)调用 GPT 大模型智能应用 API,构建一个智能聊天机器人,或其它自然语言生成应用。您可以通过向 API 发送文本提示并获取回复来使用 GPT大模型智能应用。本期 Azure Open AI 官方指南演示如何使用 Python 语言实现 GPT 大模型智能应用 API 调用,并部署到 Azure App Service 展现用户交互界面。
准备工作 ╱ 01
程序设计原理 ╱ 02
Python代码解析 ╱ 03
本地测试GPT大模型智能应用 ╱ 04
部署Python Web应用到 ╱ 05
Azure App Service
01
部署 GPT 大模型智能应用 API,需要准备以下几项工作:
Azure 订阅
VS Code(1.74.2或以上版本)版本并安装Azure Account, Azure Tools和Azure App Service 插件
Python 3.10或更高版本(本demo使用 Python 3.10.9)
注册 OpenAI 开发者账号并获取 API 密钥
02
1.本项目前端使用 index.html, style.css, script.js实现用户交互界面。后端使用两个 python 程序(server.py 和 gpt.py)实现与前端页面交互及OpenAI API 调用。

2.用户在 Web 页面中输入文本并单击按钮。

3.Web 页面使用 JavaScript 将文本发送到 Flask 应用程序的 chat 路由。
4.Flask 应用程序接收文本并使用「GPT 大模型智能应用」生成回复文本。
5.Flask 应用程序将回复文本发送回 Web 页面。
6.Web 页面使用 JavaScript 将回复文本显示在页面上。

在这种架构中,index.html 文件是 Web 页面的模板。在该文件中,我们使用 HTML 和 CSS 来创建页面布局和外观。我们还使用 JavaScript 来处理用户交互并与 Flask 应用程序进行通信。
Flask 应用程序文件 (上面的代码) 负责处理用户输入的文本并生成回复。它还提供了两个路由:一个用于显示 Web 页面,另一个用于处理用户输入的文本并生成回复。
在静态文件目录中,我们可以存储 CSS 样式表和 JavaScript 文件。这些文件可以用来自定义 Web 页面的外观和交互。
总之,这种设计架构将 Web 页面、Flask 应用程序和 OpenAI API 结合起来,使用户能够通过 Web 页面与 GPT 聊天机器人进行交互。
03
下面是使用两个 Python 程序(server.py 和 gpt.py)调用 OpenAI API,并生成 Flask 交互式 Web 页面的代码。这种设计架构可以使代码更易于维护和扩展。
在下面的代码中,server.py 文件是 Flask 应用程序文件。它负责提供 Web 页面和与 GPT 聊天机器人进行交互的路由。
1 from flask import Flask, request
2 import gpt
3 {
4 app = Flask(__name__)
5 {
6 @app.route('/process_gpt', methods=['POST'])
7 def process_gpt():
8 return gpt.process_gpt(request)
9 {
10 @app.route('/')
11 def index():
12 return app.send_static_file('index.html')
13 {
14 if __name__ == '__main__':
15 app.run()
16 }
gpt.py 文件是「GPT大模型智能应用」类的定义。它包含一个静态方法,用于生成「GPT大模型智能应用」的回复文本。
1 gpt.py:
2 import openai
3 {
4 def process_gpt(request):
5 message = request.form['message']
6 openai.api_key = ""
7 response = openai.Completion.create(
8 engine="text-davinci-003",
9 prompt=message,
10 max_tokens=1024,
11 temperature=0.5,
12 )
13 {
14 # Format the response text
15 response_text = response.choices[0].text.strip() # Remove leading and trailing whitespace
16 response_text = response_text.replace("\n", "
") # Replace newlines with line breaks
17 # Return the formatted response text
18 return response_text
19 }
1.gpt.py 中使用 openai.api_key = "" 来输入API Key,开发者需用实际申请的API Key 替换程序中。
2.openai.Completion.create() 方法来调用 OpenAI API。这个方法接受多个参数,包括:
engine:要使用的 GPT-3 模型。
prompt:聊天对话的上下文。这里,我们通过用户的输入问题来实现通用的对话,没有对bot给出特殊提示。开发者可以根据实际的应用在自己的项目中设置 prompt。例如:prompt="User: Hi, how are you today?\nBot:"
max_tokens:生成的回复的最大字符数。
temperature:生成的回复的随机性。值越大,回复越随机。
更多该方法的参数及解释可以参考openai.Completion.create() 方法官方文档
3.调用 OpenAI API 后,会返回一个包含生成的回复的响应。你可以使用 response.text 属性来获取回复的文本。你可以将这个回复文本作为机器人的回复,并将其显示给用户。
04
上述步骤展示了如何使用 GPT大模型智能应用 API 构建一个智能聊天机器人。接下来将演示如何将你的 Python web 应用进行本地电脑测试。参考如下步骤:
1. 在 VS code 中打开一个终端。

2. 在终端中输入以下命令以克隆 Git Hub 项目,这将在你的本地系统上创建一个名为“Create-A-ChatGPT-Bot-APP-and-Deploy-To-Azure-APP-Service-or-Teams-APP”的文件夹,并将 Git Hub 项目的所有文件克隆到该文件夹中。

3.在 VS code 中打开该文件夹,在 gpt.py 代码里替换你申请的 API Key。

4.在终端里项目根目录下运行以下命令以安装项目所需的所有依赖项,所需的应用中 python 依赖项会写在requirements.txt文件中,例如:flask和openai。
pip install -r requirements.txt
5.创建一个虚拟环境。虚拟环境是一种隔离 Python 包的方法,可以在不影响全局 Python 环境的情况下安装和测试包。您可以使用 virtualenv 库来创建虚拟环境。首先,需要使用 pip 命令安装 virtualenv。
pip install virtualenv
6.使用以下命令创建一个名为 env 的虚拟环境:
virtualenv env
7.运行以下命令以激活虚拟环境。
source env/bin/activate
``
8.运行该应用。
flask run

9.在浏览器中打开 http://127.0.0.1:5000/

10.可以输入一些感兴趣的问题测试一下 GPT 大模型智能应用的能力,这样该应用在本地测试就完成了。
05
接下来将演示如何将该应用部署到 Azure App Service 上:
1.在 VS code 中打开该项目。
2.确认您的 VS Code 已经安装了 Azure Account, Azure Tools 和 Azure App Service 扩展。并在 VS Code 中登录 Azure 账号。
3.在 VS code 中打开设置(Ctrl + Shift + P),并输入“Azure App Service: Create New Web App”。
4.在提示中选择“Azure App Service: Create New Web App”,然后按照提示操作。你需要选择一个订阅、资源组 Web 应用的名称。Runtime Stack 选择 Python 3.10。
5.在 VS code 中打开设置(Ctrl + Shift + P),并输入“Azure App Service: Deploy to Web App”。
6.在提示中选择“Azure App Service: Deploy to Web App”,并按照提示操作。你需要选择之前创建的 Web 应用和要部署的文件夹。
7.应用被成功部署到 Azure App Service 上,并可以通过 Internet 访问。

新一代大模型智能应用
给云原生技术带来哪些机遇?
第二届开源云原生开发者日
解密微软全线产品GPT化背后的云原生技术
报名方式:
在Azure 云科技后台回复关键词
「开源云原生」
即可预约活动席位





