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

Java的SpringAI+Deepseek大模型实战

文章目录

  • 背景
  • 项目环境
  • 第一步、新建项目
  • 第二步、引入依赖
  • 第三步、添加配置文件
  • 第四步、设置客户端
  • 第五步、设置访问端
  • 第六步、启动与访问
  • 异常处理
    • 1、编译报错
      • 1)检查pom中 JDK版本是否为17
      • 2)检查项目结构中JDK版本

背景

大模型火热,Java如何与大模型交互,下班在家,在本地尝试下搭建模型,记录下来,方便备查。

项目环境

springBoot版本:3.x
JDK版本 : 17
搭建Deepseek本地模型,可参考博客【Deepseek得两种访问方式与本地部署】

第一步、新建项目

使用IDEA编辑器新建项目,
在这里插入图片描述

选择 springBoot项目
在这里插入图片描述

第二步、引入依赖

在pom 中引入 web、MySQL、lombok等依赖,如下所示。

 <properties><java.version>17</java.version><spring-ai.version>1.0.0</spring-ai.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-ollama</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

第三步、添加配置文件

修改配置文件的类型,修改为【yaml】
在这里插入图片描述
使用的模型为deepseek,配置文件内容如下所示。

spring:application:name: learn-springaiai:ollama:base-url: http://localhost:11434chat:model: deepseek-r1

第四步、设置客户端

新建configure文件,命名为 CommomConfiguration
在这里插入图片描述
代码如下所示

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @auth wang* @Date 2025/6/18 21:43**/
@Configuration
public class CommomConfiguration {@Beanpublic ChatClient chatClient(OllamaChatModel model){return ChatClient.builder(model).build();}
}

第五步、设置访问端

新建controller文件,命名为ChatController
在这里插入图片描述
代码如下所示

import lombok.RequiredArgsConstructor;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @auth wang* @Date 2025/6/19 22:02**/
@RequiredArgsConstructor
@RestController
@RequestMapping("/ai")
public class ChatController {private final ChatClient chatClient;@RequestMapping("/chat")public String chat(String str){return chatClient.prompt().user(str).call().content();}
}

第六步、启动与访问

项目启动,直接运行 Application 类文件,控制台打印如下所示,即说明项目访问成功。
在这里插入图片描述
在浏览器页面,输入【http://localhost:8080/ai/chat?str=你是谁?】,页面如下则说明访问成功!
在这里插入图片描述

异常处理

1、编译报错

错误信息:java: 警告: 源发行版 17 需要目标发行版 17
处理方案

1)检查pom中 JDK版本是否为17

JDK版本是否为17

    <properties><java.version>17</java.version><spring-ai.version>1.0.0</spring-ai.version></properties>

2)检查项目结构中JDK版本

在【files文件】-【项目结构】-【项目设置】-【项目】,SDK版本是否为17,如下图所示。
在这里插入图片描述

http://www.lryc.cn/news/572409.html

相关文章:

  • 基于keepalived、vip实现高可用nginx (centos)
  • mongodb单节点改副本集模式
  • Python 开发环境全栈隔离架构:从 Anaconda 到 PyCharm 的四级防护体系
  • NetworkManager介绍与用法
  • 【单片机】51单片机练习代码
  • GRBL_UNO R3编译下载
  • Spring Boot 虚拟线程 vs WebFlux:谁更胜一筹?
  • Spring-创建第一个SpringBoot项目
  • apisix-使用hmac-auth插件进行接口签名身份验证\apisix consumer
  • SpringBoot项目启动时自动加载数据到Redis的完整实现方案,用于存储字典,定时任务,登录用户等
  • Spring @Autowired 依赖注入全解析
  • 语音情感识别:CNN-LSTM 和注意力增强 CNN-LSTM 模型的比较分析
  • Hive优化详细讲解
  • Redis 的优势有哪些,它是CP 还是 AP?CAP 理论又是什么?
  • C#的泛型和匿名类型
  • Ubuntu最新版本(Ubuntu22.04LTS)安装nfs服务器
  • Java八股文——计算机网络「传输层篇」
  • CppCon 2017 学习:Everything You Ever Wanted to Know about DLLs
  • CppCon 2017 学习:dynamic_cast from scratch
  • 【AJAX 实战】图书管理系统上 渲染图书列表+新增图书+删除图书
  • windows系统JDK1.8 与JDK 17切换
  • css3 文本效果(text-shadow、text-overflow、word-wrap、word-break)文本阴影、文本换行、文本溢出并隐藏显示省略号
  • 数据结构 6(算法)
  • CMake实践:指定gcc版本编译和交叉编译
  • 华为OD机试-最佳植树距离-二分(JAVA 2025A卷)
  • DeserializationViewer使用说明
  • Java并发编程实战 Day 29:大数据处理的并行计算模型
  • Arduino Nano 33 BLE Sense Rev 2开发板使用指南之【环境搭建 / 点灯】
  • FPGA基础 -- Verilog 命名事件
  • React 19中如何向Vue那样自定义状态和方法暴露给父组件。