版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
AI智慧課堂content目錄01功能與設(shè)計分析02主體功能開發(fā)03出題和考試功能04登錄與Token鑒權(quán)05定時任務(wù)處理功能與設(shè)計分析01核心功能列表(1)老師授課時進(jìn)行錄屏或者錄音,建議進(jìn)行錄屏,這樣不僅可以快速獲取當(dāng)次課堂的主要內(nèi)容,也可以讓學(xué)生在需要的時候回看視頻,以加深對課堂內(nèi)容的理解。(2)提取出視頻的關(guān)鍵幀,用于快速預(yù)覽當(dāng)次視頻的主要內(nèi)容。(3)抽取視頻中的音頻,進(jìn)行語音識別,這部分內(nèi)容在第5章中已經(jīng)做了介紹。本章直接使用語音識別技術(shù)即可。(4)將識別到的視頻或音頻中的文字交由大模型進(jìn)行總結(jié),形成課堂筆記,并以HTML或Markdown格式輸出,在前端對HTML或Markdown格式的文檔進(jìn)行渲染,讓內(nèi)容的可讀性更強(qiáng)。(5)為課堂內(nèi)容總結(jié)出一個核心關(guān)鍵字,并利用在線搜索拓展課堂內(nèi)容,用于出題或進(jìn)行話題拓展,并將搜索出來的結(jié)果作為擴(kuò)展閱讀在前端界面中顯示出來,供學(xué)生訪問。(6)利用總結(jié)的內(nèi)容通過大模型生成思維導(dǎo)圖,學(xué)生不僅可以下載思維導(dǎo)圖文件,還可以在線預(yù)覽思維導(dǎo)圖的內(nèi)容。(7)利用大模型基于當(dāng)次課堂的內(nèi)容生成考題,包括單選題和簡答題等題型。學(xué)生可以在線答題,并交由AI進(jìn)行自動閱卷和評分。核心功能列表AI智慧課堂的界面如圖7-1所示。整體實(shí)現(xiàn)思路(1)抽取視頻中的音頻。該部分功能不需要AI的介入,只需要使用Python的moviepy庫就可以非常方便地將視頻中的語音提取出來,并保存為MP3文件。提取完成后,可以利用Whisper進(jìn)行本地語音識別,或利用Paraformer進(jìn)行準(zhǔn)確率更高的語音識別,將其轉(zhuǎn)換為文本,后續(xù)的所有操作均基于該文本內(nèi)容。(2)提取視頻的關(guān)鍵幀用于快速預(yù)覽視頻的大致內(nèi)容。這一功能并沒有那么重要,因此本章主要演示一下其用法。目前比較常用的方案是使用OpenCV讀取視頻幀,如每隔10秒讀取一幀,并計算相鄰幀之間的顏色直方圖差異,如果差異較大,說明是不同的畫面,則截取該幀并保存為圖像。OpenCV中有封裝好的函數(shù)可以直接用于計算直方圖和兩張圖之間的差異。(3)對識別到的文字進(jìn)行整理總結(jié)并生成課堂筆記,這是大模型所擅長的,將原文內(nèi)容結(jié)合提示詞交給大模型處理即可,沒有額外的操作。此處有一點(diǎn)需要注意,為了讓前端的筆記內(nèi)容可讀性更強(qiáng),通常建議讓大模型將其生成為HTML格式,并在前端渲染出來。整體實(shí)現(xiàn)思路(4)大模型生成思維導(dǎo)圖。其實(shí)大模型本身的輸入只能是提示詞,輸出只能是文本或JSON數(shù)據(jù),無法直接生成思維導(dǎo)圖。獲取到JSON數(shù)據(jù)后,可利用Python的xmind庫將其轉(zhuǎn)換為思維導(dǎo)圖文件(XMIND文件)。生成XMIND文件后,學(xué)生即可在前端下載及使用該文件。(5)搜索出來的結(jié)果既可以用于完善出題的內(nèi)容和范圍,又可以將搜索結(jié)果列表呈現(xiàn)到前端作為學(xué)生的拓展學(xué)習(xí)內(nèi)容。(6)關(guān)于AI出題和評分,首先,需要給定JSON格式的提示詞模板讓大模型返回。其次,針對AI評分功能,單選題本質(zhì)上不需要AI進(jìn)行評分,系統(tǒng)通過對比答案即可完成,所以AI評分的核心是對簡答題進(jìn)行評分。只需要通過提示詞將學(xué)生答案和標(biāo)準(zhǔn)答案進(jìn)行對比,就可以得到一個相對準(zhǔn)確的分值。最后,需要通過Web系統(tǒng)和對數(shù)據(jù)庫的操作,將這些功能整合起來,使AI智慧課堂的完成度更高。數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計完成數(shù)據(jù)表的定義和創(chuàng)建后,即可在model.py文件中定義數(shù)據(jù)映射關(guān)系,代碼如下。主體功能開發(fā)02視頻文件預(yù)處理首先,創(chuàng)建一個公共模塊文件module.py,用于進(jìn)行各種處理,以便在main.py中進(jìn)行調(diào)用。在module.py模板文件中實(shí)現(xiàn)提取音頻和音頻轉(zhuǎn)文字的功能。視頻文件預(yù)處理其次,新建一個FastAPI項(xiàng)目并開發(fā)后端接口與前端進(jìn)行交互。實(shí)現(xiàn)首頁的渲染、視頻上傳和預(yù)處理等功能的后端接口代碼。視頻文件預(yù)處理再次,創(chuàng)建首頁的模板界面,該界面用于視頻文件上傳及顯示視頻信息。由于后續(xù)功能較多,因此這里將HTML、CSS和JavaScript分為3個文件分別進(jìn)行保存。將首頁命名為index.html,代碼如下。視頻文件預(yù)處理該界面引入的JavaScript源文件script.js中的代碼如下。視頻文件預(yù)處理此時,用戶登錄功能暫時還不需要,可以先不實(shí)現(xiàn)。接下來實(shí)現(xiàn)整個界面的CSS,文件名為style.css,內(nèi)容如下。視頻文件預(yù)處理最后,測試首頁、后端視頻轉(zhuǎn)語音以及語音識別成文字的功能是否正常。如果代碼運(yùn)行正常,則運(yùn)行結(jié)果如圖7-2所示。生成課堂筆記以下代碼在module.py中添加了一個函數(shù)summarize(),用于對當(dāng)次課堂的內(nèi)容進(jìn)行摘要。該代碼的功能就是讓大模型對文本內(nèi)容進(jìn)行總結(jié),其重點(diǎn)在于編寫一段清晰明了的提示詞指令,讓大模型清楚自己的任務(wù)。示例代碼如下。生成課堂筆記課堂筆記生成成功后,需要將其在數(shù)據(jù)庫中保存起來。因?yàn)樯鲜龃a最好在上傳視頻成功后就進(jìn)行調(diào)用,所以需要對后端接口/upload進(jìn)行修改,代碼如下。生成課堂筆記為了將課堂筆記在前端界面中正常顯示出來,還需要開發(fā)一個后端接口和一個前端模板界面。后端接口從前端獲取參數(shù)videoid,并查詢該視頻的信息,并將其填充到模板界面中,代碼如下。生成課堂筆記模板界面文件detail.html的源代碼如下。生成思維導(dǎo)圖利用大模型生成思維導(dǎo)圖數(shù)據(jù)生成思維導(dǎo)圖利用大模型生成思維導(dǎo)圖數(shù)據(jù)生成JSON數(shù)據(jù)后,同樣需要將其保存到數(shù)據(jù)庫中。在main.py的/upload接口中保存該JSON字符串,相關(guān)代碼如下。生成思維導(dǎo)圖生成思維導(dǎo)圖文件有了正確的JSON數(shù)據(jù)后,即可利用Python中的xmind庫生成思維導(dǎo)圖文件。這一過程的關(guān)鍵操作就是利用遞歸來讀取JSON數(shù)據(jù)中的層級,并通過xmind庫的各類接口寫入對應(yīng)的內(nèi)容,代碼如下。生成思維導(dǎo)圖前端渲染與下載前端要渲染思維導(dǎo)圖,需要將數(shù)據(jù)庫中的JSON數(shù)據(jù)讀取到前端,并利用jsmind庫進(jìn)行渲染。此處需要在detail.html模板界面中先引入jsmind庫的CSS樣式和JavaScript庫文件,實(shí)現(xiàn)代碼如下。生成思維導(dǎo)圖前端渲染與下載在前端渲染的思維導(dǎo)圖效果如圖7-4所示。生成視頻關(guān)鍵幀視頻關(guān)鍵幀的提取主要依賴OpenCV庫。OpenCV庫的VideoCapture()函數(shù)不僅可以獲取攝像頭數(shù)據(jù),還可以獲取視頻數(shù)據(jù)。以下代碼展示了如何提取關(guān)鍵幀,并將其保存到對應(yīng)的以視頻文件名命名的文件夾中。生成視頻關(guān)鍵幀視頻幀率的截取代碼可以放到視頻上傳之后。在前端界面中遍歷并顯示圖像時,只需要前端添加模板渲染部分的代碼,并以視頻的文件名進(jìn)行關(guān)聯(lián)。生成視頻關(guān)鍵幀同時,需要在后端接口/detail中添加一段代碼,用以讀取和生成模板界面可用的keyframes。修改后的完整代碼如下。生成視頻關(guān)鍵幀視頻關(guān)鍵幀展示的運(yùn)行結(jié)果如圖7-5所示。拓展知識引用首先,利用關(guān)鍵字在線搜索并獲取搜索結(jié)果,將其保存到視頻信息表的reference列中。其次,更新/upload接口,保存生成的搜索結(jié)果,與前面生成的課堂筆記和思維導(dǎo)圖的保存方式完全一致。拓展知識引用最后,實(shí)現(xiàn)/detail接口更新和前端界面顯示功能。/detail接口代碼如下。建議將detail.html前端界面顯示代碼添加到界面末尾。出題和考試功能03生成考題以下代碼(位于module.py文件中)演示了如何讓大模型生成考題并按照指定格式輸出。生成考題考題生成后需要保存到數(shù)據(jù)庫中,此處將考題的JSON數(shù)據(jù)保存到視頻信息表的examjson列中。修改/upload接口代碼,保存考題并調(diào)用insert_exam()函數(shù)對考題進(jìn)行解析,保存每一道考題信息到考題信息表中。生成考題接下來在module.py中新增函數(shù)insert_exam(),通過解析考題的JSON字符串內(nèi)容,提取每一道考題并將其作為一行數(shù)據(jù)保存到考題信息表中。前端渲染考題以下代碼實(shí)現(xiàn)了/exam后端接口。前端渲染考題后端接口完成后,繼續(xù)開發(fā)前端模板界面exam.html,代碼及注釋如下。前端渲染考題上述HTML界面對應(yīng)的CSS如下。提交試卷并評分一般可以通過遍歷界面中的單選框的值和文本域的內(nèi)容,對采集到的答案進(jìn)行提交。以下代碼為doExam()函數(shù)的JavaScript代碼。提交試卷并評分提交答案時,上述代碼構(gòu)建的JSON數(shù)據(jù)格式如下。登錄與Token鑒權(quán)04Token處理機(jī)制1.存儲型Token存儲型Token極為簡單的方案就是生成一串隨機(jī)字符,或者利用用戶名、時間戳等元素來生成一串散列字符串,以確保唯一性。這樣下次進(jìn)行權(quán)限驗(yàn)證時,只需將前端傳遞過來的Token與數(shù)據(jù)庫中保存的Token進(jìn)行比較,找到對應(yīng)的用戶信息,就可以獲取當(dāng)前登錄的用戶是哪一位,其角色權(quán)限有哪些,并進(jìn)行各種接口的判斷。存儲型Token與Session校驗(yàn)在機(jī)制上非常類似,主要區(qū)別在于Session是由Web服務(wù)器維護(hù)的,可定制性較弱,而Token是由系統(tǒng)程序維護(hù)的,可以操作的空間更大。例如,存儲型Token可以將隨機(jī)字符保存到Redis服務(wù)器中供各類應(yīng)用程序調(diào)用,這一操作是普通的Session無法做到的。Token處理機(jī)制2.解密型Token解密型Token是指用戶首次完成登錄驗(yàn)證后,對Token進(jìn)行可逆運(yùn)算的加密處理,生成一個密文,該密文可以由用戶名、ID、角色、時間戳等各種信息匯集后生成。這樣在進(jìn)行解密時,就可以解密出原始的用戶名、ID、角色、時間戳等信息,并用于系統(tǒng)。解密型Token不需要存儲,只需要生成一次后響應(yīng)給前端,后續(xù)前端每次都會攜帶該Token用于認(rèn)證。服務(wù)器解密后就可以了解是哪一位用戶,以進(jìn)行后續(xù)處理。通常解密型Token最好帶有一個有效期信息,以便讓登錄信息定期失效,防止出現(xiàn)Token泄露后永久可用的情況。加密與解密處理目前的密碼應(yīng)用領(lǐng)域主要使用兩種加密算法。第一種是不可逆加密算法,如常見的MD5、安全散列算法(SecureHashAlgorithm,SHA)等算法就是不可逆加密算法,也稱為摘要算法。所謂不可逆是指無法根據(jù)密文反向解密出明文,通常這種加密算法可以應(yīng)用于數(shù)字指紋識別或密碼保存、密碼對比等場景。在進(jìn)行登錄驗(yàn)證時,只需對用戶輸入的密碼進(jìn)行MD5加密,再與數(shù)據(jù)庫中的密碼字段進(jìn)行比較即可確定用戶輸入的密碼是否正確。加密與解密處理第二種加密算法通常稱為可逆加密算法,即可以根據(jù)密文解密出明文,這通常用于數(shù)據(jù)通信過程的加密。加密本身只是為了通信過程的安全,最終都需要解密以獲取原始數(shù)據(jù)。所謂對稱加密,是指加密和解密使用相同的密鑰,如主流的加密算法——高級加密標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES)算法。非對稱加密,是指加密時會生成一對公私鑰,使用公鑰加密,使用私鑰解密,如主流的RSA算法。登錄與Token認(rèn)證首先,后端進(jìn)行AES的加解密處理。建議在.env環(huán)境變量文件中添加以下兩個AES加密時會用到的參數(shù),以便于維護(hù)AES密鑰和初始向量。其次,編寫以下代碼對AES的加解密進(jìn)行封裝,解析解密后的內(nèi)容,返回程序需要的信息。登錄與Token認(rèn)證再次,實(shí)現(xiàn)登錄的后臺接口和前端操作。在main.py中新建一個/login接口,用于登錄校驗(yàn)和Token生成。登錄與Token認(rèn)證最后,處理前端登錄請求,在script.js中添加以下代碼。前后端校驗(yàn)處理除了實(shí)現(xiàn)登錄和退出操作,還需要在每個模板界面中添加一段JavaScript代碼,用于更新登錄成功后
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 獸醫(yī)胸腔超聲培訓(xùn)課件
- 2026年及未來5年市場數(shù)據(jù)中國大型購物中心行業(yè)市場發(fā)展數(shù)據(jù)監(jiān)測及投資方向研究報告
- 養(yǎng)老院投訴處理與改進(jìn)制度
- 企業(yè)內(nèi)部資料管理制度
- 養(yǎng)雞肉雞技術(shù)培訓(xùn)課件
- 2026福建三明市公安局三元分局招聘警務(wù)輔助人員24人參考題庫附答案
- 2026福建泉州市面向國防科技大學(xué)選優(yōu)生選拔引進(jìn)考試備考題庫附答案
- 2026遼寧朝陽市教育局直屬學(xué)校赴高校招聘教師(第二批次)102人備考題庫附答案
- 保密及知識產(chǎn)權(quán)保護(hù)制度
- 2026陜西省面向北京科技大學(xué)招錄選調(diào)生備考題庫附答案
- 單位內(nèi)部化妝培訓(xùn)大綱
- 高校行政管理流程及案例分析
- 高效節(jié)水灌溉方式課件
- 基坑安全工程題庫及答案解析
- 《人間充質(zhì)基質(zhì)細(xì)胞來源細(xì)胞外囊泡凍干粉質(zhì)量要求》(征求意見稿)
- 中潤盛和(孝義)新能源科技 孝義市杜村鄉(xiāng)分散式微風(fēng)發(fā)電項(xiàng)目可行性研究報告
- 鄉(xiāng)鎮(zhèn)村監(jiān)會培訓(xùn)課件
- 入團(tuán)申請書教學(xué)課件
- 松下微波爐NN-DS581M使用說明書
- 2026年中國農(nóng)業(yè)銀行秋季校園招聘即將開始考試筆試試題(含答案)
- 2025年江蘇省招聘警務(wù)輔助人員考試真題及答案
評論
0/150
提交評論