SpringBoot使用DeepSeek APi
1.环境配置
环境:
JDK:17.0.13
spring-boot:3.4.2
依赖:
遇到了坑,最后解决是使用该版本,可以正常从库中获取:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>1.0.0-M5</version>
</dependency>
测试了版本1.1.0和1.0.4在阿里云maven仓库中也是有的,但是报错找不到,错误如下:
Could not find artifact org.springframework.ai:spring-ai-bom:pom:1.1.0 in aliyun-public (https://maven.aliyun.com/repository/public)
搜索后查找大致原因或许是和仓库中未正式发布有关,
Spring—AI的Issues中有类似问题,解决是要加入另一个spring的存储库地址,依赖如下:
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
但是尝试之后还是不行,问题链接放这里,可以研究一下顺便评论帮我解释一下这个问题
https://github.com/spring-projects/spring-ai/issues/362
配置文件
spring:
ai:
openai:
base-url: https://api.deepseek.com
api-key: sk-your-deepseek-key-here
chat.options:
model: deepseek-chat # 指定DeepSeek的模型名称
#通过指定 model='deepseek-chat' 即可调用 DeepSeek-V3
#通过指定 model='deepseek-reasoner',即可调用 DeepSeek-R1
temperature: 1.3
deepseek官方key获取连接:DeepSeek
官方api文档:DeepSeek API 文档
2.接口定义
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/ai")
@Slf4j
public class ChatController {
private OpenAiChatModel openAiChatModel;
@Autowired
public ChatController(OpenAiChatModel openAiChatModel) {
this.openAiChatModel = openAiChatModel;
}
/**
* 生成
*
* @param message 输入信息
* @return 输出信息
*/
@GetMapping("/generate")
public Map generate(@RequestParam(value = "message") String message) {
System.out.println(message);
return Map.of("generation", this.openAiChatModel.call(message));
}
}
Temperature 设置
错误码供参考
更多Spring-AI相关使用可以参考:AI - 人工智能;Java之SpringAI(二)_java spring ai-CSDN博客