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

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'})
}

在这里插入图片描述

相关文章:

  • 工行手机银行安全吗?在应用商店下载工商银行安全吗?
  • 前端八股 CSS 1
  • py使用uniad原生sdk 3, 放弃Buildozer,使用BeeWare
  • 审计专员简历模板
  • 【LeetCode Hot100】图论篇
  • WSGI(Web Server Gateway Interface)服务器
  • css中盒模型有哪些
  • WPF处理大规模激光数据计算与安全传输处理
  • WebDeveloper 流量分析、sudo提权,靶场通关WP
  • Codeforces Round 1008 (Div. 2) C
  • 精品推荐-湖仓一体电商数据分析平台实践教程合集(视频教程+设计文档+完整项目代码)
  • 电子病历高质量语料库构建方法与架构项目(环境聆听与自动化文档生成篇)
  • idea安装
  • Seata服务端回滚事务核心源码解析
  • 【内存管理】对象树(内存管理)
  • 轻文轻小说网站备份,轻文轻小说网站备份的方法
  • 基于Koa实现的服务端渲染 ✅
  • Linux——虚拟地址空间
  • Cribl 数据脱敏 更多方法 MASK (三)
  • C++使用accumulate函数对数组进行快速求和
  • 海港负国安主场两连败,五强争冠卫冕冠军开始掉队
  • 426.8万人次!长三角铁路创单日客发量历史新高
  • 五一假期上海口岸出入境客流总量预计达59.4万人,同比增约30%
  • 乌副总理:乌美签署矿产协议
  • 全国台联原会长杨国庆逝世,享年89岁
  • 十二届上海市委第六轮巡视全面进驻,巡视组联系方式公布