vue+flask大模型寫詩詩詞推薦與可視化系統

          文章結尾部分有CSDN官方提供的學長 聯系方式名片文章結尾部分有CSDN官方提供的學長 聯系方式名片關注B站,有好處!

編號: F061

大模型詩詞推薦與可視化系統

在傳統文化數字化的浪潮下,我開發了這款詩歌問答大數據平臺,旨在通過現代技術賦能古典詩詞學習與傳播。平臺不僅實現了詩詞數據的系統化管理,更融合了AI推薦、可視化分析等智能化功能。本文將重點介紹平臺的核心功能模塊,分享技術實現思路與功能亮點。

技術架構

vue+flask+mysql+llm

功能說明

在這里插入圖片描述

功能介紹

1.推薦功能:混合推薦算法【基于內容的推薦+協同過濾+冷啟動】
協同過濾:結合用戶點贊行為,挖掘興趣相似用戶群體的偏好;
算法說明:該推薦算法位于poem_route.py文件的get_recommendations函數中,采用混合推薦策略實現詩歌個性化推薦。算法通過HTTP GET請求接收用戶ID(user_id)和推薦數量(top_n)兩個核心參數,其中top_n參數設置了默認值9,支持動態調整推薦結果數量。

算法核心邏輯調用了hybrid_recommend函數,該混合推薦機制可能融合了協同過濾與基于內容的推薦方法:通過用戶歷史行為數據(如like_poem記錄的點贊行為)構建用戶興趣模型,同時結合詩歌文本特征(標題、作者、內容)進行相似度計算。

系統實現了完整的推薦生命周期管理:首先驗證用戶ID的有效性,調用推薦函數生成詩歌ID列表,再通過ORM查詢獲取詩歌詳細信息,最終通過make_response格式化JSON響應。算法具備良好的擴展性,支持通過調整top_n參數控制推薦列表長度,通過poem_schema序列化器靈活配置返回字段。

在異常處理方面,算法通過try-except塊捕獲潛在錯誤,確保服務穩定性。該推薦系統適用于詩歌類內容平臺,能夠基于用戶偏好提供個性化閱讀推薦,提升用戶粘性和內容發現效率。
在這里插入圖片描述

def hybrid_recommend(user_id, top_n=10):"""混合推薦函數,結合基于內容的推薦、協同過濾推薦和熱門推薦。:param user_id: 用戶的 ID,用于獲取用戶的點贊記錄。:param top_n: 推薦的詩歌數量,默認為 10。:return: 推薦的詩歌 ID 列表。"""# 獲取指定用戶的點贊記錄,僅提取詩歌 IDuser_likes = UserLike.query.filter_by(user_id=user_id).with_entities(UserLike.poem_id).all()# 將查詢結果轉換為包含詩歌 ID 的列表user_likes = [like.poem_id for like in user_likes]# 若用戶沒有點贊記錄,調用熱門推薦函數,返回熱門詩歌的 ID 列表# 打印聯合推薦結果# 合并基于內容和協同過濾的推薦結果,去除重復項,并截取前 top_n 個# 調用協同過濾推薦函數,獲取推薦的詩歌 ID 列表# 若用戶有點贊記錄,調用基于內容的推薦函數,獲取推薦的詩歌 ID 列表# 檢查用戶是否有點贊記錄# 打印調試信息,可注釋掉這行以避免輸出過多信息# 調用 extract_features 函數,提取所有詩歌的 ID、文本特征和類別特征poem_ids, text_features, category_features = extract_features()# print(poem_ids, text_features, category_features)if user_likes:content_based_rec = content_based_recommend(user_likes, poem_ids, text_features, category_features, top_n)collaborative_rec = collaborative_filtering_recommend(user_id, top_n)combined_rec = list(set(content_based_rec + collaborative_rec))[:top_n]print('聯合推薦:', combined_rec)return combined_recelse:return popular_recommend(top_n)

2.喜歡功能:這個和結合推薦一起用的,可以點擊喜歡詩詞點贊/取消點贊
用戶可對喜愛的詩詞進行 點贊/取消點贊,操作數據實時反饋至推薦引擎;
在這里插入圖片描述

3.智能寫詩:基于硅基流動的模型接口實現對話寫詩
對接 硅基流動模型接口,實現自然語言對話式寫詩。
在這里插入圖片描述

在這里插入圖片描述

