SpringAI整合DeepSeek生成图表

利用Spring-ai-openai集成DeepSeek

①、在DeepSeek开放平台创建API KEY
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②、创建springboot项目,引入spring-ai-openai依赖,创建配置文件,配置deepseek的url和api key
在这里插入图片描述
在这里插入图片描述

③、具体的实现业务应用

@RestController
public class ChatDeepSeekController{@Autowiredprivate OpenAiChatModel chatModel;@GetMapping("/ai/test")public String generate(@RequestParam(value="message",defaultValue="hello")String message){String response = this.chatModel.call(message);System.out.println("response:" + response);return response;}
}

在这里插入图片描述

利用spring-ai-ollama访问本地化部署DeepSeek

①、利用DeepSeek本地化部署
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②、通过ollama拉取DeepSeek模型
在这里插入图片描述

在这里插入图片描述

CMD窗口执行复制上面的命令
在这里插入图片描述
在这里插入图片描述

③、创建springboot工程引入依赖

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

④、业务应用

@RestController
public class ChatDeepSeekController{@Autowiredprivate OllamaChatModel ollamaChatModel;@GetMapping("/ai/test")public String generate(@RequestParam(value="message",defaultValue="hello")String message){String response = this.ollamaChatModel.call(message);System.out.println("response:" + response);return response;}
}

在这里插入图片描述

项目中应用实现数据报表

ECharts图表方式实现报表

在这里插入图片描述

①、前端使用工具ECharts

vue项目中安装ECharts:npm install echarts --save

vue组件中使用ECharts

