亚洲中文字幕乱码亚洲-蜜桃成熟视频在线观看-免费中文字幕视频在线-中国五十路熟妇洗澡视频-亚洲av伊人啪啪c-国产精品成人一区二区-国产自拍视频一区在线观看-成人一区不卡二区三区四区-亚洲情精品中文字幕99在线

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

Python+ChatGPT API,搭建專屬你的智能聊天機(jī)器人

0
分享至

最近火出圈的ChatGPT公司OpenAI發(fā)布了Chat API和gpt-3.5-turbo模型,我們現(xiàn)在可以通過API來使用與ChatGPT一樣的NLP模型。

使用OpenAI API,可以使用gpt-3.5-turbo構(gòu)建自己的應(yīng)用程序,可執(zhí)行以下任務(wù):

草擬電子郵件或其他文字內(nèi)容寫代碼,例如Python代碼

創(chuàng)建對話代理,回答各類問題

為您的軟件提供自然語言界面

在各種學(xué)科中進(jìn)行輔導(dǎo)

翻譯語言

為視頻游戲模擬角色等

待發(fā)掘的各種應(yīng)用場景……

下面用Python來講解如何使用openai python SDK實現(xiàn)自己的聊天機(jī)器人。如果你之前使用過openai python SDK,請確保升級到了最新版本(0.27.0),如果還沒有安裝Python運行環(huán)境,請先安裝python 3.10。

獲取API Key

你需要獲取API Key,如果你已經(jīng)使用過openai SDK那么你可能已經(jīng)有API Key了(這種情況請?zhí)^本節(jié)內(nèi)容)。

登錄https://platform.openai.com/并導(dǎo)航到https://platform.openai.com/account/api-keys點擊Create new secret key按鈕可以獲取一個新的API Key。

注意:API Key內(nèi)容只會顯示一次。點擊復(fù)制按鈕把API Key復(fù)制并保存好。

創(chuàng)建API

用FastAPI快速創(chuàng)建一個API,它的接口定義如下:

POST/chatbot/talk

Request Body:

“message”:"你好!"

Response:

“content”:“bot response message”

首先,你需要安裝FastAPI和OpenAI SDK,可以通過以下命令在命令行中安裝它們:

pip install fastapi uvicorn openai

為了演示方便,此處簡化了一些最佳實踐,下面是一個最基本的FastAPI服務(wù)實現(xiàn),文件保存在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

現(xiàn)在只需創(chuàng)建一個run.py文件來啟動FastAPI服務(wù)。

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界面已經(jīng)加載并顯示出我們的Talk API,如下圖所示:

點擊Try it out,在message里填入一個句子,例如我們這里輸入的”你好”,點擊Execute按鈕。如果沒有問題應(yīng)該能得到下面的響應(yīng)結(jié)果:

OK,到這里我們的后臺服務(wù)就已經(jīng)準(zhǔn)備好了。

UI界面

接下來我們做一個基于VUE的UI界面來實現(xiàn)聊天窗口。要實現(xiàn)基于VUE的聊天界面,需要執(zhí)行以下步驟:

在Vue項目中創(chuàng)建一個聊天組件,例如Chat.vue。

在Chat.vue中添加一個文本框和一個發(fā)送按鈕,用于向聊天機(jī)器人發(fā)送消息。

使用VUE的數(shù)據(jù)綁定功能,將文本框的值綁定到一個名為message的Vue組件數(shù)據(jù)屬性。

在發(fā)送按鈕上添加一個點擊事件,該事件將調(diào)用一個發(fā)送消息的方法,該方法將使用Axios(或其他HTTP庫)將消息POST到聊天機(jī)器人API。

在發(fā)送成功后,使用Axios響應(yīng)中的數(shù)據(jù)更新Vue組件數(shù)據(jù)屬性的值,以顯示聊天機(jī)器人的響應(yīng)消息。

下面是一個示例Chat.vue文件的基本代碼:

{{message.content}}

{{message.content}}

Send

在這個示例中,messages是一個數(shù)組,它用于存儲聊天記錄。

sendMessage方法將新消息添加到messages數(shù)組中,并使用Axios發(fā)送消息并更新響應(yīng)的數(shù)據(jù)屬性。

最后,它清空了message數(shù)據(jù)屬性,以便用戶可以輸入下一個消息。

