使用spring ai调用deepseek来完成对于模型的基本使用,熟悉一下spring ai的开发方式。
使用的版本信息:
spirng boot | 3.4.5 |
spring-ai-bom | 1.0.0-M7 |
spring-cloud-alibaba-dependencies | 2021.0.4.0 |
项目中使用nacos作为配置中心保存openai key的配置,因此引入了spring-cloud-alibaba-dependencies。
搭建项目依赖
版本依赖管理:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0-M7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.0.4.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
</dependencies>
application.yml文件配置:
spring:
ai:
openai:
api-key: ${api-key}
base-url: https://api.deepseek.com
chat:
options:
temperature: 0.7
model: deepseek-chat
embedding:
enabled: false
application:
name: spring-ai-itaiit
config:
import: nacos:nacos-config.properties
cloud:
nacos:
config:
file-extension: properties
name: nacos-config
username: nacos
password: nacos
namespace: d7da1cc0-7ed5-43a6-9a4e-d32edb8b6043
server-addr: localhost:8848
配置中心配置

创建controller
这里采用spring ai官网给的代码示例进行测试:
@RestController
public class ChatController {
private final OpenAiChatModel chatModel;
@Autowired
public ChatController(OpenAiChatModel chatModel) {
this.chatModel = chatModel;
}
@GetMapping("/ai/generate")
public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", this.chatModel.call(message));
}
@GetMapping("/ai/generateStream")
public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
Prompt prompt = new Prompt(new UserMessage(message));
return this.chatModel.stream(prompt);
}
}
结果验证
使用postman发送请求,接收响应。

问题汇总
1. 在调用deepseek的接口之前,需要首先进行充值,如果没有充值调用模型则会显示Insufficient Balance
(余额不足)。