通過(guò) HTTP,用戶(hù)可以使用多種語(yǔ)言(包括 Python、Java、JavaScript 和 Ruby)調(diào)用 GPT 大模型智能應(yīng)用 API,構(gòu)建一個(gè)智能聊天機(jī)器人,或其它自然語(yǔ)言生成應(yīng)用。您可以通過(guò)向 API 發(fā)送文本提示并獲取回復(fù)來(lái)使用 GPT大模型智能應(yīng)用。本期 Azure Open AI 官方指南演示如何使用 Python 語(yǔ)言實(shí)現(xiàn) GPT 大模型智能應(yīng)用 API 調(diào)用,并部署到 Azure App Service 展現(xiàn)用戶(hù)交互界面。
準(zhǔn)備工作 ╱ 01
程序設(shè)計(jì)原理 ╱ 02
Python代碼解析 ╱ 03
本地測(cè)試GPT大模型智能應(yīng)用 ╱ 04
部署Python Web應(yīng)用到 ╱ 05
Azure App Service
01
準(zhǔn)備工作
部署 GPT 大模型智能應(yīng)用 API,需要準(zhǔn)備以下幾項(xiàng)工作:
Azure 訂閱
VS Code(1.74.2或以上版本)版本并安裝Azure Account, Azure Tools和Azure App Service 插件
Python 3.10或更高版本(本demo使用 Python 3.10.9)
注冊(cè) OpenAI 開(kāi)發(fā)者賬號(hào)并獲取 API 密鑰
02
程序設(shè)計(jì)原理
1.本項(xiàng)目前端使用 index.html, style.css, script.js實(shí)現(xiàn)用戶(hù)交互界面。后端使用兩個(gè) python 程序(server.py 和 gpt.py)實(shí)現(xiàn)與前端頁(yè)面交互及OpenAI API 調(diào)用。
2.用戶(hù)在 Web 頁(yè)面中輸入文本并單擊按鈕。
3.Web 頁(yè)面使用 JavaScript 將文本發(fā)送到 Flask 應(yīng)用程序的 /chat 路由。
4.Flask 應(yīng)用程序接收文本并使用「GPT 大模型智能應(yīng)用」生成回復(fù)文本。
5.Flask 應(yīng)用程序?qū)⒒貜?fù)文本發(fā)送回 Web 頁(yè)面。
6.Web 頁(yè)面使用 JavaScript 將回復(fù)文本顯示在頁(yè)面上。
在這種架構(gòu)中,index.html 文件是 Web 頁(yè)面的模板。在該文件中,我們使用 HTML 和 CSS 來(lái)創(chuàng)建頁(yè)面布局和外觀。我們還使用 JavaScript 來(lái)處理用戶(hù)交互并與 Flask 應(yīng)用程序進(jìn)行通信。
Flask 應(yīng)用程序文件 (上面的代碼) 負(fù)責(zé)處理用戶(hù)輸入的文本并生成回復(fù)。它還提供了兩個(gè)路由:一個(gè)用于顯示 Web 頁(yè)面,另一個(gè)用于處理用戶(hù)輸入的文本并生成回復(fù)。
在靜態(tài)文件目錄中,我們可以存儲(chǔ) CSS 樣式表和 JavaScript 文件。這些文件可以用來(lái)自定義 Web 頁(yè)面的外觀和交互。
總之,這種設(shè)計(jì)架構(gòu)將 Web 頁(yè)面、Flask 應(yīng)用程序和 OpenAI API 結(jié)合起來(lái),使用戶(hù)能夠通過(guò) Web 頁(yè)面與 GPT 聊天機(jī)器人進(jìn)行交互。
03
Python代碼解析
下面是使用兩個(gè) Python 程序(server.py 和 gpt.py)調(diào)用 OpenAI API,并生成 Flask 交互式 Web 頁(yè)面的代碼。這種設(shè)計(jì)架構(gòu)可以使代碼更易于維護(hù)和擴(kuò)展。
在下面的代碼中,server.py 文件是 Flask 應(yīng)用程序文件。它負(fù)責(zé)提供 Web 頁(yè)面和與 GPT 聊天機(jī)器人進(jìn)行交互的路由。
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大模型智能應(yīng)用」類(lèi)的定義。它包含一個(gè)靜態(tài)方法,用于生成「GPT大模型智能應(yīng)用」的回復(fù)文本。
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 = '' 來(lái)輸入API Key,開(kāi)發(fā)者需用實(shí)際申請(qǐng)的API Key 替換程序中。
2.openai.Completion.create() 方法來(lái)調(diào)用 OpenAI API。這個(gè)方法接受多個(gè)參數(shù),包括:
engine:要使用的 GPT-3 模型。
prompt:聊天對(duì)話(huà)的上下文。這里,我們通過(guò)用戶(hù)的輸入問(wèn)題來(lái)實(shí)現(xiàn)通用的對(duì)話(huà),沒(méi)有對(duì)bot給出特殊提示。開(kāi)發(fā)者可以根據(jù)實(shí)際的應(yīng)用在自己的項(xiàng)目中設(shè)置 prompt。例如:prompt='User: Hi, how are you today?\nBot:'
max_tokens:生成的回復(fù)的最大字符數(shù)。
temperature:生成的回復(fù)的隨機(jī)性。值越大,回復(fù)越隨機(jī)。
更多該方法的參數(shù)及解釋可以參考openai.Completion.create() 方法官方文檔
3.調(diào)用 OpenAI API 后,會(huì)返回一個(gè)包含生成的回復(fù)的響應(yīng)。你可以使用 response.text 屬性來(lái)獲取回復(fù)的文本。你可以將這個(gè)回復(fù)文本作為機(jī)器人的回復(fù),并將其顯示給用戶(hù)。
04
本地測(cè)試GPT大模型智能應(yīng)用
上述步驟展示了如何使用 GPT大模型智能應(yīng)用 API 構(gòu)建一個(gè)智能聊天機(jī)器人。接下來(lái)將演示如何將你的 Python web 應(yīng)用進(jìn)行本地電腦測(cè)試。參考如下步驟:
1. 在 VS code 中打開(kāi)一個(gè)終端。
2. 在終端中輸入以下命令以克隆 Git Hub 項(xiàng)目,這將在你的本地系統(tǒng)上創(chuàng)建一個(gè)名為“Create-A-ChatGPT-Bot-APP-and-Deploy-To-Azure-APP-Service-or-Teams-APP”的文件夾,并將 Git Hub 項(xiàng)目的所有文件克隆到該文件夾中。
3.在 VS code 中打開(kāi)該文件夾,在 gpt.py 代碼里替換你申請(qǐng)的 API Key。
4.在終端里項(xiàng)目根目錄下運(yùn)行以下命令以安裝項(xiàng)目所需的所有依賴(lài)項(xiàng),所需的應(yīng)用中 python 依賴(lài)項(xiàng)會(huì)寫(xiě)在requirements.txt文件中,例如:flask和openai。
pip install -r requirements.txt
5.創(chuàng)建一個(gè)虛擬環(huán)境。虛擬環(huán)境是一種隔離 Python 包的方法,可以在不影響全局 Python 環(huán)境的情況下安裝和測(cè)試包。您可以使用 virtualenv 庫(kù)來(lái)創(chuàng)建虛擬環(huán)境。首先,需要使用 pip 命令安裝 virtualenv。
pip install virtualenv
6.使用以下命令創(chuàng)建一個(gè)名為 env 的虛擬環(huán)境:
virtualenv env
7.運(yùn)行以下命令以激活虛擬環(huán)境。
source env/bin/activate
``
8.運(yùn)行該應(yīng)用。
flask run
9.在瀏覽器中打開(kāi) http://127.0.0.1:5000/
10.可以輸入一些感興趣的問(wèn)題測(cè)試一下 GPT 大模型智能應(yīng)用的能力,這樣該應(yīng)用在本地測(cè)試就完成了。
05
部署 Python Web 應(yīng)用
到 Azure App Service
接下來(lái)將演示如何將該應(yīng)用部署到 Azure App Service 上:
1.在 VS code 中打開(kāi)該項(xiàng)目。
2.確認(rèn)您的 VS Code 已經(jīng)安裝了 Azure Account, Azure Tools 和 Azure App Service 擴(kuò)展。并在 VS Code 中登錄 Azure 賬號(hào)。
3.在 VS code 中打開(kāi)設(shè)置(Ctrl + Shift + P),并輸入“Azure App Service: Create New Web App”。
4.在提示中選擇“Azure App Service: Create New Web App”,然后按照提示操作。你需要選擇一個(gè)訂閱、資源組 Web 應(yīng)用的名稱(chēng)。Runtime Stack 選擇 Python 3.10。
5.在 VS code 中打開(kāi)設(shè)置(Ctrl + Shift + P),并輸入“Azure App Service: Deploy to Web App”。
6.在提示中選擇“Azure App Service: Deploy to Web App”,并按照提示操作。你需要選擇之前創(chuàng)建的 Web 應(yīng)用和要部署的文件夾。
7.應(yīng)用被成功部署到 Azure App Service 上,并可以通過(guò) Internet 訪(fǎng)問(wèn)。
新一代大模型智能應(yīng)用
給云原生技術(shù)帶來(lái)哪些機(jī)遇?
第二屆開(kāi)源云原生開(kāi)發(fā)者日
解密微軟全線(xiàn)產(chǎn)品GPT化背后的云原生技術(shù)
報(bào)名方式:
聯(lián)系客服