def chat_with_siliconflow(messages, model="Qwen/Qwen3-32B"):"""使用硅基流動的Qwen3模型生成回答"""headers = {"Authorization": f"Bearer {OPENAI_API_KEY}","Content-Type": "application/json"}# 構建提示詞prompt = f"""你是一個寫詩專家,請完成用戶的需求:{messages}。"""payload = {"model": model,"messages": [{"role": "system", "content": "你是一個寫詩專家,請完成用戶的需求。"},{"role": "user", "content": prompt}],"max_tokens": 512,"temperature": 0.7,"top_p": 0.9}try:response = requests.post(f"https://api.siliconflow.cn/v1/chat/completions",headers=headers,data=json.dumps(payload),timeout=60)if response.status_code == 200:data = response.json()return data["choices"][0]["message"]["content"].strip()else:logger.error(f"API請求失敗: {response.status_code} - {response.text}")return "抱歉,暫時無法回答這個問題,請稍后再試。"except requests.exceptions.RequestException as e:logger.error(f"API請求異常: {e}")return "抱歉,暫時無法回答這個問題,請稍后再試。"

4.可視化功能:echarts圖形進行分析詩人朝代、主題分布
朝代分布:柱狀圖展示各朝代詩詞數量占比,直觀呈現“唐詩宋詞”的巔峰地位;
主題分析:詞云圖/餅圖統計山水、邊塞、思鄉等主題的分布情況;
在這里插入圖片描述

5.個人信息:個人信息修改、頭像上傳修改、預設頭像
支持 個人信息修改+頭像自定義+預設頭像庫個性化配置。
在這里插入圖片描述
在這里插入圖片描述

6.登錄注冊:登錄、注冊
在這里插入圖片描述
在這里插入圖片描述

7.查詢詩詞+詩人展示:支持詩詞瀏覽、查詢
支持標題查詢+全文檢索
在這里插入圖片描述

詩人展示
在這里插入圖片描述

8.用戶管理:支持用戶管理、增刪改查
在這里插入圖片描述

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

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

相關文章

Apache Ignite 核心組件:GridClosureProcessor解析

這是一個 Apache Ignite 中非常核心的組件 —— GridClosureProcessor,它是 分布式閉包(Closure)執行的調度中樞,負責在集群節點上異步執行用戶提交的任務(如 Runnable、Closure)。 我們來逐層深入理解它的…

for循環詳解與實戰技巧

目錄 一、for循環語法 二、for循環執行流程 流程圖表示: 三、for循環實踐示例 示例:在屏幕上打印1~10的值 四、while循環與for循環對比 for循環和while循環都包含三個關鍵部分: 兩者的主要區別在于代碼組織方式: 五、練習…

winform中的listbox實現拖拽功能

文章目錄前言一、實現前言 winform中的listBox實現拖拽! 一、實現 winform中的listbox實現拖拽只需要實現四個事件 1、準備兩個listbox控件 其中listtarget,AllowDrop屬性設置為True。 2、實現四個事件 2.1MouseDown //在 MouseDown 事件期間&#x…

用 Docker 安裝并啟動 Redis:從入門到實戰

用 Docker 安裝并啟動 Redis:從入門到實戰Redis 作為一款高性能的鍵值對數據庫,在緩存、會話存儲、消息隊列等場景中被廣泛應用。本文將詳細介紹如何使用 Docker 快速安裝和啟動 Redis,包括基礎配置、數據持久化以及容器管理等核心操作&#…

ansible學習第一天

一:ansible基礎知識1.1 ansible的定義與工作原理簡述ansible是一個自動化運維工具,用于執行自動化任務,包括像配置管理,應用部署,任務執行等等,本質上來說也是基礎設施及代碼工具,通過可讀性較強…

Vue原理與高級開發技巧詳解

Vue 的底層原理、高級用法、性能優化和生態整合 文章目錄Vue 的底層原理、高級用法、性能優化和生態整合一、Vue 雙向綁定原理深度剖析1. Vue 2 實現原理(Object.defineProperty)2. Vue 3 實現原理(Proxy)3. v-model 高級用法二、…

axios的封裝

axios的封裝 在src目錄下新建文件夾utils工具類,文件夾里面新建http.js文件,如果項目涉及到多個基地址可以新建http2.js文件。 import axios from axios;/*** 后端*/// 創建axios實例 const http axios.create({// 1.接口基地址baseURL: http://192.168…

MariaDB 數據庫管理與web服務器

MariaDB 數據庫管理與WEB 服務器 介紹 MariaDB 數據庫介紹 **數據庫,是一個存放計算機數據的倉庫。**這個倉庫是按照一定的數據結構來對數據進行組織和存儲的,我們可以通過數據庫提供的多種方法來管理其中的數據。 數據結構,是指數據的組織形…

分治-歸并-912.排序數組-力扣(LeetCode)

一、題目解析1、將數組排升序2、在不使用任何內置函數的情況下解決問題二、算法原理分治-歸并合并兩個有序數組1、雙指針遍歷兩個合并數組2、將比較后的較小值放到新開數組中3、防止有指針未遍歷完&#xff0c;特殊處理4、將nums中的元素還原三、代碼示例vector<int> tmp…