在模板中,我們使用v-for循環(huán)遍歷messages數(shù)組,并根據(jù)isBot數(shù)據(jù)屬性來判斷消息是用戶的消息還是聊天機(jī)器人的消息。

運行

最后,要在瀏覽器中運行Vue應(yīng)用程序,需要執(zhí)行以下步驟。

注意:確保已經(jīng)安裝了Node.js和npm,這將使我們能夠使用Vue的命令行工具來創(chuàng)建和管理的項目。

(1)打開命令行終端,導(dǎo)航到項目目錄,并使用以下命令安裝:

npm install-g cnpm--registry=https://registry.npmmirror.com

cnpm install-g@vue/cli

(2)使用以下命令創(chuàng)建一個新的Vue項目:

vue create my-chat-app

這將提示選擇一些選項來配置我們的項目,例如要使用哪個包管理器,要使用哪些插件等等。

可以根據(jù)需求進(jìn)行選擇,稍等片刻項目即可創(chuàng)建成功,如下圖所示:

(3)進(jìn)入my-chat-app目錄,安裝Axios,可以使用以下命令:

cnpm install axios--save

打開創(chuàng)建的項目文件夾,將Chat.vue組件添加到src/components文件夾中。

打開src/App.vue文件,并將以下代碼添加到模板中:

這將把Chat組件添加到App.vue模板中,以便您可以在瀏覽器中查看聊天界面。

(4)在命令行終端中運行以下命令啟動開發(fā)服務(wù)器:

pm run serve

如上圖所示,Web Server已經(jīng)啟動完畢,用瀏覽器打開http://localhost:8081/可以看到一個基本的聊天窗口,當(dāng)然這里只有一個簡單的示例來展示基本操作:

因文章篇幅有限,感興趣的同行完全可以利用前端技術(shù)做出更精美的機(jī)器人聊天窗口。

最后:在我的V:atstudy-js,可以費領(lǐng)取一份10G軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學(xué)習(xí)教程免費分享!其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

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.

相關(guān)推薦
熱點推薦
潮水退去才知誰在裸泳!瘋狂倒賣俄油的印度,徹底慌了神

潮水退去才知誰在裸泳!瘋狂倒賣俄油的印度,徹底慌了神

安珈使者啊
2026-04-20 10:04:22
廣州增城,一場突如其來的噩夢擊碎了合生湖山國際七期業(yè)主的寧靜

廣州增城,一場突如其來的噩夢擊碎了合生湖山國際七期業(yè)主的寧靜

童童聊娛樂啊
2026-04-20 05:36:28
8連板,最新“漲停王”出爐!業(yè)績連虧股浮出,最低營收僅145萬元

8連板,最新“漲停王”出爐!業(yè)績連虧股浮出,最低營收僅145萬元

數(shù)據(jù)寶
2026-04-20 12:22:50
14歲少年拉車門被拘9天,民警:年齡不再是護(hù)身符

14歲少年拉車門被拘9天,民警:年齡不再是護(hù)身符

現(xiàn)代快報
2026-04-19 15:20:16
嚴(yán)肅辟謠:小鵬 GX沒有抄襲路虎攬勝!

嚴(yán)肅辟謠:小鵬 GX沒有抄襲路虎攬勝!

車市博覽
2026-04-19 16:06:34
歐洲媒體哀嚎“一切結(jié)束了”,荷蘭斷供光刻機(jī),坑的卻是自己人!

歐洲媒體哀嚎“一切結(jié)束了”,荷蘭斷供光刻機(jī),坑的卻是自己人!

青煙小先生
2026-04-20 09:48:09
太尷尬了!9個姐妹聚餐,臨時倡議各邀請一男生,竟然無一人到場

太尷尬了!9個姐妹聚餐,臨時倡議各邀請一男生,竟然無一人到場

火山詩話
2026-04-19 08:06:38
神秘消失數(shù)月后突然現(xiàn)身!美國最頭疼的人,悄悄到了巴格達(dá)

神秘消失數(shù)月后突然現(xiàn)身!美國最頭疼的人,悄悄到了巴格達(dá)

菁菁子衿
2026-04-19 19:41:04
女大學(xué)生吐槽“普信男”視頻火了,卻因長相被嘲:你也照照鏡子吧

女大學(xué)生吐槽“普信男”視頻火了,卻因長相被嘲:你也照照鏡子吧

