山東大學軟件學院項目實訓:基于大模型的模擬面試系統項目總結(九)

在山東大學軟件學院的項目實訓中,團隊成員們圍繞基于大模型的模擬面試系統展開了一系列開發與優化工作。以下是本周項目的核心進展與成果總結。

前端界面優化與 Bug 修復(吳尤)

Logo 顯示問題修復

在項目開發過程中,團隊發現項目左上角的 SVG 格式 logo 存在兩個主要問題:一是經常遮擋博客標題的輸入區域;二是點擊 logo 外圍透明區域時也會觸發返回主頁的操作。通過使用專業的 SVG 編輯工具(如 Adobe Illustrator 或 Inkscape)進行圖形裁剪,導出優化后的 SVG 文件,成功解決了這些問題,修復后點擊熱區與可視圖形完全匹配,不再遮擋標題區域。

按鈕消失 Bug 修復

當用戶選中任意面試話題、刪除該話題記錄時,底部“新建面試對話”按鈕會消失。經過代碼審查發現,handleDeleteRecord 方法中存在邏輯缺陷,刪除當前激活記錄時將 currentInterviewer 誤設為 null,導致按鈕顯示條件失效。修改后的核心邏輯不再重置 currentInterviewer,修復了這一問題,按鈕在刪除操作后保持正常顯示,用戶體驗得到改善。

導航欄視覺升級

原導航欄存在純文字菜單缺乏視覺引導、層級結構不夠清晰、不符合現代 UI 設計趨勢等問題。團隊為導航欄添加了圖標系統,使用 Element UI 內置圖標庫,保持一致的右邊距,按功能類別選擇語義化圖標。同時,增加了垂直間距,使用更現代的字體組合,添加平滑的 hover 動畫效果,提升了導航欄的視覺效果和用戶體驗。

名稱截斷處理

對于可能過長的名稱顯示,團隊采用了統一的截斷方案,保留完整 tooltip 提示,并適配響應式布局,確保了界面的整潔性和信息的完整展示。

面試官和面試記錄分享功能開發(李一銘)

卡片渲染

開發了面試官和面試記錄的卡片渲染功能,使用 Element UI 的卡片組件展示面試官和面試記錄的信息。面試官卡片顯示面試官的頭像、名稱和描述,面試記錄卡片顯示面試記錄的主題、面試官名稱和操作按鈕。用戶可以通過點擊按鈕獲取面試官或面試記錄,增強了系統的互動性。

前后端對接

實現了獲取分享的面試官信息和面試記錄的前后端對接。前端通過調用后端的 /api/share/interviewShareToUser/api/share/chatShareToUser 接口,將面試官或面試記錄的 ID 傳遞給后端。后端接收到請求后,將對應的面試官或面試記錄數據復制到當前用戶的賬戶下,并返回成功提示。這一功能的實現,使得用戶可以方便地分享和獲取優質的面試官和面試記錄資源。

數據處理與標簽優化(孫旭)

標簽層次結構設計方案

在微調算法題推薦功能的開發過程中,團隊面臨了微調數據中特征屬性過多、標簽分布稀疏的問題。經過研究和比較,選擇了標簽層次結構設計方案,通過手動設計多層次的標簽體系,將原始標簽歸類到不同的類別和子類別中。這一方案不僅保留了原始標簽的語義信息,結構清晰,易于理解和維護,還符合領域專家的認知方式,更貼合實際應用場景。通過實現標簽層次結構,解決了標簽稀疏性問題,提高了推薦精度,增強了系統的可解釋性。

方案比較:研究了三種可能的解決方案,包括PCA + 特征選擇組合、卷積神經網絡(CNN)+ 聚類、標簽層次結構設計。最終選擇了標簽層次結構設計方案,因為它更符合算法和數據結構領域的層次關系,且系統需要保持結果的可解釋性。

標簽層次結構實現:通過代碼實現了標簽層次結構,包括關鍵標簽篩選、層次化特征生成等步驟。代碼中定義了核心算法標簽列表和層次化映射字典,通過分析標簽重要性、選擇重要標簽、創建層次化特征等步驟,將原始標簽優化為更有效的特征體系。

主處理流程框架:描述了整個特征處理的總控流程,包括數據讀取、基本統計、特征分配策略、核心標簽篩選、層次特征生成、結果保存等步驟,并計算了信息保留度。

關鍵標簽篩選策略:采用三重機制篩選核心標簽,優先選擇關鍵算法標簽,然后是高頻標簽和高共現標簽。

