ChatGLM部署、微調(diào)與開發(fā) 課件 15.基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)_第1頁
ChatGLM部署、微調(diào)與開發(fā) 課件 15.基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)_第2頁
ChatGLM部署、微調(diào)與開發(fā) 課件 15.基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)_第3頁
ChatGLM部署、微調(diào)與開發(fā) 課件 15.基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)_第4頁
ChatGLM部署、微調(diào)與開發(fā) 課件 15.基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第15章基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)需求分析一系統(tǒng)設(shè)計(jì)二系統(tǒng)實(shí)現(xiàn)三系統(tǒng)測試四系統(tǒng)和使用說明五案例系統(tǒng)部署六015.1.1需求描述需求分析一個成功的系統(tǒng)開發(fā)項(xiàng)目不僅依賴于先進(jìn)的技術(shù),更依賴于對用戶需求的深入理解和精確捕捉。需求分析作為系統(tǒng)開發(fā)生命周期中的第一個階段,其重要性不言而喻。用例分析圖GASE-R圖15.1.1需求描述主要功能該系統(tǒng)以大模型的技術(shù)為基礎(chǔ),在功能性需求方面涉及六大功能類別。六大功能分別為:賬號管理功能、智能體管理功能、智能生成頭像功能、角色扮演功能、智能報表功能和長文檔解讀功能。其中角色扮演功能、智能報表功能和長文檔解讀功能都是由創(chuàng)建的智能體實(shí)現(xiàn)。智能體對智能體信息進(jìn)行管理智能體信息:名稱、人設(shè)、頭像和類別操作:創(chuàng)建、刪除、修改和查詢,是否共享智能體角色扮演角色扮演對話與用戶進(jìn)行聊天對話,同時滿足角色回復(fù)的內(nèi)容要復(fù)合角色的人設(shè),并具備一定的記憶性賬戶管理對用戶信息進(jìn)行管理用戶信息:用戶名、用戶密碼、用戶頭像、角色信息操作:添加、刪除、修改和查詢等功能生成頭像生成頭像根據(jù)提供頭像的文本描述生成符合文本內(nèi)容的頭像智能報表智能報表功能需要報表智能體能夠根據(jù)用戶的問題給出相應(yīng)的繪制報表的代碼和執(zhí)行代碼得到的結(jié)果文檔解讀長文檔解讀功能需要長文檔解讀智能體能夠根據(jù)用戶上傳的文檔來回答問題,并且回答的內(nèi)容要符合文檔里的內(nèi)容第15章基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)需求分析一系統(tǒng)設(shè)計(jì)二系統(tǒng)實(shí)現(xiàn)三系統(tǒng)測試四系統(tǒng)和使用說明五案例系統(tǒng)部署六315.2總體設(shè)計(jì)設(shè)計(jì)結(jié)構(gòu)GASv1.0主要采用B/S結(jié)構(gòu),應(yīng)用大模型的技術(shù),需要實(shí)現(xiàn)智能體管理、角色扮演、智能報表等功能設(shè)計(jì)語言算法模型的開發(fā)語言為Python,系統(tǒng)可視化頁面設(shè)計(jì)語言為HTML和CSS,以及數(shù)據(jù)庫查詢語言為SQL智能體表(agents)15.3.1表結(jié)構(gòu)設(shè)計(jì)字段名稱中文描述字段類型可否為空說明uid用戶idInt(11)否自增,主鍵name用戶名Varchar(11)否—password用戶密碼Varchar(64)否密碼的加鹽哈希值avatar_description頭像的文本描述Varchar(256)可—avatar_url用戶頭像urlVarchar(256)否圖片地址鏈接urlrole用戶角色Varchar(16)否user、admincreated_at注冊時間Timestamp否—updated_at更新時間Timestamp可—is_deleted賬戶狀態(tài)Bool否t,f該表用于存儲和管理用戶信息,通過用戶ID唯一標(biāo)識用戶,區(qū)分用戶角色并記錄賬戶狀態(tài),同時加密存儲用戶密碼以保障賬戶安全。智能體表(agents)15.3.1表結(jié)構(gòu)設(shè)計(jì)字段名稱中文描述字段類型可否為空說明cid智能體idInt(11)否自增,主鍵uid用戶idInt(11)否

