国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

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

0
分享至

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

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

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

創(chuàng)建對(duì)話(huà)代理,回答各類(lèi)問(wèn)題

為您的軟件提供自然語(yǔ)言界面

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

翻譯語(yǔ)言

為視頻游戲模擬角色等

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

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

獲取API Key

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

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

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

創(chuàng)建API

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

POST/chatbot/talk

Request Body:

“message”:"你好!"

Response:

“content”:“bot response message”

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

pip install fastapi uvicorn openai

為了演示方便,此處簡(jiǎn)化了一些最佳實(shí)踐,下面是一個(gè)最基本的FastAPI服務(wù)實(shí)現(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)建一個(gè)run.py文件來(lái)啟動(dòng)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"

接下來(lái)運(yùn)行run.py。

在瀏覽器中打開(kāi)http://127.0.0.1:8080/docs即可看到Swagger界面已經(jīng)加載并顯示出我們的Talk API,如下圖所示:

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

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

UI界面

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

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

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

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

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

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

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

{{message.content}}

{{message.content}}

Send

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

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

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

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

運(yùn)行

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

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

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

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

cnpm install-g@vue/cli

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

vue create my-chat-app

這將提示選擇一些選項(xiàng)來(lái)配置我們的項(xiàng)目,例如要使用哪個(gè)包管理器,要使用哪些插件等等。

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

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

cnpm install axios--save

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

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

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

(4)在命令行終端中運(yùn)行以下命令啟動(dòng)開(kāi)發(fā)服務(wù)器:

pm run serve

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

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

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

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(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)推薦
熱點(diǎn)推薦
離譜!iPhone 忠誠(chéng)度飆到 96.4%,創(chuàng)歷史新高

離譜!iPhone 忠誠(chéng)度飆到 96.4%,創(chuàng)歷史新高

新浪財(cái)經(jīng)
2026-04-18 18:47:00
“國(guó)營(yíng)媒體是謊言工廠(chǎng)”,這位總理上臺(tái)就宣布關(guān)閉

“國(guó)營(yíng)媒體是謊言工廠(chǎng)”,這位總理上臺(tái)就宣布關(guān)閉

法經(jīng)社
2026-04-19 12:34:54
比賽提前結(jié)束,WSBK荷蘭站第二輪正賽張雪機(jī)車(chē)斬獲第七名

比賽提前結(jié)束,WSBK荷蘭站第二輪正賽張雪機(jī)車(chē)斬獲第七名

澎湃新聞
2026-04-19 20:28:26
73歲天賜父親訴說(shuō)太辛苦,大女兒來(lái)家里帶妹妹,太暖心了

73歲天賜父親訴說(shuō)太辛苦,大女兒來(lái)家里帶妹妹,太暖心了

童叔不飆車(chē)
2026-04-19 11:09:23
伊朗稱(chēng)其補(bǔ)充武器能力在;鹌陂g超過(guò)戰(zhàn)前水平

伊朗稱(chēng)其補(bǔ)充武器能力在;鹌陂g超過(guò)戰(zhàn)前水平

新華社
2026-04-19 18:49:07
珠海家長(zhǎng):自家孩子趴桌睡,憑啥先給別人捐躺椅?官方回應(yīng)

珠海家長(zhǎng):自家孩子趴桌睡,憑啥先給別人捐躺椅?官方回應(yīng)

南方都市報(bào)
2026-04-17 15:48:13
以色列已失控?以軍炮打聯(lián)合國(guó)維和部隊(duì),法軍犧牲,馬克龍表態(tài)

以色列已失控?以軍炮打聯(lián)合國(guó)維和部隊(duì),法軍犧牲,馬克龍表態(tài)

來(lái)科點(diǎn)譜
2026-04-19 07:15:46
嚴(yán)肅辟謠:小鵬 GX沒(méi)有抄襲路虎攬勝!

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

車(chē)市博覽
2026-04-19 16:06:34
4月19日晚間,多家上市公司發(fā)布重大利好利空好消息

4月19日晚間,多家上市公司發(fā)布重大利好利空好消息

A股數(shù)據(jù)表
2026-04-19 17:38:48
網(wǎng)友喊話(huà)讓何潤(rùn)東代言霸王茶姬,此前他已接到多個(gè)商務(wù)合作,最近30天抖音漲粉近200萬(wàn),品牌客服回應(yīng)