網絡安全初學者學習心得

看到你對網絡安全學習的興趣&#xff0c;我感到非常振奮&#xff01;這個領域既充滿挑戰又回報豐厚&#xff0c;作為初學者&#xff0c;理清學習內容和方向確實至關重要。下面我將結合多年的行業觀察和指導經驗&#xff0c;為你詳細拆解網絡安全初學者的學習內容并分享一些核心…

防火墻筆記優化版

一、防火墻的核心定義防火墻是一種基于預設安全策略&#xff0c;用于隔離內網與外網、控制網絡流量的安全系統&#xff08;可分為軟件系統或硬件系統&#xff09;。其核心作用包括&#xff1a;流量隔離&#xff1a;物理或邏輯分隔內網、外網及 DMZ 區域&#xff08;DMZ 為內網與…

vue3前端項目cursor rule

cursor rule是什么&#xff0c;以及怎么定義&#xff0c;看這個文章&#xff1a; cursor中定義cursor rules_cursor rules如何編寫-CSDN博客 針對現有一個vue3的前端項目&#xff0c;寫了一份cursor rule&#xff0c;可以作為參考&#xff0c;內容如下&#xff08;僅作為參考&…

基于51單片機紅外遙控定時開關智能家電插座設計

1. 功能介紹 本設計是一款基于 STC8C52 單片機 的智能家電插座系統&#xff0c;集 紅外遙控控制、定時開關控制、自動與手動模式切換、掉電數據保存、液晶顯示、蜂鳴器提示 于一體&#xff0c;能夠方便用戶對家用電器進行精準的定時控制與遠程操作。系統廣泛適用于家用電器、辦…

下一代防火墻組網方案

知識回顧&#xff1a;1.傳統防火墻包括包過濾防火墻、應用網關防火墻、狀態檢測防火墻。2.包過濾防火墻工作在3、4層。3.包過濾防火墻特點&#xff1a;4.應用網關防火墻主要作用&#xff1a;①截取用戶初始化連接請求&#xff0c;對用戶進行認證&#xff1b;②通過ALG能讓多通道…

WEB開發-第二十七天(PHP篇)

DW PHPStorm PhpStudy Navicat Premium DW : HTML&JS&CSS開發 PHPStorm : 專業PHP開發IDE PhpStudy &#xff1a;Apache MYSQL環境 Navicat Premium: 全能數據庫管理工 變量覆蓋安全&#xff1a; $GLOBALS&#xff1a;這種全局變量用于在PHP腳本中的任意位置訪…

Lwip深度閱讀-網絡架構

LWIP網絡協議棧詳細介紹 本文的內容基本基于野火的LWIP手冊&#xff0c;和LWIP源碼撰寫。 網絡協議棧概述 從圖片可以看出&#xff0c;網絡協議棧采用分層架構&#xff0c;每一層都有特定的功能和協議。 TCP/IP協議分層模型數據封裝過程MAC數據包 我使用wireShark抓包的時候&am…

嵌入式系統學習Day16(C語言中的位運算)

位運算二進制位的運算嵌入式:通過位運算 控制 硬件運算: 運算規則 & 與 一假則假 | 或 一真則真 ~ 非 真假相對 ^ 異或 相同為假 不同為真 << 左移 表示二進制位的移動 >> 右移 eg:int a 0x55; int b 0x33;0101 0101 //0x55 &am…

Endnote下載,導入曼大 harvard_manchester格式

下載endnote 并激活中國農業科技文獻與信息服務平臺&#xff0c;點擊下載 下載harvard_manchester 格式 Harvard Manchester - Referencing guide at the University of Manchester - Subject guides at University of Manchester 雙擊打開第二步下載的安裝包&#xff08;使用…

【Docker進階實戰】從多容器編排到集群部署

Docker進階實戰&#xff1a;從多容器編排到集群部署 當你已經熟悉Docker的基本操作后&#xff0c;面對的下一個挑戰往往是&#xff1a;如何管理多個容器的協作&#xff1f;如何實現容器的集群化部署與擴展&#xff1f;如何保證服務的高可用&#xff1f; 一、Docker Compose&…

【Linux文件操作】文件操作系統調用

目錄 一、文件創建&#xff08;creat 系統調用&#xff09;? 1.1 函數原型 1.2 參數說明? 1.3 返回值? 1.4 使用示例 二、文件打開&#xff08;open 系統調用&#xff09;? 2.1 函數原型 2.2 參數說明? 2.3 返回值? 2.4 使用示例 三、文件讀寫&#xff08;read 和 write …