文章結尾部分有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.用戶管理:支持用戶管理、增刪改查