層次化特征生成:將非關鍵標簽按邏輯分類聚合,使用反向映射機制和層次化規則,過濾低頻類別。

數據分析與驗證:包括標簽共現矩陣計算、完整性檢查、信息保留率驗證等,確保處理結果的質量。

詳細報告生成:生成可追溯的處理日志,包括關鍵標簽保留清單、層次化標簽的組成說明、被合并標簽的映射關系等。

MCP服務器工具改進

修改了MCP服務器中的工具函數,增強了題目推薦的精準度。通過調用工具函數“generate_problem_selection_prompt”,根據面試表現和簡歷信息生成算法題選擇提示。
在面試官AI的提示詞模板中增加了對這些工具的調用說明,使AI能夠在合適的時機根據候選人的表現調用相應的工具函數。

題目管理與數據統計功能完善(吳浩明)

題目添加功能

實現了題目的添加功能,豐富了題庫內容。在后端的 ProblemController.java 中,完善了題目的添加邏輯,通過接收前端傳遞的 ProblemDTO 對象,并進行參數校驗、設置默認值、創建時間和更新時間等操作,最后調用服務層的方法將題目信息持久化到數據庫。前端的 add.vue 文件中,使用 Element UI 組件構建了題目添加的表單,實現了數據雙向綁定和表單校驗規則,并通過調用后端接口發送 POST 請求完成題目的添加。

數據統計功能

完成了用戶練習情況、題目通過率等關鍵指標的統計與展示。在后端的 ProblemServiceImpl.java 中,實現了用戶練習情況的統計邏輯,查詢當前用戶的所有提交記錄,統計用戶已接受的題目 ID 集合和已嘗試的題目 ID 集合,以及題目總數,并將統計結果封裝到 Map 中返回。前端的 index.vue 文件中,通過調用后端接口獲取統計數據,并使用 Element UI 的卡片和進度條組件展示總題數、已解決和嘗試過的題目數量及其對應的比率。同時,對統計準確性進行了修正,確保只統計可見的題目,并移除了 Redis 緩存邏輯,改為直接從數據庫讀取數據,保證了數據的實時性。

判題邏輯優化

調整了獲取用戶提交記錄的邏輯,不再進行 distinct 操作,確保 acceptedProblemIds 根據題目 ID 進行去重且提交狀態為 ACCEPTEDattemptedProblemIds 根據題目 ID 進行去重且不限制提交狀態。這一優化提高了判題的準確性和效率。

題目總數統計修正

修正了題目總數統計邏輯,確保只統計可見的題目,避免了因統計不準確導致的用戶困惑和系統專業性受損。

緩存策略調整

移除了數據統計功能中的 Redis 緩存邏輯,改為直接從數據庫讀取數據,以保證數據的實時性。這一調整雖然可能會略微增加數據庫的訪問壓力,但確保了用戶看到的統計數據是最新的,提升了系統的可靠性和用戶體驗。

AI面試官及與AI的聊天記錄分享(王博凡)

這篇文章主要介紹了山東大學軟件學院項目實訓中,基于大模型的模擬面試系統的AI面試官與聊天記錄分享功能的設計與實現。以下是文章的核心內容總結:

功能概述

用戶可以將自己創建或使用過的AI面試官及與AI的聊天記錄,通過文章的形式分享給其他用戶。
其他用戶可以查看分享的AI資源,并一鍵將其添加到自己的賬戶下使用。
分享的內容以“快照”形式存在,即分享出去的是一個獨立副本,原作者后續的修改不影響已分享的內容,反之亦然。

數據結構設計

新增ShareReference:存儲文章與分享的AI資源(面試官/聊天記錄快照)之間的關聯關系。
擴展ArticleDTO:增加用于承載分享內容的列表,分別用于存儲聊天記錄快照和面試官快照。

核心流程設計

用戶選擇要分享的AI面試官或聊天記錄。
系統對每個被選中的資源執行深度拷貝操作,生成獨立副本(快照),并與特定的系統用戶關聯。
創建新的ShareReference記錄,關聯文章ID、快照類型和快照ID。
如果是更新文章,會先刪除舊的ShareReference記錄及舊快照數據,再創建新的快照和關聯。

通過文章ID查詢ShareReference表,獲取關聯的分享項。
根據type和對應的chatIdinterviewerId,獲取快照的詳細信息。
在前端以卡片樣式展示分享的AI資源,提供預覽信息和“添加到我的”按鈕。