網(wǎng)友喊話(huà)讓何潤(rùn)東代言霸王茶姬,此前他已接到多個(gè)商務(wù)合作,最近30天抖音漲粉近200萬(wàn),品牌客服回應(yīng)

極目新聞
2026-04-19 17:19:41
4月17日,日本開(kāi)始賭國(guó)運(yùn)了

4月17日,日本開(kāi)始賭國(guó)運(yùn)了

閑閑碎
2026-04-18 20:34:49
東風(fēng) - 31 泄密大案:總工程師被美色策反,國(guó)之重器險(xiǎn)遭滅頂之災(zāi)

東風(fēng) - 31 泄密大案:總工程師被美色策反,國(guó)之重器險(xiǎn)遭滅頂之災(zāi)

干史人
2026-04-18 13:44:12
教育部剛通知!9月起上學(xué)新規(guī)全覆蓋,普通家庭孩子上學(xué)迎公平

教育部剛通知!9月起上學(xué)新規(guī)全覆蓋,普通家庭孩子上學(xué)迎公平

復(fù)轉(zhuǎn)這些年
2026-04-18 11:43:46
上品+草橋店月底閉店,北京僅剩3家門(mén)店!曾經(jīng)周末擠滿(mǎn)人…

上品+草橋店月底閉店,北京僅剩3家門(mén)店!曾經(jīng)周末擠滿(mǎn)人…

北京商報(bào)
2026-04-19 18:23:27
恒大暴雷之前,許家印為什么沒(méi)有跑?

恒大暴雷之前,許家印為什么沒(méi)有跑?

擔(dān)撲
2026-04-19 13:40:25
太唏噓!小楊哥新加坡近照流出,憔悴到不像本人

太唏噓!小楊哥新加坡近照流出,憔悴到不像本人

雷科技
2026-04-17 18:41:25
比黃金還稀缺!比爾蓋茨、社保重倉(cāng)硬科技龍頭,全是高成長(zhǎng)+高roe

比黃金還稀缺!比爾蓋茨、社保重倉(cāng)硬科技龍頭,全是高成長(zhǎng)+高roe

長(zhǎng)風(fēng)價(jià)值掘金
2026-04-19 11:03:37
雷來(lái)了,周末24家公司利空,4家被st,2家被立案調(diào)查,18家減持!

雷來(lái)了,周末24家公司利空,4家被st,2家被立案調(diào)查,18家減持!

夜深?lèi)?ài)雜談
2026-04-19 17:02:12
萬(wàn)達(dá)電影,明天改名!王健林時(shí)代落幕

萬(wàn)達(dá)電影,明天改名!王健林時(shí)代落幕

新民晚報(bào)
2026-04-19 19:54:05
中俄關(guān)系比傳統(tǒng)“聯(lián)盟”更深厚、更可靠

中俄關(guān)系比傳統(tǒng)“聯(lián)盟”更深厚、更可靠

看看新聞Knews
2026-04-19 08:36:10
2026-04-19 21:16:49
51Testing軟件測(cè)試網(wǎng) incentive-icons
51Testing軟件測(cè)試網(wǎng)
中國(guó)軟件測(cè)試人的精神家園
1558文章數(shù) 13260關(guān)注度
往期回顧 全部

科技要聞

50分26秒破人類(lèi)紀(jì)錄!300臺(tái)機(jī)器人狂飆半馬

頭條要聞

半年下沉22厘米 女子家中坐擁價(jià)值上億別墅卻沒(méi)法住人

頭條要聞

半年下沉22厘米 女子家中坐擁價(jià)值上億別墅卻沒(méi)法住人

體育要聞

湖人1比0火箭:老詹比烏度卡像教練

娛樂(lè)要聞

張?zhí)鞇?ài)評(píng)論區(qū)淪陷!被曝卷入小三風(fēng)波

財(cái)經(jīng)要聞

華誼兄弟,8年虧光85億

汽車(chē)要聞

29分鐘大定破萬(wàn) 極氪8X為什么這么多人買(mǎi)?

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

藝術(shù)
教育
家居
時(shí)尚
軍事航空

藝術(shù)要聞

俄羅斯畫(huà)家季莫申科 小幅風(fēng)景油畫(huà)寫(xiě)生(二)

教育要聞

高考綜合改革成績(jī)突出!綿陽(yáng)5家單位、12名個(gè)人獲得表彰

家居要聞

法式線(xiàn)條 時(shí)光靜淌

裝修“精神角落”,就是這么上癮

軍事要聞

伊朗逼退美掃雷艇:美方求給15分鐘撤退

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