当前位置: 首页 > news >正文

vue+flask大模型写诗诗词推荐与可视化系统

          文章结尾部分有CSDN官方提供的学长 联系方式名片文章结尾部分有CSDN官方提供的学长 联系方式名片关注B站,有好处!

编号: F061

大模型诗词推荐与可视化系统

在传统文化数字化的浪潮下,我开发了这款诗歌问答大数据平台,旨在通过现代技术赋能古典诗词学习与传播。平台不仅实现了诗词数据的系统化管理,更融合了AI推荐、可视化分析等智能化功能。本文将重点介绍平台的核心功能模块,分享技术实现思路与功能亮点。

技术架构

vue+flask+mysql+llm

功能说明

在这里插入图片描述

功能介绍

1.推荐功能:混合推荐算法【基于内容的推荐+协同过滤+冷启动】
协同过滤:结合用户点赞行为,挖掘兴趣相似用户群体的偏好;
在这里插入图片描述

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.lryc.cn/news/614802.html

相关文章:

  • 浏览器面试题及详细答案 88道(01-11)
  • 项目一系列-第4章 在线接口文档 代码模板改造
  • AJAX与axios框架
  • Netty-Rest搭建笔记
  • 系统集成项目管理工程师【第十一章 规划过程组】规划成本管理、成本估算、制定预算和规划质量管理篇
  • 轻松实现浏览器自动化——AI浏览器自动化框架Stagehand
  • 【华为机试】63. 不同路径 II
  • C++简单项目跟练【通讯录管理系统000】
  • 数据集: TSPLIB旅行商问题-对称TSP数据集
  • 宁商平台税务升级之路:合规为纲,服务为本
  • 五、SpringBoot工程打包与运行
  • 解决 MinIO 上传文件时报 S3 API Requests must be made to API port错误
  • Sklearn 机器学习 数据降维PCA 使用PCA算法
  • Java 之 设计模式
  • Python day38
  • SVM算法实战应用
  • 【感知机】感知机(perceptron)学习算法例题及详解
  • 政治社会时间线
  • 为什么输入 URL 后会显示页面?HTTP 协议的 “幕后操作”
  • JDK、eclipse的安装,配置JDK、Tomcat并使用eclipse创建项目
  • Cursor CLI 来了,准备 Build anything
  • latex基础
  • Vue 路由跳转
  • Redis数据组织方式
  • 第39周——训练自己的数据集
  • Vue 组件化开发
  • 零基础小白如何使用QGIS制作研究区地形区位图教程
  • SQL聚合函数:SUM与COUNT的区别
  • 算法训练之字符串
  • 04--模板初阶(了解)