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

基于SpringAI实现专家系统

文章目录

  • 基于SpringAI实现专家系统
    • 项目架构
    • 技术亮点
    • 功能详情
      • 功能一:学号/姓名查询学生信息
      • 功能二:查询学生成绩并弹窗展示
      • 功能三:班级成绩分析图
    • 使用方式
    • 后记

基于SpringAI实现专家系统

上个月 Spring AI 正式版发布,博主第一时间上手,开发了一个小专家系统Demo——“辅导员助手”。它利用 Spring AI 的 Function Calling 功能调用预设方法,实现了一键查询学生信息、成绩数据,并结合 Vaadin 弹出窗口展示、进行数据分析、页面跳转等功能。同时,Demo 将 RAG 文件写入向量数据库,方便大模型调用查询。欢迎给项目点个 ⭐,感谢支持!👉 项目地址

项目架构

在这里插入图片描述

技术亮点

  • Spring AI + Vector Store + RAG:使用 ETL → 嵌入 → 存储 → 检索 → 生成,确保模型能处理本地结构化数据。
  • Tool Calling:自定义函数方法可被大模型自动识别调用,实现查询与展示分离。
  • Vaadin UI:大模型可以调用vaadin的方法,实现操作前端页面。

功能详情

功能一:学号/姓名查询学生信息

  • 用户输入“查一下学号 20231234,姓名 张三 的信息”
  • 聊天模型匹配 getStudentInfo 工具
  • 后端函数调用数据库,返回包括姓名、专业、联系方式等基础信息
  • 模型整合结果并输出

功能二:查询学生成绩并弹窗展示

  • 用户请求“查一下 20231234 的成绩”
  • 模型识别调用 getStudentGrades
  • 服务读取成绩表数据,返回结构化结果
  • 系统通过弹窗或前端组件直观展示成绩单

功能三:班级成绩分析图

  • 用户询问“我想看 2023 级计算机班的成绩分析”
  • 模型先检索相关班级成绩文档
  • 调用 getClassAnalytics(classId),生成平均分、分布图等数据
  • 前端基于结果绘制图表,直观展示班级整体表现

使用方式

  • 克隆项目
    git clone https://github.com/l4vid4/SpringAiExpertSystem.git
    
  • 配置docker,详见github的README
  • 配置数据库与API密钥。
  • 修改resources\rag\下的rag文件。
  • 修改CustomerSupportAssistant的Prompt。
  • 然后点击运行即可启动前后端。

后记

感谢阅读!如果你觉得这个项目还不错,欢迎点个 Star 支持一下~
有任何疑问也欢迎私信我,知无不答。
如果各位大佬发现项目中有可改进之处,也请不吝指教,感激不尽!

http://www.xdnf.cn/news/1000027.html

相关文章:

  • WebRTC(三):P2P协议
  • 目标检测——YOLOv12算法解读
  • react,使用echarts过程
  • C/C++内存分布和管理
  • 1.11 HTTP 文件上传的核心协议
  • 小米CR660X/TR60X系列,获取SSH权限后刷openwrt系统
  • Linux中source和bash的区别
  • 树莓派5-ubuntu 24.04 安装 ros环境
  • linux 配置mvn
  • 创始人 IP 打造:心理学与家庭教育赛道知识变现新路径
  • LeetCode 热题 100 链表篇|Java 通关全攻略:从基础到进阶的 20 道核心题解(附完整思路与代码)
  • ARM SMMUv3命令和事件队列分析(四)
  • LeetCode 3423. Maximum Difference Between Adjacent Elements in a Circular Array
  • Haption遥操作机械臂解决方案通过高精度力反馈技术实现人机协同操作
  • elastalert实现飞书机器人告警-docker
  • Python爬虫实战:研究Crossbar相关技术
  • C/C++ 面试复习笔记(6)
  • 【测试开发】函数进阶-纯函数
  • 关于transceiver复位测试
  • 亚马逊关闭Posts:站内社交梦碎,卖家流量策略急待重构
  • Babylon.js场景加载器(Scene Loader)使用指南
  • 怎么把Dify部署在Windows系统上?
  • git merge合并分支push报错:Your branch is ahead of ‘xxx‘ by xx commits.
  • AI换衣技术实现原理浅析:基于图像合成的虚拟试衣实践
  • Python 爬虫入门 Day 1 - 网络请求与网页结构基础
  • WSGI(自用)
  • 解决npm install 一直卡着不动,npm install --verbose
  • TickIt:基于 LLM 的自动化 Oncall 升级
  • 相机Camera日志实例分析之三:相机Camx【视频光斑人像录制】单帧流程日志详解
  • 如何快速删除谷歌浏览器在mac启动台生成的网页图标