现在ai技术发展迅速,传统图书馆管理系统无法对用户所喜欢的图书进行精准推荐,从而萌生出做一个ai推荐的智慧系统
(AI Intelligent Library)是一个利用 AI 模型和数据分析对用户所喜欢的图书进行精准推荐的系统,并且提供了 AIGC 的在线生成借阅量分析的 BI 图表功能,能够起到一个数据分析师的作用。
项目特性(亮点)
1)本项目采用前后端分离的模式,前端构建页面,后端作数据接口,前端调用后端数据接口得到数据,重新渲染页面。
2)前端在 Authorization 字段提供 Token 令牌,API 认证使用 Token 认证,使用 HTTP Status Code 表示状态,数据返回格式使用 JSON。
3)后端已开启 CORS 跨域支持,采用权限拦截器进行权限校验,并检查登录情况。
4)添加全局异常处理机制,捕获异常,增强系统健壮性。
5)前端用 Echarts 可视化库实现了图书借阅的分析图标(折线图、饼图),并通过 Loading 配置提高加载体验。
6)留言组件采用弹幕形式,贴合用户的喜好。
7)引入 knife4j 依赖,使用 Swagger + Knife4j 自动生成 OpenAPI 规范的接口文档,前端可以在此基础上使用插件自动生成接口请求代码,降低前后端协作成本
8)使用 ElementUI 组件库进行前端界面搭建,快速实现页面生成,并实现了前后端统一权限管理,多环境切换等能力。
9)基于 MyBatis Plus 框架的 QueryWrapper 实现对 MySQL 数据库的灵活查询,并配合 MyBatisX 插件自动生成后端 CRUD 基础代码,减少重复工作。
10)前端路由懒加载、CDN 静态资源缓存优化、图片懒加载效果。
1)用户输入自己的图书偏爱信息。
2)前端发送 Axios 请求。
3)后端先判断文本是否违法(为空或者文本字数过长)。
4)查看接口是否存在。
5)查看 AI 接口调用次数是否充足。
6)GuavaRateLimiter 进行单体限流,判断请求次数是否超出正常业务频次。
7)给 AI 模型人工预设,并且查询数据库中的书籍列表进行拼接。
8)查询 AI 模型与该用户最近的五条历史记录,用于上下文关联。
9)FutureTask 同步调用获取 AI 结果,并设置超时时间(超时抛出异常)
10)获取 AI 模型推荐信息后进行持久化,并且减少接口调用次数(判断是否成功)
11)返回处理好的 AI 推荐信息给前端,并设置响应状态码为 200 即可。