隨著人工智能技術(shù)的迅猛發(fā)展,大型語言模型成為了熱門話題。國際上的GPT-3、BERT等模型備受關(guān)注,而國內(nèi)的本土語言模型ChatGLM也引起了廣泛關(guān)注。ChatGLM是由清華大學(xué)開發(fā)的強(qiáng)大語言生成模型,結(jié)合了深度學(xué)習(xí)技術(shù)和大量中文語料的訓(xùn)練成果。它在自然語言理解和生成方面展現(xiàn)了出色性能,為國內(nèi)的自然語言處理研究與應(yīng)用提供了有力支持。
通過使用行空板和UGB喇叭,你可以制作一個有趣好玩的聊天機(jī)器人應(yīng)用。只需修改角色描述,你就能打造屬于自己的個性化聊天機(jī)器人,它能以多個角色身份與你進(jìn)行對話。
硬件準(zhǔn)備
行空板,USB線,USB喇叭
行空板是一款專為Python學(xué)習(xí)和使用設(shè)計的新一代國產(chǎn)開源硬件,采用單板計算機(jī)架構(gòu),集成LCD彩屏、WiFi藍(lán)牙、多種常用傳感器和豐富的拓展接口。同時,其自帶Linux操作系統(tǒng)和Python環(huán)境,還預(yù)裝了常用的Python庫,只需兩步就能進(jìn)行Python學(xué)習(xí)。
功能分解
具體操作
1、注冊智譜api:智譜AI開放平臺,https://open.bigmodel.cn/,選擇驗(yàn)證碼登錄,輸入手機(jī)號和驗(yàn)證碼完成冊。點(diǎn)擊API keys, 點(diǎn)擊“去認(rèn)證”,進(jìn)行實(shí)名認(rèn)證。
2、注冊并獲取微軟語音服務(wù)API密鑰
(1)注冊微軟的賬號,輸入網(wǎng)址:https://portal.azure.com/,用郵箱創(chuàng)建新賬號。
新用戶有一年的免費(fèi)額度但需要信用卡驗(yàn)證。如果沒有條件申請微軟的語音服務(wù)API,也可以使用百度的語音服務(wù)API,文章的最后提供了使用ChatGLM和百度API的實(shí)現(xiàn)代碼。
(2)通過驗(yàn)證: 創(chuàng)建好賬號登錄后會進(jìn)入以下頁面https://portal.azure.com/#home面對新用戶,微軟提供了1年的免費(fèi)服務(wù)但需要通過驗(yàn)證,這里有兩種驗(yàn)證方法。(1)visa/銀聯(lián)卡驗(yàn)證(2)大學(xué)生能無需信用卡,使用學(xué)生郵箱驗(yàn)證。
(3)申請資源: 驗(yàn)證通過后,在Azure門戶中,點(diǎn)擊左上角的“+ 創(chuàng)建資源”按鈕。之后會跳轉(zhuǎn)到如下頁面,按照提示完成填寫信息。
3、加載行空板-安裝庫-行空板聯(lián)網(wǎng)
(1)加載行空板:第一步:使用USB線將行空板連接在電腦上。按照步驟加載行空板,創(chuàng)建好文件后,可以看到一個名為“chatbot.py”的文件,雙擊打開。
(2)安裝所需要的庫,依次輸入PIP指令,點(diǎn)擊“運(yùn)行”
(3)行空板聯(lián)網(wǎng):調(diào)用API必須要聯(lián)網(wǎng)。由于在本項(xiàng)目中,使用了智譜清言的API和微軟的語音API,所以要為行空板連接網(wǎng)絡(luò)。(1)打開瀏覽器,輸入“10.1.2.3”進(jìn)行行空板頁面。(2)選擇“網(wǎng)絡(luò)設(shè)置”,選擇WIFI ,輸入密碼,注意行空板僅支持2.4GWIFI熱點(diǎn)。點(diǎn)擊“連接”,行空板成功聯(lián)網(wǎng)會顯示“連接成功”,如下圖。
4、編程
(1)調(diào)用chatglm的API: 參考官方的API調(diào)用文檔,定義一個名為ChatGPT的類,代表聊天機(jī)器。為了測試效果,在主循環(huán)中獲取用戶輸入,將用戶的輸入傳給聊天機(jī)器人,打印聊天機(jī)器人的回復(fù)。
(2)實(shí)現(xiàn)多輪對話: 點(diǎn)擊右上角的運(yùn)行,開始在終端打字,與機(jī)器人進(jìn)行對話。以下是測試對話截圖,"You"部分是輸入的內(nèi)容,“chatbot”是調(diào)用智譜API,使用模型'chatglm_turbo',獲取的回復(fù)
當(dāng)聊天機(jī)器人給出謎語后,回復(fù)“猜不出來”時,期待的是聊天機(jī)器人能告訴謎語的答案。但顯然根據(jù)它的回復(fù),模型沒有理解語意是猜不出上輪對話的謎語。這個現(xiàn)象是因?yàn)榕c模型的對話是單輪的形式,即問一答一;而在處理復(fù)雜的對話場景時,理解上下文和實(shí)現(xiàn)多輪對話是非常重要的。期待的效果是聊天機(jī)器人能結(jié)合上下文的語境,實(shí)現(xiàn)多輪對話。要解決這個問題,可以將整個對話歷史作為輸入發(fā)送給模型,而不僅僅是最新的用戶消息。這樣,模型就可以看到整個對話的上下文,并據(jù)此生成回復(fù)。
為了讓聊天機(jī)器人能理解上下文的語境,可以在__init__ 方法中添加 self.dialogue 列表,用于存儲對話歷史。在 send_message 方法中,將用戶的消息和模型的回復(fù)都添加到對話歷史中,然后將整個對話歷史轉(zhuǎn)化為一個字符串,作為提示發(fā)送給模型。
(3)創(chuàng)建角色字典,實(shí)現(xiàn)多角色選擇
現(xiàn)在我們已經(jīng)成功實(shí)現(xiàn)了多輪對話,在與聊天機(jī)器人對話時,它是以人工智能助手(assistant)的身份。怎么能實(shí)現(xiàn)角色扮演呢?為了實(shí)現(xiàn)這個功能,可以在 ChatGPT 類中添加一個 self.role 屬性來存儲角色描述。然后,我們可以修改 send_message 方法,使其在將對話歷史轉(zhuǎn)化為字符串時,首先添加角色描述。這樣,模型就會知道它應(yīng)該扮演的角色,從而生成符合角色的回復(fù)。
5、UI設(shè)計
按照同樣的邏輯在行空板上進(jìn)行UI設(shè)計。
6、實(shí)現(xiàn)語音交互功能
實(shí)現(xiàn)語音交互功能,在角色圖片的下方添加一個麥克風(fēng)圖片,當(dāng)點(diǎn)擊麥克風(fēng)圖片開始錄音,并使用百度語音識別API實(shí)現(xiàn)語音轉(zhuǎn)文字作為對話內(nèi)容傳給聊天機(jī)器人,再調(diào)用百度語音合成API將聊天機(jī)器人的回復(fù)播報出來。
借助ChatGLM語言生成模型和多種人工智能技術(shù),我們可以創(chuàng)建一個有趣而富有趣味性的聊天機(jī)器人應(yīng)用。只需準(zhǔn)備一塊行空板和一個UGB喇叭,就能得到一個可以扮演多個角色與你進(jìn)行對話的機(jī)器人助手。通過自定義角色描述,你可以打造一個完全符合個性化需求的聊天機(jī)器人!讓我們一起開始這個有趣的項(xiàng)目吧!
關(guān)于“行空板+大模型”——基于ChatGLM的多角色交互式聊天機(jī)器人”詳細(xì)實(shí)現(xiàn)過程,關(guān)注“行空板”公眾號”,了解更多。
上海智位機(jī)器人
上海智位機(jī)器人成立于2010年,是全球領(lǐng)先的從事開源硬件、機(jī)器人產(chǎn)品和科創(chuàng)教育的高科技企業(yè),打造了DFRobot、蘑菇云科創(chuàng)教育等品牌,是國內(nèi)最早的創(chuàng)客理念引入者和倡導(dǎo)者,創(chuàng)客教育的開拓者和引領(lǐng)者。旗下?lián)碛兄袊畲蟮木€上DF創(chuàng)客社區(qū)和國家級創(chuàng)客空間——蘑菇云創(chuàng)客空間,提供豐富的線上和線下學(xué)習(xí)資源,構(gòu)建了一個自由、開放和富于創(chuàng)造力的交流空間。其Gravity產(chǎn)品已被全球超過100萬開發(fā)者選用。合作伙伴包括微軟、英特爾、Autodesk、霍尼韋爾、NASA、MIT等知名廠商和機(jī)構(gòu)。
審核編輯 黃宇
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28646瀏覽量
208439 -
大模型
+關(guān)注
關(guān)注
2文章
2551瀏覽量
3174
發(fā)布評論請先 登錄
相關(guān)推薦
評論