<template><div ref="chart" style="width:600px;height:400px;"></div>
</template><script>import * as echarts from 'echarts';export default {data(){return {searchObj:{selectYear:''},btnDisabled:false,chart:null,title:'',xData:[],yData:[]}},created(){this.showChart()},method:{//初始化图表showChart(){getUserCount().then(response=>{this.yData = response.data.countListthis.xData = response.data.dateListthis.setChartData()})},setChartData(){var myChart = echarts.init(this.$refs.chart)var option = {title:{text:this.title + ''},tooltip:{}legend:{data:[this.title]},xAxis:{data:this.xData},yAxis:{minInterval:1},series:[{name:this.title,type:'bar',data:this.yData}]}//使用刚指定的配置项和数据显示图表myChart.setOption(option);},}}
</script>

②、后端创建查询统计数据的接口,按照ECharts要求格式返回

在这里插入图片描述

share-user模块

@GetMapping("/getUserCount")
public R getUserCount(){Map<String,Object> map = userInfoService.getUserCount();return R.ok();
}
@Override
public Map<String,Object> getUserCount(){Lit<UerCountVo> list = baseMapper.selectUserCount();Map<String,Object> map = new HashMap<>();//创建两个list集合,一个对应所有的日期,一个对应所有的数据//java中list -- json数组[]List<String> dateList = list.stream().map(UserCountVo::getRegisterDate).collect(Collectors.toList());List<Integer> countList = list.stream().map(UserCountVo::getCount).collect(Collectors.toList());map.put("dateList",dateList);map.put("countList",countList);return map;
}

在这里插入图片描述
在这里插入图片描述

SpringAI集成DeepSeek实现数据报表

  • AI生成sql语句

在这里插入图片描述
①、创建AI工程

依赖spring-ai-openai-spring-boot-starter
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

②、shart-order模块中

根据传递的sql查询数据库,得到报表

@PostMapping("/getOrderCount")
public R getOrderCount(@RequestBody OrderSqlVo orderSqlVo){Map<String,Object> map = orderInfoService.getOrderCount(orderSqlVo.getSql());return R.ok(map);
}
@Override
public Map<String,Object> getOrderCount(String sql){List<Map<String,Object>> list = baseMapper.getOrderCount(sql);Map<String,Object> dataMap = new HashMap<>();List<Object> dataList = new ArrayList<>();List<Object> countList = new ArrayList<>();for(Map<String,Object> map:list){dataList.add(map.get("order_date"));countList.add(map.get("order_count"));}dataMap.put("dateList",dateList);dataMap.put("countList",countList);return dataMap;
}
<select id="getOrderCount" resultType="hashmap">${sql}
</select>

③、远程定义模块(略)

④、shart-statics模块进行调用

@Configuration
public class RestTmplateConfig{@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}
}
@Autowired
private RestTemplate restTemplate;@Autowired
private RemoteOrerInfoService remoteOrderInfoService;@GetMapping("/orderData")
public AjaxResult getOrderData(@RequestParam(value="message",defaultValue="hello") String message){//通过restTemplate调用aiString sql = restTemplate.getForObject("http://localhost:8899/ai/generateSql?message=" + message,String.class);//远程调用OrderSqlVo orderSqlVo = new OrderSqlVo();orderSqlVo.setSql(sql);R<Map<String,Object>> result = remoteOrderInfoServce.getOrderCount(orderSqlVo);Map<String,Object> map = result.getData();return success(map);
}

整合前端

export function getOrderCount(message){return request({url:'/sta/orderData?message=' + message,method:'get'})
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/81373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xss-lab靶场基础详解第1~3关

第一关 我去&#xff0c;还是得多学基础啊 http://127.0.0.1/xss-labs/level1.php?name<u>a</u> 这个看他的网站源码&#xff0c;可以看到他没有过滤&#xff0c;没有被编码 然后在name<script>alert(1)</script>&#xff0c;就算过关了 第二关 …

【MySQL】聚合查询 和 分组查询

个人主页&#xff1a;♡喜欢做梦 欢迎 &#x1f44d;点赞 ➕关注 ❤️收藏 &#x1f4ac;评论 目录 &#x1f334; 一、聚合查询 &#x1f332;1.概念 &#x1f332;2.聚合查询函数 COUNT&#xff08;&#xff09; SUM&#xff08;&#xff09; AVG&#xff08;&…

计算机启动流程中,都干了啥事。比如文件挂在,操作系统加载,中断向量表加载,磁盘初始化在哪阶段。

建议在电脑上看&#xff0c;手机上格式有点问题&#xff0c;认真读&#xff0c;这方面没问题的&#xff0c;肝了一天。 目录.计算机启动详解 一.计算机启动直观图二.步骤详解前置准备磁盘初始化1.开机阶段2.执行BIOS阶段3.执行引导记录&#xff08;MBR&#xff09;阶段4.操作系…

后端开发技术之Log日志框架

第一章 日志原理 1.1 log发展历史 从JDK1.4开始提供java.until.logging&#xff0c;后来大佬发现JUL太难用了&#xff0c;就自己手撸了个log4j&#xff0c;后来log4j发现安全漏洞&#xff0c;加上代码结构问题难以维护&#xff0c;于是从1.2就停止更新log4j&#xff0c;并又重…

美丽天天秒链动2+1源码(新零售商城搭建)

什么是链动21模式&#xff1f; 链动21主要是建立团队模式&#xff0c;同时快速提升销量。是目前成员中速度最快的裂变模式。链动21模式合理合规&#xff0c;同时激励用户 公司的利润分享机制&#xff0c;让您在享受购物折扣的同时&#xff0c;也能促进并获得客观收益。 链动21模…

Python10天冲刺-设计模型之策略模式

策略模式是一种行为设计模式&#xff0c;它允许你在运行时动态地改变对象的行为。这种模式的核心思想是将一组相关的算法封装在一起&#xff0c;并让它们相互替换。 下面是使用 Python 实现策略模式的一个示例&#xff1a; 示例代码 假设我们有一个简单的购物车系统&#xf…

【CTFer成长之路】XSS的魔力

XSS闯关 level1 访问url&#xff1a; http://c884a553-d874-4514-9c32-c19c7d7b6e1c.node3.buuoj.cn/level1?usernamexss 因为是xss&#xff0c;所以对传参进行测试&#xff0c;修改?username1&#xff0c;进行访问 会发现username参数传入什么&#xff0c;welcome之后就…

自主机器人模拟系统

一、系统概述 本代码实现了一个基于Pygame的2D自主机器人模拟系统&#xff0c;具备以下核心功能&#xff1a; 双模式控制&#xff1a;支持手动控制&#xff08;WASD键&#xff09;和自动导航模式&#xff08;鼠标左键设定目标&#xff09; 智能路径规划&#xff1a;采用改进型…

快速上手非关系型数据库-MongoDB

简介 MongoDB 是一个基于文档的 NoSQL 数据库&#xff0c;由 MongoDB Inc. 开发。 NoSQL&#xff0c;指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写&#xff0c;是对不同于传统的关系型数据库的数据库管理系统的统称。 MongoDB 的设计理念是为了应对大数据量、…

性能优化实践:启动优化方案

性能优化实践&#xff1a;启动优化方案 在Flutter应用开发中&#xff0c;启动性能是用户体验的第一印象&#xff0c;也是应用性能优化的重要环节。本文将从理论到实践&#xff0c;深入探讨Flutter应用的启动优化方案。 一、Flutter应用启动流程分析 1. 启动类型 冷启动&…

在文本废墟中打捞月光

在文本废墟中打捞月光 ----再读三三的《山顶上是海》之“暗室”所理 今天是2025年5月1日&#xff0c;传统的“五一”小长假。当我早饭后“坐”在卫生间的那几分钟里&#xff0c;闺女和儿子就骑着家中仅有的两辆电动车去了图书馆。我是该做些什么&#xff1f; 于是我左手拿着三…

C++之类和对象基础

⾯向对象三⼤特性&#xff1a;封装、继承、多态 类和对象 一.类的定义1. 类的定义格式2.类域 二.实例化1.对象2.对象的大小 三.this指针 在 C 的世界里&#xff0c;类和对象构成了面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;的核心框架&…

计算机网络——HTTP/IP 协议通俗入门详解

HTTP/IP 协议通俗入门详解 一、什么是 HTTP 协议&#xff1f;1. 基本定义2. HTTP 是怎么工作的&#xff1f; 二、HTTP 协议的特点三、HTTPS 是什么&#xff1f;它和 HTTP 有啥区别&#xff1f;1. HTTPS 概述2. HTTP vs HTTPS 四、HTTP 的通信过程步骤详解&#xff1a; 五、常见…

使用 Java 实现一个简单且高效的任务调度框架

目录 一、任务调度系统概述 &#xff08;一&#xff09;任务调度的目标 &#xff08;二&#xff09;任务调度框架的关键组成 二、任务状态设计 &#xff08;一&#xff09;任务状态流转设计 &#xff08;二&#xff09;任务表设计&#xff08;SQL&#xff09; 三、单机任…

基于GPT 模板开发智能写作辅助应用

目录 项目说明 1. 项目背景 2. 项目目标 3. 功能需求 4. 技术选型 项目结构 详细代码实现 前端代码(client) client/src/main.js client/src/App.vue client/src/components/HistoryList.vue 后端代码(server) server/app.js server/routes/api.js server/mo…

linux 使用nginx部署next.js项目,并使用pm2守护进程

前言 本文基于&#xff1a;操作系统 CentOS Stream 8 使用工具&#xff1a;Xshell8、Xftp8 服务器基础环境&#xff1a; node - 请查看 linux安装node并全局可用pm2 - 请查看 linux安装pm2并全局可用nginx - 请查看 linux 使用nginx部署vue、react项目 所需服务器基础环境&…

使用huggingface_hub需要注意的事项

在安装huggingface_hub的时候要注意如果你的python是放在c盘下时记得用管理员模式命令行来安装huggingface_hub&#xff0c;否则安装过程会报错&#xff0c;之后也不会有huggingface-cli命令。 如果安装时因为没有用管理员权限安装而报错了&#xff0c;可以先卸载huggingface-…

Spring MVC @RequestHeader 注解怎么用?

我们来详细解释一下 Spring MVC 中的 RequestHeader 注解。 RequestHeader 注解的作用 RequestHeader 注解用于将 HTTP 请求中的**请求头&#xff08;Request Headers&#xff09;**的值绑定到 Controller 方法的参数上。 请求头是 HTTP 请求的一部分&#xff0c;包含了关于…

Rust 学习笔记:关于结构体的例题

Rust 学习笔记&#xff1a;关于结构体的例题 Rust 学习笔记&#xff1a;关于结构体的例题下面的程序能通过编译吗&#xff1f;下面的程序能通过编译吗&#xff1f;下面的程序能通过编译吗&#xff1f;哪种说法最能描述 Display 和 Debug 特质之间的区别&#xff1f;下面哪个选项…

STM32 SPI通信协议

1. SPI协议概述 1.1 什么是SPI&#xff1f; SPI&#xff08;Serial Peripheral Interface&#xff09;是由摩托罗拉公司于1980年代提出的同步串行通信协议&#xff0c;主要用于短距离高速芯片间通信。作为四线制全双工通信协议&#xff0c;它以简单的硬件实现和高效的传输速率…