spring boot集成spring ai调用deepseek

在spring ai的官方文档中,没有可以直接调用国内大模型的使用文档。自己在集成的过程中遇上了一些问题,记录一下。


一、架构前提条件

复制代码
Spring AI 支持 Spring Boot 3.4.x 版本。

Spring Boot 3.4.x 版本需要使用java 17及以上版本

二、依赖注入

1、spring AI 支持好多大模型,但是国内的这些我没找到对应的依赖,意外得知可以使用openai的依赖

xml 复制代码
<dependency>  
    <groupId>org.springframework.ai</groupId>  
    <artifactId>spring-ai-starter-model-openai</artifactId>  
</dependency>

2、Spring AI 物料清单(BOM)声明了指定版本所有依赖的推荐版本。此为纯 BOM 版本,仅包含依赖管理,不涉及插件声明或 Spring/Spring Boot 的直接引用。你可使用 Spring Boot Parent POM 或 Spring Boot 的 BOM(spring-boot-dependencies)来管理 Spring Boot 版本。

添加 BOM 到项目:

xml 复制代码
<dependencyManagement>  
    <dependencies>  
        <dependency>  
            <groupId>org.springframework.ai</groupId>  
            <artifactId>spring-ai-bom</artifactId>  
            <version>${spring-ai.version}</version>  
            <type>pom</type>  
            <scope>import</scope> <!-- BOM必须用import scope -->  
        </dependency>  
    </dependencies>  
</dependencyManagement>

三、开启大模型

在大模型网站上选好喜欢的大模型,一定要记得开启

1、这里以豆包为例

2、点击选好的模型,即可得到模型名称,一定要点进去获取,可以点击的蓝字并不是模型的id

3、点进去就可以看到模型id

4、点击接入文档

4.1 这个就是在下文说到的url

4.2 Api Key

四、添加配置文件

其中base-url和completions-path拼成完整的可以调用的url

ini 复制代码
# 大模型核心配置  
spring.ai.openai.api-key=你的aip-key 
spring.ai.openai.base-url=https://ark.cn-beijing.volces.com  
  
# 大模型参数配置  
spring.ai.openai.chat.options.model=你的模型
spring.ai.openai.chat.completions-path=/api/v3/chat/completions

五、然后就可以调用了,很方便

scss 复制代码
// 注入统一的 ChatClientprivate final ChatClient chatClient;  
  
public DouBaoChatController(ChatClient.Builder chatClientBuilder) {  
    this.chatClient = chatClientBuilder.build();  
}  
  
@GetMapping("/ai")  
String generation(String userInput) {  
    return this.chatClient.prompt()  
            .user(userInput)  
            .call()  
            .content();  
}
相关推荐
城管不管6 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨7 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
豆瓣鸡7 小时前
算法日记 - Day3
java·开发语言·算法
萧瑟余晖7 小时前
Java深入解析篇九之NIO详解
java·网络·nio
The Chosen One9858 小时前
高进度算法模板速记(待完善)
java·前端·算法
极光代码工作室10 小时前
基于SpringBoot的课程预约系统
java·springboot·web开发·后端开发
Leighteen10 小时前
`try-finally` 里的 `return`:为什么 `finally` 会悄悄改掉返回值、吞掉异常
java·开发语言
名字还没想好☜11 小时前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine
圆山猫11 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v
caishenzhibiao11 小时前
期货先行者主图 同花顺期货通指标
java·c语言·c#