前端將快照ID和類型傳遞給后端API。
后端調用相應的deepCopy服務,將快照內容復制到當前登錄用戶的賬戶下。
用戶獲得一個屬于自己的、全新的副本,可自由修改,不影響原始快照。

深度拷貝機制

為目標用戶在Milvus中創建新的Collection。
遍歷源知識庫中的文件,重新解析文件內容,分割成文本塊,生成向量。
將新的KnowledgeRecord批量插入到新的Collection中。

  • 更新MongoDB中的MilvusDatabaseMilvusFile元數據。

調用milvusService.deepCopy復制知識庫,獲取新的知識庫ID。
創建新的Interviewer對象,設置新知識庫ID和其他屬性。
保存新的Interviewer對象。

調用interviewerService.deepCopy復制關聯的面試官,獲取新的面試官ID。
創建新的ChatRecords對象,關聯新的面試官ID和目標用戶ID。
保存新的ChatRecords以獲得其ID。
遍歷源聊天記錄的所有Branch,調用branchDeepCopy復制每個分支及其消息。
處理children(子分支ID列表)的映射,確保它們指向新復制的子分支ID。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/84899.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/84899.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/84899.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

14.vue.js的watch()的注意事項(1)

一、 Q :因為 state 有內部的屬性 也就是id。 因為要追逐id。所以要寫函數?而不能直接監聽state。 只監聽state ,監聽不到id的變化嗎? A: 為什么監聽 state 不等于監聽 state.id? 在 Vue 3 中&#xff0…

強化學習入門:價值、回報、策略概念詳解

前言 最近想開一個關于強化學習專欄,因為DeepSeek-R1很火,但本人對于LLM連門都沒入。因此,只是記錄一些類似的讀書筆記,內容不深,大多數只是一些概念的東西,數學公式也不會太多,還望讀者多多指教…

基于“數智立體化三維架構”框架的醫療數智化機制研究

1 研究背景與框架基礎 當前,全球醫療服務體系正經歷深刻的數智化轉型浪潮,人工智能、大數據、云計算等新一代信息技術與醫療健康領域的融合不斷深入,催生了醫療服務模式的革命性變化。在我國,數智化技術已成為提升基層衛生服務質量、促進醫療服務公平可及、增進百姓健康福…

OpenCV CUDA模塊圖像變形------對圖像進行旋轉操作函數rotate()

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 該函數用于對圖像進行 GPU 加速的旋轉操作,支持指定旋轉角度、縮放中心偏移和插值方法。是 OpenCV CUDA 模塊中用于圖像旋轉的核心函…

【面板數據】中國與世界各國新能源汽車進出口數據-分類別與不分類別(2017-2024年)

新能源汽車作為中國制造高質量發展的重要代表,其進出口數據不僅反映了我國技術實力與產業格局的變化,也是理解全球綠色交通趨勢、制定國家戰略決策的重要依據。目前國內主流定義判斷標準主要參考中國工信部于2009年發布的《新能源汽車生產企業及產品準入…

亞馬遜云服務器(AWS)會限制用戶使用嗎?深度解讀AWS資源政策

一、AWS的資源邏輯:為什么說"不限速"? AWS采用"按需分配"的資源配置模式,其核心限制并非來自人為設定,而是取決于: 實例類型配置(如t2.micro默認CPU積分制) 賬戶服務配額…

頂級視頻生成大模型分析:Seedance 1.0 Pro (字節跳動) - 新晉榜首

📖 目錄 一、概述與市場格局 1.1 AI視頻生成技術現狀1.2 主要競爭者概覽1.3 評測標準與方法 二、頂級模型詳細分析 2.1 Seedance 1.0 Pro (字節跳動) - 新晉榜首2.2 OpenAI Sora - 行業先驅者2.3 Google Veo 3 - 音視頻一體化領航者2.4 快手可靈 2.0 - 國產之光…

【Spring源碼核心篇-08】spring中配置類底層原理和源碼實現

Spring源碼核心篇整體欄目 內容鏈接地址【一】Spring的bean的生命周期https://zhenghuisheng.blog.csdn.net/article/details/143441012【二】深入理解spring的依賴注入和屬性填充https://zhenghuisheng.blog.csdn.net/article/details/143854482【三】精通spring的aop的底層原…

【無標題】在 4K 高分辨率(如 3840×2160)筆記本上運行 VMware 虛擬機時平面太小字體太小(ubuntu)