name智能體名稱Varchar(32)否—description智能體信息Varchar(256)否—category智能體類別Varchar(8)否food、travel、tech、health、law、reporter、retriever、otheravatar_description頭像的文本描述Varchar(256)可—avatar_url智能體頭像Varchar(256)否圖片地址鏈接urlcreated_at創(chuàng)建時間Timestamp否—updated_at更新時間Timestamp可—is_shared是否為共享智能體Bool否t,fis_deleted智能體狀態(tài)Bool否t,fknowledge_id知識庫idInt(11)可—會話表(chats)15.3.1表結(jié)構(gòu)設(shè)計(jì)字段名稱中文描述字段類型可否為空說明chat_id會話idInt(11)否自增,主鍵uid用戶idInt(11)否—cid智能體idInt(11)否—created_at創(chuàng)建時間Timestamp否—is_deleted會話狀態(tài)Bool否t,f聊天記錄表(messages)字段名稱中文描述字段類型可否為空說明mid聊天記錄idInt(11)否自增,主鍵chat_id會話idInt(11)否—sender發(fā)送者Varchar(8)否user、assistantcontent發(fā)送內(nèi)容Varchar(255)否—created_at創(chuàng)建時間Timestamp否—15.3.2算法流程圖程序流程圖1.提高理解:流程圖通過圖形化的方式清晰地展示了程序的執(zhí)行步驟和邏輯結(jié)構(gòu)。2.促進(jìn)溝通:流程圖作為一種通用的視覺表示工具,可以幫助團(tuán)隊(duì)成員之間有效溝通和協(xié)作3.輔助設(shè)計(jì):在編程前繪制流程圖可以幫助開發(fā)者更好地規(guī)劃和設(shè)計(jì)程序結(jié)構(gòu),避免邏輯錯誤,提高編程效率。15.3.2算法流程圖注冊流程圖注冊流程該算法包含兩部分功能:驗(yàn)證用戶名是否存在,每個用戶的用戶名都是唯一的,不允許出現(xiàn)相同的用戶名。驗(yàn)證密碼是否正確,防止非法修改密碼。15.3.3頁面設(shè)計(jì)登錄頁面注冊頁面系統(tǒng)首頁個人信息頁面對話頁面修改智能體頁面創(chuàng)建智能體頁面賬號管理頁面新增賬號頁面編輯賬號頁面智能體管理頁面編輯智能體頁面頁面設(shè)計(jì)依據(jù)GAS的功能分析,以及軟件體系結(jié)構(gòu)設(shè)計(jì)方案,本節(jié)對系統(tǒng)進(jìn)行了初步的界面設(shè)計(jì)。該系統(tǒng)總共由12個頁面組成。15.3.3頁面設(shè)計(jì)登陸注冊頁面在登錄頁面中,用戶需要輸入用戶名和密碼進(jìn)行登錄,單擊登錄按鈕后如果登錄成功將進(jìn)入系統(tǒng)首頁,如果登錄失敗將提示用戶名或密碼錯誤。在輸入框中要顯示用戶名和密碼的提示信息(如用戶名不能超過11個位等)。若用戶還沒有系統(tǒng)賬戶,可以單擊注冊按鈕進(jìn)行賬號注冊。15.3.3頁面設(shè)計(jì)系統(tǒng)首頁當(dāng)單擊登錄按鈕登錄成功后,將會進(jìn)入系統(tǒng)首頁。整個系統(tǒng)頁面框架都是由頂部標(biāo)題欄、左側(cè)導(dǎo)航欄和右側(cè)活動欄組成。用于展示用戶擁有的所有智能體信息(智能體名稱、智能體類別、智能體頭像),單擊智能體頭像將進(jìn)入與該智能體的對話頁面。頂部標(biāo)題欄由系統(tǒng)名稱、用戶頭像、修改密碼按鈕和退出按鈕組成。單擊用戶頭像會進(jìn)入個人信息頁面,單擊退出會退出當(dāng)前登錄賬號。左側(cè)導(dǎo)航欄有四個選項(xiàng),單擊首頁對應(yīng)右側(cè)顯示首先信息,單擊對話對應(yīng)右側(cè)顯示對話頁面,單擊創(chuàng)建智能體對應(yīng)右側(cè)顯示創(chuàng)建智能體頁面,單擊賬號管理對于右側(cè)顯示賬號管理頁面。右側(cè)活動欄上方提供了用戶根據(jù)智能體名稱搜索智能體的功能。15.3.3頁面設(shè)計(jì)個人信息頁面當(dāng)上方選擇框選擇不修改時,頁面顯示用戶名、用戶頭像,當(dāng)選擇修改時,可對用戶名和頭像進(jìn)行修改對話頁面三部分組成:上方的智能體信息顯示欄,下方的發(fā)送消息欄和中間的對話顯示欄。單擊上方更多中的刪除智能體時,該智能體將會被刪除,自動跳轉(zhuǎn)到首頁;單擊修改智能體時,將進(jìn)入修改智能體頁面;單擊新建會話,將清空聊天記錄,創(chuàng)建一個新的對話窗口。15.3.3頁面設(shè)計(jì)修改智能體頁面修改智能體頁面可以修改智能體類型、智能體名稱、智能體簡介和智能體頭像。創(chuàng)建智能體頁面用戶選擇智能體類型、輸入智能體名稱和智能體的簡介,智能體頭像生成是可選功能,不單擊系統(tǒng)默認(rèn)設(shè)計(jì)智能體頭像。知識庫文件是當(dāng)用戶創(chuàng)建長文檔解讀智能體時,上傳知識庫文件。15.3.3頁面設(shè)計(jì)賬號管理頁面管理員單擊新增賬號進(jìn)入新增賬號頁面,新增賬號頁面同注冊頁面。單擊編輯進(jìn)入編輯賬戶頁面,編輯賬戶頁面同修改個人信息頁面。單擊刪除對賬戶進(jìn)行刪除操作。單擊智能體管理進(jìn)入智能體管理頁面。智能體管理頁面智能體管理頁面是用于對用戶創(chuàng)建的智能體進(jìn)行管理操作,管理員在該頁面可以看到某個用戶創(chuàng)建的所有智能體。單擊編輯進(jìn)入編輯智能體頁面,編輯智能體頁面同修改智能體頁面。單擊刪除將對智能體進(jìn)行刪除操作第15章基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)需求分析一系統(tǒng)設(shè)計(jì)二系統(tǒng)實(shí)現(xiàn)三系統(tǒng)測試四系統(tǒng)和使用說明五案例系統(tǒng)部署六1615.4.1后端接口實(shí)現(xiàn)接口設(shè)計(jì)接口設(shè)計(jì)是基于需求分析,功能設(shè)計(jì)以及數(shù)據(jù)庫的概念和邏輯設(shè)計(jì)進(jìn)行的。為了前后端開發(fā)的便利,提高開發(fā)效率。本系統(tǒng)采用前后端分離的架構(gòu)來開發(fā),選擇使用FastAPI來實(shí)現(xiàn)后端接口的編碼,F(xiàn)astAPI是基于Python的高性能Web框架,以其出色的異步性能、自動生成的交互式API文檔、強(qiáng)大的類型注解支持、簡潔的語法和豐富的生態(tài)系統(tǒng)而受到開發(fā)者的青睞。它專為構(gòu)建快速、高效且易于維護(hù)的RESTfulAPI而設(shè)計(jì),支持異步編程,能夠顯著提高開發(fā)效率,減少人為錯誤,并提供良好的開發(fā)者體驗(yàn)。本系統(tǒng)將后端接口劃分為5個主要部分(智能體管理、用戶管理、頭像生成、對話和管理員),共包含18個接口。以下將定義和描述這些接口的具體功能、參數(shù)以及返回值。整的系統(tǒng)實(shí)現(xiàn)代碼見GitHub代碼倉庫“/Shuzhimin/CharacterAI”返回參數(shù)創(chuàng)建智能體接口創(chuàng)建智能體,其中可以選擇是否共享創(chuàng)建的智能體15.4.1后端接口設(shè)計(jì)NULL返回參數(shù)刪除智能體接口刪除智能體參數(shù)名參數(shù)簡介必選類型uid用戶id是intname智能體名稱是strdescription智能體描述是stravatar_description頭像文本描述否stravatar_url頭像url是strcategory類別是stris_shared是否共享是strfile知識庫文件否file參數(shù)名參數(shù)簡介必選類型cid智能體id是list[int]返回參數(shù)修改智能體接口15.4.1后端接口設(shè)計(jì)返回參數(shù)查詢智能體接口參數(shù)名參數(shù)簡介必選類型cid智能體id是intname智能體名稱是strdescription智能體描述是stravatar_description頭像文本描述否stravatar_url頭像url是strcategory類別是str參數(shù)名參數(shù)簡介必選類型cid智能體id否intcategory類別否strpage_num頁碼否intpage_size每頁數(shù)量否int對已創(chuàng)建的智能體進(jìn)行修改用戶可以分頁獲取智能體的信息返回參數(shù)15.4.1后端接口設(shè)計(jì)返回參數(shù)注冊接口參數(shù)名參數(shù)簡介必選類型username用戶名是strpassword密碼是str參數(shù)名參數(shù)簡介必選類型username用戶名是strpassword密碼是stravatar_description頭像文本描述否stravatar_url頭像url是str用于登陸系統(tǒng)。用于注冊系統(tǒng)賬號。登陸接口返回參數(shù)修改用戶信息接口15.4.1后端接口設(shè)計(jì)返回參數(shù)修改密碼接口用于修改用戶名和用戶頭像。參數(shù)名參數(shù)簡介必選類型username用戶名否stravatar_description頭像文本描述否stravatar_url頭像url否str參數(shù)名參數(shù)簡介必選類型old_password舊的密碼是strnew_password新的密碼是str用于修改用戶密碼。返回參數(shù)查詢自身信息接口15.4.1后端接口設(shè)計(jì)返回參數(shù)頭像生成參數(shù)名參數(shù)簡介必選類型NULLNULLNULLNULL參數(shù)名參數(shù)簡介必選類型avatar_description頭像文本描述否str用戶查詢用戶自身信息的接口。根據(jù)輸入的文本描述生成符合其內(nèi)容的頭像。返回參數(shù)修改用戶信息接口15.4.1對話接口設(shè)計(jì)與創(chuàng)建好的智能體進(jìn)行對話。參數(shù)名參數(shù)簡介必選類型cid智能體id是intchat_id會話id是inttoken用戶身份信息標(biāo)識是strsender消息發(fā)送者的id是intreceiver消息接收者的id是intis_end_of_stream是否用流式輸出否boolcontent發(fā)送內(nèi)容是str返回參數(shù)查詢會話接口15.4.1對話接口設(shè)計(jì)NULL返回參數(shù)刪除會話接口查詢已經(jīng)創(chuàng)建的會話,可以查看聊天的歷史記錄。參數(shù)名參數(shù)簡介必選類型cid智能體id否intchat_id會話id否int刪除已創(chuàng)建的會話參數(shù)名參數(shù)簡介必選類型chat_id會話id是list[int]NULL返回參數(shù)修改用戶角色接口15.4.1管理員接口設(shè)計(jì)NULL返回參數(shù)刪除用戶接口修改用戶角色,用戶角色有user和admin。參數(shù)名參數(shù)簡介必選類型uid用戶id是introle用戶角色是int用于管理員刪除用戶,刪除是邏輯刪除。參數(shù)名參數(shù)簡介必選類型uid用戶id是list[int]返回參數(shù)查詢用戶接口15.4.1管理員接口設(shè)計(jì)返回參數(shù)查詢智能體接口用戶管理員查詢用戶,支持模糊查詢。參數(shù)名參數(shù)簡介必選類型query查詢的用戶名否strpage_num頁碼否intpage_size每頁數(shù)量否int用戶管理員查詢智能體,支持模糊查詢。參數(shù)名參數(shù)簡介必選類型query查詢的智能體名否strpage_num頁碼否intpage_size每頁數(shù)量否int15.4.1后端接口實(shí)現(xiàn)后端開發(fā)的文件目錄結(jié)構(gòu)在工作路徑下創(chuàng)建項(xiàng)目文件夾(例如app文件夾)進(jìn)入app文件夾內(nèi)后,再分別創(chuàng)建__init__.py文件、main.py文件、dependencies.py文件、routers文件夾、common文件夾、database文件夾和llm文件夾。分別在routers、common、database和llm文件夾內(nèi)創(chuàng)建__init__.py文件。最終整個項(xiàng)目的文件目錄結(jié)構(gòu)圖所示。整的系統(tǒng)實(shí)現(xiàn)代碼見GitHub代碼倉庫“/Shuzhimin/CharacterAI”15.4.1角色扮演智能體實(shí)現(xiàn)每個文件和文件夾的作用1)app/是整個應(yīng)用程序的根目錄;2)common/是用來存放應(yīng)用程序中共享的通用函數(shù),如配置文件conf.py等;3)database/這個文件夾通常用于存放數(shù)據(jù)庫相關(guān)的代碼;4)llm/用來存放大模型相關(guān)代碼;5)routers/這個文件夾通常用于存放應(yīng)用程序的路由模塊;6)dependencies.py用于定義應(yīng)用程序的依賴項(xiàng),例如數(shù)據(jù)庫連接、身份驗(yàn)證等;7)__init__.py通常用于將目錄變?yōu)镻ython包,以便可以被其他文件導(dǎo)入;15.4.1角色扮演智能體實(shí)現(xiàn)每個文件和文件夾的作用8)main.py這是應(yīng)用程序的主文件,通常包含應(yīng)用程序的入口點(diǎn),用于初始化FastAPI應(yīng)用程序,并定義路由、中間件等。其中aibot文件夾內(nèi)存放的是如何實(shí)現(xiàn)角色扮演智能體(character.py)、報表智能體(reporter.py)和長文檔解讀智能體(retriever)的核心代碼。llm文件夾存放了實(shí)現(xiàn)智能體功能的部件。15.4.1角色扮演智能體實(shí)現(xiàn)角色扮演智能體的核心使用角色數(shù)據(jù)集微調(diào)過的chatglm2-6b模型(詳細(xì)見第14章ChatGLM微調(diào))由于經(jīng)過角色數(shù)據(jù)的微調(diào),使得chatglm2-6b能夠根據(jù)用戶設(shè)定的角色名字和角色描述進(jìn)行符合角色人設(shè)的對話。將微調(diào)好的chatglm2-6b封裝成了一個接口,character_llm()就是用于調(diào)用接口的函數(shù),也就是角色扮演智能體。用戶發(fā)送的消息傳入ainvoke()中,然后在內(nèi)部調(diào)用角色扮演智能體,最后將智能體的回復(fù)再傳回給用戶。15.4.1報表智能體實(shí)現(xiàn)角色扮演智能體的核心報表智能體的實(shí)現(xiàn)要借助于langchain。在第13章ChatGLM部署中介紹到,langchain是一個用于開發(fā)由語言模型驅(qū)動的應(yīng)用程序的框架,能夠很方便地幫人們開發(fā)大模型的應(yīng)用程序。報表智能體的實(shí)現(xiàn)分為四個階段。檢驗(yàn)輸入是否符合功能設(shè)定獲取相應(yīng)的數(shù)據(jù)獲取數(shù)據(jù)的文本描述根據(jù)獲取到的數(shù)據(jù)編寫繪圖代碼并執(zhí)行15.4.1報表智能體實(shí)現(xiàn)檢驗(yàn)輸入是否符合功能設(shè)定首先設(shè)定用于檢驗(yàn)輸入的提示(check_template),然后通過langchain提供的語言鏈交換層(LanguageChainExchangeLayer,LCEL)將提示與chatglm3-6b模型組成一個鏈(下方代碼中的chain),最后用invoke()來接收用戶的內(nèi)容并激活chain的到chatglm3-6b的響應(yīng)。根據(jù)提示的設(shè)計(jì),模型只會回復(fù)“yes”與“no”。如果是“yes”則輸入與報表功能相符,繼續(xù)進(jìn)行后續(xù)階段。否則,給用戶返回“非常抱歉,我只能回答編寫代碼繪制圖表的相關(guān)問題”。通過這樣,就能限定模型僅回復(fù)與報表相符的話題,使其符合報表智能體的特性。15.4.1報表智能體實(shí)現(xiàn)獲取相應(yīng)的數(shù)據(jù)&文本描述首先,設(shè)定好用于從數(shù)據(jù)庫中獲取數(shù)據(jù)的提示(get_data_prompt)。然后,用到了langchain提供的利用大模型接入數(shù)據(jù)庫的庫函數(shù)QuerySQLDataBaseTool和SQLDatabase,并且根據(jù)langchain的語法將提示、數(shù)據(jù)庫和大模型鏈起來得到chain,最后通過invoke()接收輸入來得到模型的回復(fù)。這里總共問了兩次模型,第一次問模型該用戶有沒有數(shù)據(jù),如果沒有則回復(fù)“no”,如果有則進(jìn)行第二次問答,讓模型根據(jù)用戶輸入從數(shù)據(jù)庫中獲取繪制相應(yīng)報表會用到的數(shù)據(jù),并自動整理成一段話返回給用戶。15.4.1報表智能體實(shí)現(xiàn)根據(jù)獲取到的數(shù)據(jù)編寫繪圖代碼并執(zhí)行第四階段接收第二階段獲得的數(shù)據(jù),并結(jié)合用戶的問題,利用模型生成代碼,最后利用langchain提供的PythonREPL庫函數(shù)來執(zhí)行模型生成的代碼,得到相應(yīng)的報表。報表智能體的實(shí)現(xiàn)采用了分階段式引導(dǎo)chatglm3-6b給出我們想要得到的回答,賦予報表智能體決策能力。在代碼實(shí)現(xiàn)中,本書在reporter_llm()函數(shù)中將四個階段連接在一起,使其成為一個報表智能體,并將用戶消息傳遞給ainvoke()函數(shù),然后再調(diào)用報表智能體返回消息給用戶。15.4.1長文檔解讀智能體實(shí)現(xiàn)長文檔解讀智能體根據(jù)langchain實(shí)現(xiàn),主要分為兩部分。第一部分為“將問題置于上下文中”由下方代碼中的create_retriever()實(shí)現(xiàn),利用了langchain提供的create_history_aware_retriever()庫函數(shù)結(jié)合提示“history_aware_prompt”從知識庫“KnowledgeBase.as_retriever(knowledge_id=self.knowledge_id)”中提取符合用戶問題的上下文并返回該上下文和用戶問題給第二部分。15.4.1長文檔解讀智能體實(shí)現(xiàn)長文檔解讀智能體第二部分為“問答”由create_qabot()實(shí)現(xiàn),接收來自第一部分的上下文和用戶問題,將上下文與用戶問題結(jié)合起來輸入給模型,然后得到模型的回復(fù)。create_rag()通過RunnableWithMessageHistory()將第一部分和第二部分鏈接起來得到一個完整的長文檔解讀智能體。用戶的消息通過傳入ainvoke(),然后再里面調(diào)用長文檔解讀智能體根據(jù)用戶上傳的知識庫文檔回答用戶問題。進(jìn)入Vue的UI頁面15.4.2前端頁面實(shí)現(xiàn)Vue項(xiàng)目工程創(chuàng)建一個Vue項(xiàng)目工程(配置Vue的環(huán)境見第二章)完整的實(shí)現(xiàn)過程可以參考GitHub倉庫上的項(xiàng)目工程,本項(xiàng)目的GitHub:/Shuzhimin/CharacterAI。首先,打開命令行窗口,輸入vueui,如錯誤!未找到引用源。所示。然后將自動打開瀏覽器進(jìn)入vue的可視化配置項(xiàng)目工程的界面,然后單擊左下角的Vue項(xiàng)目管理器創(chuàng)建新的工程,如圖所示。進(jìn)入Vue的UI頁面Vue的UI頁面15.4.2前端頁面實(shí)現(xiàn)Vue項(xiàng)目管理器選擇項(xiàng)目工程路徑,此處本教材選擇在路徑D:\vue\下創(chuàng)建項(xiàng)目工程,然后單擊下一步。創(chuàng)建新項(xiàng)目輸入項(xiàng)目文件夾的名字,此處我們的項(xiàng)目文件夾名字為front,然后單擊下一步。15.4.2前端頁面實(shí)現(xiàn)Vue項(xiàng)目管理器選擇手動配置項(xiàng)目,然后單擊下一步。創(chuàng)建新項(xiàng)目輸入項(xiàng)目文件夾的名字,此處我們的項(xiàng)目文件夾名字為front,然后單擊下一步。15.4.2前端頁面實(shí)現(xiàn)Vue版本選擇Vue的版本為3.x,然后單擊創(chuàng)建項(xiàng)目。最后這里選擇了不保存預(yù)設(shè),讀者可以根據(jù)情況自行選擇。安裝插件&依賴創(chuàng)建好項(xiàng)目工程后讀者需要在UI界面中的插件和依賴部分安裝@vue/cli-plugin-vuex和vue-cli-plugin-element插件(按需導(dǎo)入),axios、less和less-loader依賴。最終,在D:\vue\front中就得到了項(xiàng)目工程文件目錄。第15章基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)需求分析一系統(tǒng)設(shè)計(jì)二系統(tǒng)實(shí)現(xiàn)三系統(tǒng)測試四系統(tǒng)和使用說明五案例系統(tǒng)部署六4115.5系統(tǒng)測試測試流程從GASv1.0需求分析階段開始啟動,整個功能性測試流程覆蓋全部過程,確保系統(tǒng)的功能性、穩(wěn)定性和性能都能滿足預(yù)定的質(zhì)量標(biāo)準(zhǔn)。GASv1.0的測試流程可以分為以下幾個階段。需求分析階段系統(tǒng)設(shè)計(jì)階段產(chǎn)品開發(fā)階段綜合測試階段15.5系統(tǒng)測試需求分析階段測試人員與開發(fā)人員共同進(jìn)行需求研討,明確智能體系統(tǒng)在賬號管理、角色扮演、智能報表等功能上的功能性需求、非功能性需求以及界面風(fēng)格。測試人員需將產(chǎn)品需求統(tǒng)一化并明確為產(chǎn)品需求分析文檔,作為測試階段的指導(dǎo)性參考文檔。15.5系統(tǒng)測試系統(tǒng)設(shè)計(jì)階段測試人員參與系統(tǒng)各個模塊的設(shè)計(jì)工作,明確用戶操作流程、業(yè)務(wù)流程以及現(xiàn)行標(biāo)準(zhǔn)對各模塊功能的約束條件,并將約束條件結(jié)合設(shè)計(jì)功能形成數(shù)據(jù)參數(shù)約束文檔供開發(fā)人員參考。在此基礎(chǔ)上,測試人員開始編寫部分測試用例,以便開發(fā)工作進(jìn)行中進(jìn)行功能性測試工作。15.5系統(tǒng)測試產(chǎn)品開發(fā)階段測試人員參與產(chǎn)品開發(fā)的全過程,針對不同功能模塊提供測試用例。在開發(fā)人員完成測試平臺上的功能測試后,測試人員需收集測試結(jié)果進(jìn)行分析和總結(jié),并對其中與預(yù)定結(jié)果存在出入的部分進(jìn)行及時反饋。15.5系統(tǒng)測試綜合測試階段測試人員對集成后的產(chǎn)品進(jìn)行測試平臺上的模塊功能性測試,除此之外對界面展示、操作流暢度進(jìn)行全面的測試,總結(jié)測試結(jié)果形成測試文檔供開發(fā)人員改進(jìn)功能以及應(yīng)用程序性能。15.5.2測試用例測試用例本次產(chǎn)品的測試用例將覆蓋GASv1.0的智能體管理模塊、角色扮演模塊、智能報表模塊、頭像生成模塊、長文檔解讀模塊以及賬號管理模塊的全部業(yè)務(wù),測試用例的編寫將兼顧數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)中的數(shù)據(jù)約束條件,確保系統(tǒng)的功能性和數(shù)據(jù)處理的準(zhǔn)確性。15.5.2智能體管理模塊用例編號項(xiàng)目標(biāo)題級別預(yù)置條件測試輸入操作步驟預(yù)期輸出UT-智能體管理-創(chuàng)建-001創(chuàng)建智能體是否創(chuàng)建成功高1.運(yùn)行系統(tǒng)2.已經(jīng)成功登錄1.選擇智能體的角色2.輸入智能體的名稱、身份背景3.輸入頭像描述(可選)1.選擇智能體的角色2.輸入智能體的名稱、身份背景3.輸入頭像描述進(jìn)行頭像生成(可選)4.單擊立即創(chuàng)建1.界面顯示創(chuàng)建成功2.界面彈出窗口可以選擇回到首頁查看智能體或者與智能體進(jìn)行對話3.數(shù)據(jù)庫中的Agent表新增一條記錄UT-智能體管理-查找-002查找智能體的查找高1.運(yùn)行系統(tǒng)2.已經(jīng)成功登錄3.有成功創(chuàng)建過的智能體智能體1.輸入智能體2.單擊搜索按鈕界面顯示查找的智能體UT-智能體管理-修改-003修改智能體信息的修改高1.運(yùn)行系統(tǒng)2.已經(jīng)成功登錄3.有成功創(chuàng)建過的智能體智能體類型(可選)、智能體名稱(可選)、智能體身份背景(可選)和智能體頭像(可選)1.輸入想要修改的內(nèi)容2.單擊確認(rèn)1.界面提示修改成功2.修改的相應(yīng)內(nèi)容會在數(shù)據(jù)庫Agent表中進(jìn)行相應(yīng)的更新UT-智能體管理-刪除-004刪除刪除智能體中1.運(yùn)行系統(tǒng)2.已經(jīng)成功登錄3.有成功創(chuàng)建過的智能體無單擊刪除按鈕1.界面顯示刪除成功2.數(shù)據(jù)庫Agent中相應(yīng)的記錄被刪除15.5.2角色扮演模塊角色扮演模塊本次測試用例以需求分析以及數(shù)據(jù)庫表結(jié)構(gòu)為依據(jù),對角色扮演模塊的對話流暢性、準(zhǔn)確性等進(jìn)行測試。以下數(shù)據(jù)測試功能點(diǎn)包括:驗(yàn)證對話流暢性功能、測試對話準(zhǔn)確性。用例編號項(xiàng)目標(biāo)題級別預(yù)置條件測試輸入操作步驟預(yù)期輸出UT-角色扮演-對話-001對話對話流暢性高1.運(yùn)行系統(tǒng)2.選擇角色請問你叫什么名字1.輸入內(nèi)容2.單擊發(fā)送進(jìn)行驗(yàn)證回復(fù)角色的姓名UT-角色扮演-對話-002對話對話準(zhǔn)確性高1.運(yùn)行系統(tǒng)2.選擇角色蛋炒飯?jiān)趺醋?.輸入內(nèi)容2.單擊發(fā)送進(jìn)行驗(yàn)證給出制作蛋炒飯的步驟15.5.2角色扮演模塊角色扮演模塊本次測試用例以需求分析以及數(shù)據(jù)庫表結(jié)構(gòu)為依據(jù),對頭像生成模塊的是否成功生成頭像功能進(jìn)行測試。用例編號項(xiàng)目標(biāo)題級別預(yù)置條件測試輸入操作步驟預(yù)期輸出UT-頭像生成-001頭像生成單擊生成頭像是否實(shí)現(xiàn)高1.運(yùn)行系統(tǒng)2.進(jìn)行注冊或修改個人信息或創(chuàng)建智能體對生成頭像的描述1.輸入對生成頭像的描述2.單擊生成頭像進(jìn)行驗(yàn)證界面顯示成功生成的頭像15.5.2長文檔解讀模塊角色扮演模塊本次測試用例以需求分析以及數(shù)據(jù)庫表結(jié)構(gòu)為依據(jù),對文檔上傳和解析功能,包括不同格式的文檔支持和解析結(jié)果的準(zhǔn)確性進(jìn)行測試。用例編號項(xiàng)目標(biāo)題級別預(yù)置條件測試輸入操作步驟預(yù)期輸出UT-長文檔解讀-001知識庫上傳是否成功上傳文檔高1.運(yùn)行系統(tǒng)2.已經(jīng)成功登錄上傳需要解讀的文件1.上傳文件2.單擊進(jìn)行驗(yàn)證