世界圈
2026-04-12 00:10:16
日本在野黨無一支持率達(dá)到3%

日本在野黨無一支持率達(dá)到3%

天真無牙
2026-04-19 19:08:49
95%簽約率全是演戲!深圳舊改“殺豬盤”吞沒3200萬真相

95%簽約率全是演戲!深圳舊改“殺豬盤”吞沒3200萬真相

樓市諸葛
2026-04-20 01:23:41
伊朗總統(tǒng)直言:伊朗只是墊腳石,特朗普真正要對付的從來都是中國

伊朗總統(tǒng)直言:伊朗只是墊腳石,特朗普真正要對付的從來都是中國

通文知史
2026-04-20 12:15:03
36歲女星擊敗章子怡陳法拉馬麗獲金像獎影后!梁家輝第五次奪影帝

36歲女星擊敗章子怡陳法拉馬麗獲金像獎影后!梁家輝第五次奪影帝

小娛樂悠悠
2026-04-20 09:51:20
醫(yī)生忠告:肺癌早期不是咳嗽,而是頻繁出現(xiàn)這3個癥狀,小心異常

醫(yī)生忠告:肺癌早期不是咳嗽,而是頻繁出現(xiàn)這3個癥狀,小心異常

芹姐說生活
2026-04-18 15:22:35
廣東隊或無緣第四,北京隊不愿放棄四強(qiáng),今晚山西魔鬼主場也難啃

廣東隊或無緣第四,北京隊不愿放棄四強(qiáng),今晚山西魔鬼主場也難啃

籃球看比賽
2026-04-20 10:50:58
馬英九攤牌:兩岸開戰(zhàn)在所難免,臺成不了烏克蘭,只因有致命死穴

馬英九攤牌:兩岸開戰(zhàn)在所難免,臺成不了烏克蘭,只因有致命死穴

混沌錄
2026-04-16 17:31:13
“一個針頭給15人采血”浙江宣傳為何又默不作聲?

“一個針頭給15人采血”浙江宣傳為何又默不作聲?

清哲木觀察
2026-04-19 11:14:52
國家一級女演員陳麗云被逮捕!

國家一級女演員陳麗云被逮捕!

許三歲
2026-03-28 09:24:30
火藥味已經(jīng)越來越濃了,現(xiàn)在不光是黃海和東海進(jìn)行軍事演習(xí)

火藥味已經(jīng)越來越濃了,現(xiàn)在不光是黃海和東海進(jìn)行軍事演習(xí)

安安說
2026-04-20 11:03:05
出事了,伊外長闖下大禍,內(nèi)部爭執(zhí)爆發(fā),白送美國一“天賜良機(jī)”

出事了,伊外長闖下大禍,內(nèi)部爭執(zhí)爆發(fā),白送美國一“天賜良機(jī)”

舊窗老街
2026-04-20 12:01:29
2026-04-20 13:03:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1558文章數(shù) 13260關(guān)注度
往期回顧 全部

科技要聞

藍(lán)色起源一級火箭完美回收 客戶衛(wèi)星未入軌

頭條要聞

媒體:伊朗剛說不談 美國立即開打

頭條要聞

媒體:伊朗剛說不談 美國立即開打

體育要聞

七大獎項候選官宣!文班或全票DPOY

娛樂要聞

鹿晗生日上熱搜,被關(guān)曉彤撕下體面

財經(jīng)要聞

月之暗面IPO迷局

汽車要聞

把天門山搬進(jìn)廠?開仰望U8沖上45度坡的那刻 我腿軟了

態(tài)度原創(chuàng)

房產(chǎn)
時尚
藝術(shù)
數(shù)碼
教育

房產(chǎn)要聞

官宣簽約最強(qiáng)城更!海口樓市,突然殺入神秘房企!

今年最流行的衣服竟然是它?高級又氣質(zhì)!

藝術(shù)要聞

王羲之《換鵝帖》尚在人間,驚艷無比!

數(shù)碼要聞

華為全新鴻蒙電腦搭載云晰柔光屏,硬件級低藍(lán)光,今日下午發(fā)布

教育要聞

我發(fā)現(xiàn)一個殘酷真相:孩子長大后,最怨恨的不是管太嚴(yán)的父母……

無障礙瀏覽 進(jìn)入關(guān)懷版