Maven 依赖

在你的 pom.xml 中添加以下依赖:

<dependency>
  <groupId>io.github.pig-mesh.ai</groupId>
  <artifactId>deepseek-spring-boot-starter</artifactId>
  <version>1.3.2</version>
</dependency>

基础配置

application.ymlapplication.properties 中添加必要的配置:

deepseek:
  api-key: your-api-key-here  # 必填项:你的 API 密钥
  base-url: https://api.deepseek.com  # 可选,默认为官方 API 地址
  log-requests: true  # 可选,是否记录请求日志
  log-responses: true  # 可选,是否记录响应日志
  
  # 可选的超时配置(单位:秒)
  connect-timeout: 10
  read-timeout: 30
  call-timeout: 60
  
  # 代理配置(可选)
  proxy:
    host: proxy.example.com
    port: 8080
    
  # 日志级别配置(可选)
  log-level: BASIC

基础使用示例

1. 流式返回示例

@Autowired
private DeepSeekClient deepSeekClient;

@GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> chat(String prompt) {
    return deepSeekClient.chatFluxCompletion(prompt);
}

2. 进阶配置示例

@GetMapping(value = "/chat/advanced", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> chatAdvanced(String prompt) {
    ChatCompletionRequest request = ChatCompletionRequest.builder()
        // 模型选择,支持 DEEPSEEK_CHAT、DEEPSEEK_REASONER 等
        .model(ChatCompletionModel.DEEPSEEK_REASONER)
        // 添加用户消息
        .addUserMessage(prompt)
        // 添加助手消息,用于多轮对话
        .addAssistantMessage("上轮结果")
        // 添加系统消息,用于设置角色和行为
        .addSystemMessage("你是一个专业的助手")
        // 设置最大生成 token 数,默认 2048
        .maxTokens(1000)
        // 设置响应格式,支持 JSON 结构化输出
        .responseFormat(...) // 可选
        // function calling
        .tools(...) // 可选
        .build();
        
    return deepSeekClient.chatFluxCompletion(request);
}

3. 同步输出 (非实时响应流)

不推荐使用同步阻塞调用方式,R1模型推理耗时较长易导致客户端连接超时,且响应延迟会影响用户体验
@GetMapping(value = "/sync/chat")
public ChatCompletionResponse syncChat(String prompt) {
  ChatCompletionRequest request = ChatCompletionRequest.builder()
      // 根据渠道模型名称动态修改这个参数
      .model(deepSeekProperties.getModel())
      .addUserMessage(prompt).build();

  return deepSeekClient.chatCompletion(request).execute();
}