欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > SpringAI整合DeepSeek生成图表

SpringAI整合DeepSeek生成图表

2025/5/15 13:58:10 来源:https://blog.csdn.net/usa_washington/article/details/147643349  浏览:    关键词: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'})
}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词