? 方法一:寫入 ~/.xprofile(推薦) 這個文件會在你登錄圖形界面前自動執行,適合設置縮放比例等桌面配置。 1. 打開 .xprofile 文件(如果沒有會自動創建): nano ~/.xprofile2. 寫入以下內容&a…

「Linux文件及目錄管理」目錄結構及顯示類命令

Linux文件系統的目錄結構 Linux文件系統采用嚴格的樹形結構,所有文件和目錄都從根目錄(/)開始延伸。以下是主要目錄的詳細說明: /bin:存放系統啟動和運行所必需的二進制可執行文件,如ls、cp、mv等基本命令。/etc:存放系統配置文件,如/etc/passwd(用戶賬戶信息)、/et…

人工智能學習13-Numpy-規律數組生成

人工智能學習概述—快手視頻 人工智能學習13-Numpy-規律數組生成—快手視頻 NumPy(Numerical Python)是 Python 的一種開源的數值計算擴展。 這種工具可用來存儲和處理大型矩陣,比 Python 自身的嵌套列表 (nested list structure…

Spring Boot 集成 Redis 實戰教程

前言 在高并發、大數據量的應用場景中,緩存是提升系統性能的關鍵技術。Redis 憑借其卓越的讀寫性能、豐富的數據結構和高可用性,成為開發者常用的緩存工具。本教程將嚴格依據Spring 官方文檔與Redis 官方文檔,詳細介紹 Spring Boot 與 Redis…

龍蜥開發者說:我的龍蜥開源之旅 | 第 32 期

「龍蜥開發者說」第 32 期來了!開發者與開源社區相輔相成,相互成就,這些個人在龍蜥社區的使用心得、實踐總結和技術成長經歷都是寶貴的,我們希望在這里讓更多人看見技術的力量。本期故事,我們邀請了龍蜥社區開發者潘玨…

在mac上安裝sh腳本文件

要將 jd-gui.sh 腳本轉換為在 macOS ARM 系統上帶有自定義圖標的可點擊運行的程序,你可以通過創建一個應用程序包(.app)來實現。以下是詳細步驟: 步驟 1:創建應用程序包目錄結構 應用程序包實際上是一個特殊的目錄&a…

用bilibili一個講座視頻,生成一本科普書籍

用bilibili一個講座視頻,生成一本科普書籍 一、功能介紹1.1 智能文本處理1.2 知識提煉與結構化1.3 專業知識普及1.4 自動化書籍生成1,5 大規模處理能力二、技術特點三、應用意義3.1 教育領域3.2 研究領域3.3 內容創作3.4 企業應用四、創新價值五、使用場景示例六、操作步驟6.1 …

黑馬教程強化day3-1

目錄 一、File1.定義:2.創建File類的對象3.File提供的判斷文件類型、獲取文件信息功能4.File提供的創建的方法5.File類刪除文件的功能6.File提供的遍歷文件夾的方法代碼演示 二、遞歸(了解遞歸算法,以便實現多級遍歷找文件)1.定義…

milvus 總結

1. milvus 的默認 admin 角色賬號 root 的密碼 為 Milvus 2. 最開始使用命令: docker-compose -f milvus-standalone-docker-compose.yml up -d 啟動 milvus 后,使用 attu 登錄 Milvus 是不需要輸入賬號/密碼的,可以使用如下方式開啟 mi…

基于docker技術的單主機環境模擬測試批量客戶端

EX. 任務背景 近期接到一個需求是在一個高性能服務器上,模擬啟動多個待測試客戶端的場景,但這個客戶端程序有點特殊,設置了守護模式,并且需要管理員權限會監控系統的/dev/mem節點,單個環境中只能啟動一個。 當前的測…

windows上用vnc viewer 能連接mac,不能連ubuntu

如果 VNC Viewer 可以連接 macOS,但無法連接 Ubuntu,通常是由于 Ubuntu 上的 VNC 服務配置問題或網絡限制導致的。以下是逐步排查和解決方案: 1. 確認 Ubuntu 上已安裝并運行 VNC 服務 (1) 檢查是否安裝了 VNC 服務器 Ubuntu 常用的 VNC 服…

Electron-vite【實戰】MD 編輯器 -- 編輯區(含工具條、自定義右鍵快捷菜單、快捷鍵編輯、拖拽打開文件等)

最終效果 頁面 src/renderer/src/App.vue <div class"editorPanel"><div class"btnBox"><divv-for"(config, key) in actionDic":key"key"class"btnItem":title"config.label"click"config.a…