Spring 宣布接入 DeepSeek
DeepSeek 是深度求索公司發布的大模型,是國產之光。大家應該學會如何使用 DeepSeek 大模型,下面我們將看下如何開發基于 DeepSeek 大模型的智能應用。
DeepSeek 大模型
DeepSeek 推出兩款模型;
- DeepSeek V 系列,對于V系列主要 對話,模型名稱:deepseek-chat
- DeepSeek R 系統,對于R系統主要 推理, 模型名稱:deepseek-reasoner
DeepSeek 官方更新日志,可以看到模型發布和演化的過程。
https://api-docs.deepseek.com/zh-cn/updates
集成 DeepSeek 大模型
DeepSeek AI提供開源的 DeepSeek V3 模型,該模型以其尖端的推理和解決問題的能力而聞名。
Spring AI 通過重用現有的 OpenAI 客戶端與 DeepSeek AI 集成。首先,您需要獲取 DeepSeek API 密鑰,配置基本 URL,并選擇其中一個受支持的模型。
接入前準備
- 創建 API 密鑰:訪問此處:https://api-docs.deepseek.com/zh-cn/創建 API 密鑰。使用 Spring AI 項目中的 spring.ai.openai.api-key 屬性對其進行配置。
- 設置 DeepSeek 基本 URL:將 spring.ai.openai.base-url 屬性設置為 api.deepseek.com。
- 選擇 DeepSeek 模型:使用屬性 spring.ai.openai.chat.model=<model name> 指定模型。有關可用選項,請參閱支持的型號。
集成 DeepSeek 示例
1、引入依賴
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
2、配置
spring:
ai:
openai:
api-key: sk-xxx // 填寫自己申請的key
base-url: https://api.deepseek.com
chat:
options:
model: deepseek-chat
3、簡單的聊天示例
package com.ivy.controller;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
import java.util.Map;
@RestController
public class ChatController {
private final OpenAiChatModel chatModel;
public ChatController(OpenAiChatModel chatModel) {
this.chatModel = chatModel;
}
@GetMapping("/ai/generate")
public Map<String, String> 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);
}
}
現階段 DeepSeek 服務受資源限制可能無法提供在線服務,那么可以本地部署一個DeepSeek 大模型進行學習和使用。
總結
Spring AI 接入 DeepSeek 大模型是非常簡單的,實現了阻塞和流式聊天模式。對于 DeepSeek 大模型的函數調用,角色定義以及結構化輸出等和之前文章中講解的內容是一致的,沒有什么特別的地方,這里也不再贅述了。
源碼案例:https://github.com/Fj-ivy/spring-ai-examples