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

自研小程序-心情追忆

在近期从繁忙的工作中暂时抽身之后,我决定利用这段宝贵的时间来保持我的Java技能不致生疏,并通过一个个人项目来探索人工智能的魅力。

我在Hugging Face(国内镜像站点:HF-Mirror)上发现了一个关于情感分析的练习项目,其核心是分析输入文本的情感倾向。

因此,我决定将此项目与移动应用(wx)开发结合起来,并赋予它一个寓意深远的名字:“心情追忆” 。

作为一位主要专注于后端开发的程序员,对于前端开发我一直持有敬畏之心(尽管过去曾对能够跨平台构建小程序的框架如Taro和Uniapp有所涉猎)。在这个项目中,我想要实现的一个关键功能是将用户过去的情感变化可视化地呈现出来——即通过一个折线图来展示历史情绪趋势。然而,在小程序端实现这一功能时遇到了一些挑战,如工具版本的兼容性问题等。

经过多次尝试,最终确定了以下技术栈版本:

1. Node.js: v18.20.4 (18.x 版本即可)
2. Taro: 3.6.35 (用于自动化创建基于Vue3的项目)
3. Vue3: 3.2.40 (由Taro指定)
4. Echarts4Taro3: ^1.8.0 (图表绘制工具)
5. NutUI-Taro: "^4.3.0" (UI组件库)

最后大概是这个样子

后端方面

python跑了一个情绪分析的小模型(反正是闹着玩)

// 大概是这个, 需要的话自己去上面的网站学习
classifier = pipeline("text-classification", model="uer/roberta-base-finetuned-dianping-chinese")
// 然后用了一个FastAPI定义了一个接口, 大概是这样
@app.get("/submitText")
async def predict(text: str):
// 最后启动命令 后台启动, 并保存日志, 方便排查问题
nohup uvicorn q-test:app --host 0.0.0.0 --port 8000 >> py.log 2>&1 &

python只是一个提供分析的入口, 再使用springboot写了一个给前端提供服务的后端服务

逻辑就是

用户登录后, 提交一条数据, 先进入java服务, 存库并调用python分析, 拿到结果后把结果存库再返回前端

springsecurity做用户认证(调用了wxlogin接口判断用户)

mysql存库, 用户表, 记录用户提交数据和返回结果表 等等表

考虑到成本和模型服务的特殊需求,我没有选择云服务器,而是在自己的高性能PC(外星人笔记本配备RTX 4090, 正好最近黑悟空完成了81难, 也不想玩了)上部署了整个系统,包括模型服务、Java后端以及MySQL数据库。为了使应用程序能够对外界可见,我还使用了Cpolar进行内网穿透。

现在,“心情追忆”已经在我家中的服务器上稳定运行,成为我和女友闲暇之余探讨新功能的好去处,也为我的技能树增添了新的枝叶。

后续, 我还会去思考, 往小程序里面加更多更好玩的功能. 有兴趣可以私聊我一起来玩

http://www.lryc.cn/news/473200.html

相关文章:

  • 【部署与升级-会议签到的web安装】
  • 【jvm】如何设置新生代和老年代的比例
  • 系统学习CFD,常见收敛问题、及如何与机器学习相结合
  • REST架构与实现
  • AI驱动的低代码未来:加速应用开发的智能解决方案
  • 快速上手 Rust——环境配置与项目初始化
  • 分布式事务Seata-AT模式
  • 编程知识概览
  • 基于 GADF+Swin-CNN-GAM 的高创新扰动信号识别模型!
  • 【Nextcloud】在 Ubuntu 22.04.3 LTS 上的 Nextcloud Hub 8 (29.0.0) 优化
  • 全渠道供应链打造中企业定制开发2+1链动模式S2B2C商城小程序的策略与影响
  • Github 2024-10-24 Go开源项目日报 Top10
  • 中航资本:锂电行业现分化 优质产能仍然紧俏
  • 安宝特案例 | AR技术在院外心脏骤停急救中的革命性应用
  • curl调用微信退款No required SSL certificate was sent
  • 进程守护SuperVisord内部的进程定时监测并重启
  • [面试题]ES6 Javascript
  • 四款国内外远程桌面软件横测:ToDesk、向日葵、TeamViewer、AnyDesk
  • 解决电脑突然没有声音
  • ZFX数字股票全球品牌战略新闻发布会在香港盛大举行
  • vue中elementUI的el-select下拉框的层级太高修改设置!
  • 测试员最佳跳槽频率是多少?进来看看你是不是符合
  • 【数字信号处理】
  • Docker | 校园网上docker pull或者docker run失败的一种解决方法
  • 实现Java后端的图形验证码和行为验证码
  • 事务的原理、MVCC的原理
  • Golang反射原理
  • MATLAB计算朗格朗日函数
  • 嵌入式linux跨平台基于mongoose的TCP C++类的源码
  • 入驻商家必看:如何在TikTok实现多店铺高效上货及运营?