自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這款開源組件太驚艷!Spring Boot僅需一行代碼,輕松接入DeepSeek

開發(fā) 前端
deepseek4j 是面向 DeepSeek 推出的 Java 開發(fā) SDK,支持 DeepSeek R1 和 V3 全系列模型。提供對(duì)話推理、函數(shù)調(diào)用、JSON結(jié)構(gòu)化輸出、以及基于 OpenAI 兼容 API 協(xié)議的嵌入向量生成能力。

環(huán)境:SpringBoot3.4.

1. 簡(jiǎn)介

本篇文章將介紹一個(gè)非常不錯(cuò)的開源組件deepseek4j。

deepseek4j 是面向 DeepSeek 推出的 Java 開發(fā) SDK,支持 DeepSeek R1 和 V3 全系列模型。提供對(duì)話推理、函數(shù)調(diào)用、JSON結(jié)構(gòu)化輸出、以及基于 OpenAI 兼容 API 協(xié)議的嵌入向量生成能力。通過 Spring Boot Starter 模塊,開發(fā)者可以快速為 Spring Boot 2.x/3.x 以及 Solon 等主流 Java Web 框架集成 AI 能力,提供開箱即用的配置體系、自動(dòng)裝配的客戶端實(shí)例,以及便捷的流式響應(yīng)支持。

特性

  • 完整的 DeepSeek API 支持,支持返回思維鏈和會(huì)話賬單
  • 支持自定義連接參數(shù)、代理配置、超時(shí)設(shè)置、請(qǐng)求響應(yīng)日志
  • Reactor 響應(yīng)式支持,簡(jiǎn)化流式返回開發(fā)

2. 實(shí)戰(zhàn)案例

2.1 環(huán)境準(zhǔn)備

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
  <groupId>io.github.pig-mesh.ai</groupId>
  <artifactId>deepseek-spring-boot-starter</artifactId>
  <version>1.4.5</version>
</dependency>

基本配置

deepseek:
  api-key: sk-xxxooo
  model: deepseek-reasoner
  base-url: https://api.deepseek.com

說明:deepseek-reasoner 是 DeepSeek 最新推出的推理模型 DeepSeek-R1。

2.2 基本使用

如下示例使用流式返回結(jié)果:

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

訪問:http://localhost:8080/chat?prompt=使用Java實(shí)現(xiàn)訪問者模式

輸出結(jié)果:

圖片圖片

上圖是推理內(nèi)容:

圖片圖片

上圖是最終答案。

2.3 進(jìn)階配置

@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)
      // 設(shè)置最大生成 token 數(shù),默認(rèn) 2048
      .maxCompletionTokens(1000).build();
  return deepSeekClient.chatFluxCompletion(request);
}

2.4 同步輸出 (非實(shí)時(shí)響應(yīng)流)

@Resource
private DeepSeekProperties deepSeekProperties ;
@GetMapping(value = "/sync/chat")
public ChatCompletionResponse syncChat(String prompt) {
  ChatCompletionRequest request = ChatCompletionRequest.builder()
      .model(deepSeekProperties.getModel())
      .addUserMessage(prompt).build();
  return deepSeekClient.chatCompletion(request).execute();
}

注意:不推薦使用同步阻塞調(diào)用方式,R1模型推理耗時(shí)較長(zhǎng)易導(dǎo)致客戶端連接超時(shí),且響應(yīng)延遲會(huì)影響用戶體驗(yàn)。

2.5 SSE實(shí)現(xiàn)

該開源組件還提供了一個(gè)基于SSE的DeepSeek調(diào)試頁(yè)面。

圖片圖片

該sse.html是基于vue3實(shí)現(xiàn)的,我們可以非常方便的將其中數(shù)據(jù)處理邏輯copy到自己的項(xiàng)目中使用。

2.6 聯(lián)網(wǎng)搜索

@GetMapping(value = "/search/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> chatV3(String prompt) {
  // 指定聯(lián)網(wǎng)搜索參數(shù)
  SearchRequest searchRequest = SearchRequest.builder()
      .enable(true)
      .freshness(FreshnessEnums.ONE_DAY)// 一天內(nèi)的數(shù)據(jù)
      .summary(true) // 返回摘要
      .count(10) // 返回10條
      .page(1) // 第一頁(yè)
      .build();
  return deepSeekClient.chatSearchCompletion(prompt, searchRequest);
}

配置:

deepseek:
  search-api-key: sk-xxxooo

內(nèi)部使用的 "博查bochaai" 搜索,你需要到平臺(tái)上申請(qǐng)api-key;需要充值。 

https://open.bochaai.com/api-keys

2.7 詳細(xì)配置

配置項(xiàng)

默認(rèn)值

說明

deepseek.base-url

https://api.deepseek.com/v1

DeepSeek API 的基礎(chǔ) URL

deepseek.api-key

-

API 密鑰,必填項(xiàng)

deepseek.model

-

使用的模型名稱

deepseek.default-system-prompt

true

是否使用默認(rèn)的系統(tǒng)提示詞,默認(rèn)開啟


日志配置

配置項(xiàng)

默認(rèn)值

說明

deepseek.log-requests

false

是否記錄請(qǐng)求日志

deepseek.log-responses

false

是否記錄響應(yīng)日志

deepseek.log-level

DEBUG

日志級(jí)別

網(wǎng)絡(luò)配置

配置項(xiàng)

默認(rèn)值

說明

deepseek.proxy

-

代理設(shè)置

deepseek.connect-timeout

-

連接超時(shí)時(shí)間(秒)

deepseek.read-timeout

-

讀取超時(shí)時(shí)間(秒)

deepseek.call-timeout

-

調(diào)用超時(shí)時(shí)間(秒)


責(zé)任編輯:武曉燕 來源: Springboot實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2023-01-12 08:07:03

Python代碼版權(quán)

2025-02-10 04:01:00

WebSpring工具

2024-05-31 14:04:18

2025-02-10 10:49:51

2025-02-17 00:25:00

SpringAIOpenAI

2022-04-14 07:57:52

Python代碼熱力圖

2016-12-02 08:53:18

Python一行代碼

2025-02-14 08:05:15

2025-04-27 03:00:00

Spring集成測(cè)試

2018-01-02 09:26:28

Ubuntuzzupdate版本升級(jí)

2024-08-16 14:28:21

2015-03-20 14:51:09

Testin云測(cè)

2024-03-12 09:29:21

2022-07-14 10:06:19

代碼交叉表

2023-10-06 19:21:49

Initializr應(yīng)用Spring

2023-12-06 18:09:01

2025-02-19 16:00:00

SpringBootDeepSeek智能

2022-06-17 09:21:53

Pandas代碼透視表

2021-06-09 08:50:39

C語(yǔ)言關(guān)機(jī)代碼復(fù)雜代碼解讀

2014-02-12 13:43:50

代碼并行任務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)