最近火出圈的ChatGPT公司OpenAI發布了Chat API和gpt-3.5-turbo模型,我們現在可以通過API來使用與ChatGPT一樣的NLP模型。
![]()
使用OpenAI API,可以使用gpt-3.5-turbo構建自己的應用程序,可執行以下任務:
草擬電子郵件或其他文字內容寫代碼,例如Python代碼
創建對話代理,回答各類問題
為您的軟件提供自然語言界面
在各種學科中進行輔導
翻譯語言
為視頻游戲模擬角色等
待發掘的各種應用場景……
下面用Python來講解如何使用openai python SDK實現自己的聊天機器人。如果你之前使用過openai python SDK,請確保升級到了最新版本(0.27.0),如果還沒有安裝Python運行環境,請先安裝python 3.10。
獲取API Key
你需要獲取API Key,如果你已經使用過openai SDK那么你可能已經有API Key了(這種情況請跳過本節內容)。
登錄https://platform.openai.com/并導航到https://platform.openai.com/account/api-keys點擊Create new secret key按鈕可以獲取一個新的API Key。
注意:API Key內容只會顯示一次。點擊復制按鈕把API Key復制并保存好。
![]()
創建API
用FastAPI快速創建一個API,它的接口定義如下:
POST/chatbot/talk
Request Body:
“message”:"你好!"
Response:
“content”:“bot response message”
首先,你需要安裝FastAPI和OpenAI SDK,可以通過以下命令在命令行中安裝它們:
pip install fastapi uvicorn openai
為了演示方便,此處簡化了一些最佳實踐,下面是一個最基本的FastAPI服務實現,文件保存在main\app.py文件中。
import openai
from typing import List
from fastapi import FastAPI
from pydantic import BaseModel
from starlette.middleware.cors import CORSMiddleware
history=[]
app=FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["HEAD","OPTIONS","GET","PUT","PATCH","POST","DELETE"],
allow_headers=["*"],
max_age=86400
openai.api_key="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"
class TalkRequest(BaseModel):
message:str
@app.post("/chatbot/talk")
async def chatbot_talk(user_input:TalkRequest):
if not history:
history.append({"role":"system","content":"You are a helpful assistant."})
history.append({"role":"user","content":user_input.message.strip()})
response=await openai.ChatCompletion.acreate(
model="gpt-3.5-turbo",
messages=history)
bot_response=response.choices[0].message
history.append(bot_response)
return bot_response
現在只需創建一個run.py文件來啟動FastAPI服務。
import uvicorn
from main.app import app
if__name__=='__main__':
uvicorn.run(
app=app,
host="127.0.0.1",
port=8080,
use_colors=True,
log_level="debug"
接下來運行run.py。
在瀏覽器中打開http://127.0.0.1:8080/docs即可看到Swagger界面已經加載并顯示出我們的Talk API,如下圖所示:
![]()
點擊Try it out,在message里填入一個句子,例如我們這里輸入的”你好”,點擊Execute按鈕。如果沒有問題應該能得到下面的響應結果:
![]()
OK,到這里我們的后臺服務就已經準備好了。
UI界面
接下來我們做一個基于VUE的UI界面來實現聊天窗口。要實現基于VUE的聊天界面,需要執行以下步驟:
在Vue項目中創建一個聊天組件,例如Chat.vue。
在Chat.vue中添加一個文本框和一個發送按鈕,用于向聊天機器人發送消息。
使用VUE的數據綁定功能,將文本框的值綁定到一個名為message的Vue組件數據屬性。
在發送按鈕上添加一個點擊事件,該事件將調用一個發送消息的方法,該方法將使用Axios(或其他HTTP庫)將消息POST到聊天機器人API。
在發送成功后,使用Axios響應中的數據更新Vue組件數據屬性的值,以顯示聊天機器人的響應消息。
下面是一個示例Chat.vue文件的基本代碼:
{{message.content}}
{{message.content}}
Send
在這個示例中,messages是一個數組,它用于存儲聊天記錄。
sendMessage方法將新消息添加到messages數組中,并使用Axios發送消息并更新響應的數據屬性。
最后,它清空了message數據屬性,以便用戶可以輸入下一個消息。
在模板中,我們使用v-for循環遍歷messages數組,并根據isBot數據屬性來判斷消息是用戶的消息還是聊天機器人的消息。
運行
最后,要在瀏覽器中運行Vue應用程序,需要執行以下步驟。
注意:確保已經安裝了Node.js和npm,這將使我們能夠使用Vue的命令行工具來創建和管理的項目。
(1)打開命令行終端,導航到項目目錄,并使用以下命令安裝:
npm install-g cnpm--registry=https://registry.npmmirror.com
cnpm install-g@vue/cli
(2)使用以下命令創建一個新的Vue項目:
vue create my-chat-app
這將提示選擇一些選項來配置我們的項目,例如要使用哪個包管理器,要使用哪些插件等等。
可以根據需求進行選擇,稍等片刻項目即可創建成功,如下圖所示:
![]()
(3)進入my-chat-app目錄,安裝Axios,可以使用以下命令:
cnpm install axios--save
打開創建的項目文件夾,將Chat.vue組件添加到src/components文件夾中。
打開src/App.vue文件,并將以下代碼添加到模板中:
這將把Chat組件添加到App.vue模板中,以便您可以在瀏覽器中查看聊天界面。
(4)在命令行終端中運行以下命令啟動開發服務器:
pm run serve
![]()
如上圖所示,Web Server已經啟動完畢,用瀏覽器打開http://localhost:8081/可以看到一個基本的聊天窗口,當然這里只有一個簡單的示例來展示基本操作:
![]()
因文章篇幅有限,感興趣的同行完全可以利用前端技術做出更精美的機器人聊天窗口。
最后:在我的V:atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.