Spring 宣布接入 DeepSeek
DeepSeek 是深度求索公司發(fā)布的大模型,是國產(chǎn)之光。大家應(yīng)該學(xué)會(huì)如何使用 DeepSeek 大模型,下面我們將看下如何開發(fā)基于 DeepSeek 大模型的智能應(yīng)用。
DeepSeek 大模型
DeepSeek 推出兩款模型;
- DeepSeek V 系列,對于V系列主要 對話,模型名稱:deepseek-chat
- DeepSeek R 系統(tǒng),對于R系統(tǒng)主要 推理, 模型名稱:deepseek-reasoner
DeepSeek 官方更新日志,可以看到模型發(fā)布和演化的過程。
https://api-docs.deepseek.com/zh-cn/updates
集成 DeepSeek 大模型
DeepSeek AI提供開源的 DeepSeek V3 模型,該模型以其尖端的推理和解決問題的能力而聞名。
Spring AI 通過重用現(xiàn)有的 OpenAI 客戶端與 DeepSeek AI 集成。首先,您需要獲取 DeepSeek API 密鑰,配置基本 URL,并選擇其中一個(gè)受支持的模型。
接入前準(zhǔn)備
- 創(chuàng)建 API 密鑰:訪問此處:https://api-docs.deepseek.com/zh-cn/創(chuàng)建 API 密鑰。使用 Spring AI 項(xiàng)目中的 spring.ai.openai.api-key 屬性對其進(jìn)行配置。
- 設(shè)置 DeepSeek 基本 URL:將 spring.ai.openai.base-url 屬性設(shè)置為 api.deepseek.com。
- 選擇 DeepSeek 模型:使用屬性 spring.ai.openai.chat.model=<model name> 指定模型。有關(guān)可用選項(xiàng),請參閱支持的型號(hào)。
集成 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);
}
}
現(xiàn)階段 DeepSeek 服務(wù)受資源限制可能無法提供在線服務(wù),那么可以本地部署一個(gè)DeepSeek 大模型進(jìn)行學(xué)習(xí)和使用。
總結(jié)
Spring AI 接入 DeepSeek 大模型是非常簡單的,實(shí)現(xiàn)了阻塞和流式聊天模式。對于 DeepSeek 大模型的函數(shù)調(diào)用,角色定義以及結(jié)構(gòu)化輸出等和之前文章中講解的內(nèi)容是一致的,沒有什么特別的地方,這里也不再贅述了。
源碼案例:https://github.com/Fj-ivy/spring-ai-examples