界面顯示文檔上傳成功UT-長文檔解讀-002知識庫上傳是否成功解讀文檔高1.運(yùn)行系統(tǒng)2.已經(jīng)成功創(chuàng)建長文檔分析智能體輸入與文檔內(nèi)容相關(guān)的問題1.選中長文檔分析智能體進(jìn)行對話2.輸入與文檔內(nèi)容相關(guān)的問題3.單擊發(fā)送界面顯示文檔解讀內(nèi)容15.5.2智能體管理模塊用例編號項(xiàng)目標(biāo)題級別預(yù)置條件測試輸入操作步驟預(yù)期輸出UT-賬號管理-注冊-001注冊用戶唯一性檢查高運(yùn)行系統(tǒng)已存在的用戶名、密碼1.輸入用戶名2.設(shè)置密碼3.單擊注冊進(jìn)行驗(yàn)證界面顯示已存在該用戶UT-賬號管理-注冊-002注冊密碼格式檢查高運(yùn)行系統(tǒng)輸入密碼:qwertyuiopasdfgh1.輸入用戶名2.設(shè)置密碼界面提示密碼格式有誤,長度須在1-15個字符UT-賬號管理-注冊-003注冊密碼一致性檢查高運(yùn)行系統(tǒng)輸入密碼:123456再次確認(rèn)密碼:123456781.輸入用戶名2.設(shè)置密碼(1)輸入密碼(2)再次確認(rèn)密碼界面提示兩次輸入的密碼不一致UT-賬號管理-刪除賬號-007刪除賬號刪除賬號檢查中1.運(yùn)行系統(tǒng)2.登錄管理員賬號無選擇相應(yīng)的賬號單擊刪除進(jìn)行驗(yàn)證界面顯示刪除成功15.5.2智能體管理模塊用例編號項(xiàng)目標(biāo)題級別預(yù)置條件測試輸入操作步驟預(yù)期輸出UT-賬號管理-注冊-001注冊用戶唯一性檢查高運(yùn)行系統(tǒng)已存在的用戶名、密碼1.輸入用戶名2.設(shè)置密碼3.單擊注冊進(jìn)行驗(yàn)證界面顯示已存在該用戶UT-賬號管理-修改賬號信息-006修改賬號信息修改賬號信息檢查高1.運(yùn)行系統(tǒng)2.登錄用戶賬號用戶名(可選)、頭像(可選)、密碼(可選)1.輸入想要修改的內(nèi)容2.單擊確認(rèn)界面顯示修改成功UT-賬號管理-刪除賬號-007刪除賬號刪除賬號檢查中1.運(yùn)行系統(tǒng)2.登錄管理員賬號無選擇相應(yīng)的賬號單擊刪除進(jìn)行驗(yàn)證界面顯示刪除成功15.5.3健壯性測試系統(tǒng)健壯性系統(tǒng)在面對錯誤、異?;蚋哓?fù)載情況時,能夠維持正常運(yùn)行的能力,包括系統(tǒng)容錯性和在高訪問量時的穩(wěn)定性,穩(wěn)定性測試是評估系統(tǒng)在持續(xù)運(yùn)行或在高負(fù)載條件下保持性能和功能不受影響的能力的一種測試。表15-27描述了本次對系統(tǒng)健壯性進(jìn)行測試的測試類型以及對應(yīng)的測試結(jié)果。測試類型測試結(jié)果錯誤的數(shù)據(jù)類型系統(tǒng)會提示異常信息并反饋異常的輸入系統(tǒng)會提示異常信息并反饋錯誤的操作順序系統(tǒng)會提示異常信息并反饋并發(fā)性高并發(fā)情況下系統(tǒng)的響應(yīng)時間達(dá)到系統(tǒng)性能要求第15章基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)需求分析一系統(tǒng)設(shè)計(jì)二系統(tǒng)實(shí)現(xiàn)三系統(tǒng)測試四系統(tǒng)和使用說明五案例系統(tǒng)部署六5515.6系統(tǒng)使用說明登陸在瀏覽器地址欄輸入案例系統(tǒng)部署的套接字(ip地址+端口號)后即可跳轉(zhuǎn)至登錄界面。注冊進(jìn)入登錄頁面后單擊登錄窗格下方的“注冊”按鈕,打開注冊窗口15.6系統(tǒng)使用說明注冊成功填寫完必需信息后,單擊右下角“注冊”按鈕即可完成賬號注冊,注冊成功提示,見右圖。注冊在注冊完成后,即可通過賬號、密碼登錄系統(tǒng)。在“賬號”和“密碼”字段輸入剛剛注冊時填寫的賬號密碼,單擊下方“登錄”按鈕即可登錄系統(tǒng)。其中頁面右上角為用戶賬號管理區(qū)域,左側(cè)為功能菜單欄,右下角大部分區(qū)域?yàn)橹饕@示頁面。15.6系統(tǒng)使用說明用戶賬號管理系統(tǒng)右上角的用戶賬號管理區(qū)域中有三個元素:頭像、“修改密碼”按鈕、“退出”按鈕。單擊“退出”按鈕即可退出登錄,并回到登錄頁面;單擊頭像即可打開用戶信息修改頁面;單擊“修改密碼”按鈕即可打開修改密碼頁面。在用戶信息修改頁面中,將開關(guān)調(diào)整到“修改”,即可切換到修改信息的展示頁面,在這里面可以修改頭像描述和頭像圖片。單擊“確定”按鈕即為確認(rèn)修改信息。15.6系統(tǒng)使用說明創(chuàng)建智能體首先要創(chuàng)建一個智能體。在左側(cè)功能菜單欄中選擇“功能”子菜單,再選擇“創(chuàng)建智能體”功能,即可打開創(chuàng)建智能體的頁面,如圖所示。其中包含若干字段:“智能體分類”可以為即將創(chuàng)建的智能體設(shè)置一個定位?!皠?chuàng)建智能體名稱”字段用于輸入智能體的名稱;“創(chuàng)建智能體的身份背景”用于對智能體進(jìn)行詳細(xì)描述;“是否共享”字段用于決定即將創(chuàng)建的智能體是否允許其他人能夠使用;頭像相關(guān)字段與注冊、修改信息處的相同;“資料文檔”字段允許用戶提交知識庫,協(xié)助智能體回答問題。最后單擊“立即創(chuàng)建”按鈕即可完成創(chuàng)建。15.6系統(tǒng)使用說明智能體對話創(chuàng)建智能體后,單擊左側(cè)功能菜單欄中的“首頁”,即可來到智能體查詢頁面,如圖15-34所示。這里將顯示可以進(jìn)行對話的智能體。可以通過上方查詢框輸入智能體名進(jìn)行模糊查詢。單擊智能體即可跳轉(zhuǎn)至“對話”頁面。智能體對話進(jìn)入對話界面,在下方輸入框中輸入信息后,單擊“回車”或右邊發(fā)送按鈕即可發(fā)送消息進(jìn)行對話15.6系統(tǒng)使用說明修改、刪除智能體信息和新建對話右上方的“更多”菜單中包含“刪除智能體”“修改智能體”和“新建對話”三個功能,如圖所示。刪除智能體將把當(dāng)前對話的智能體刪除,用戶需謹(jǐn)慎操作;“修改智能體”可打開智能體信息頁面,可以對其中的智能體描述和頭像等內(nèi)容進(jìn)行修改,如圖所示;“新建對話”可重新創(chuàng)建與該智能體的對話,將清空原來的對話記錄,需謹(jǐn)慎操作。15.6系統(tǒng)使用說明管理功能管理功能為管理員賬號才能使用的功能。在登錄時使用管理員權(quán)限的賬號密碼進(jìn)行系統(tǒng)登錄,即可在左側(cè)功能菜單欄中看到“管理”功能管理功能單擊“管理”子菜單下的“賬號管理”即可進(jìn)入賬號管理頁面。在這個頁面中將看到系統(tǒng)中所有已創(chuàng)建的且為被刪除的賬號信息??梢酝ㄟ^在上方搜索欄輸入用戶名的方式進(jìn)行模糊搜索第15章基于GLM智能體虛擬角色養(yǎng)成系統(tǒng)需求分析一系統(tǒng)設(shè)計(jì)二系統(tǒng)實(shí)現(xiàn)三系統(tǒng)測試四系統(tǒng)和使用說明五案例系統(tǒng)部署六6315.7案例系統(tǒng)部署源碼下載在瀏覽器中輸入/Shuzhimin/CharacterAI,進(jìn)入案例系統(tǒng)的GitHub倉庫中,將能夠看到完整的案例系統(tǒng)源碼。如果要下載該源碼,可以在服務(wù)器中使用git命令把源碼拉至本地,只需要在命令行窗口中執(zhí)行“gitclone/Shuzhimin/CharacterAI.git”,拉取倉庫成功后,在當(dāng)前目錄下將多出個CharacterAI文件夾,該文件夾內(nèi)存放的就是本案例系統(tǒng)的源碼。部署1)在服務(wù)器上用docker安裝Qdrant、PostgreSQL和Minio。Qdrant是一個向量數(shù)據(jù)庫,PostgreSQL是一個關(guān)系型數(shù)據(jù)庫,Minio是一個開源的對象存儲服務(wù)器。2)進(jìn)入下載好的CharacterAI文件夾內(nèi)的docker-compose.yaml文件,指定qdrant、dpostgresql和minio的端口號、用戶名和密碼。當(dāng)前文件中的postgres數(shù)據(jù)庫的用戶名為ysukeg,密碼為123456,數(shù)據(jù)庫名稱為characterai,端口為5432;minio的用戶名為root,密碼為12345678,端口為9000。15.7案例系統(tǒng)部署啟動在服務(wù)器的命令窗口中輸入“dockercompose-fdocker-compose.yamlup-d”就能夠自動安裝并啟動qdrant、dpostgresql和minio。其中-fdocker-compose.yaml表示dockercompose配置文件的路徑為docker-compose.yaml,up表示啟動docker應(yīng)用程序的服務(wù),-d表示在后臺運(yùn)行服務(wù)??梢詧?zhí)行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論