当前位置: 首页 > news >正文

发现一个挺好的项目,可以在springboot项目中快速接入DeepSeek API,有需要的可以尝试一下

最近DeepSeek的爆火程度是一点也没有减少,相关的文章读也读不完~~~

继:

百度宣布文心一言于4月1日0时起全面免费之后,openAI、谷歌接着也跟进了他们的免费方案。

再之后,则看到Spring AI项目中也接入了DeepSeek AI

作为一名SpringBoot的重度使用用户,第一时间想着去在springboot工程中尝试下这个由Spring AI提供的stater:spring-ai-openai-spring-boot-starter

然鹅,却发现,Spring AI对 SpringBoot的版本还是有要求的,而我的2.x版本明显不在它的支持范围内~

没错,它要Spring Boot 3.2x and 3.3.x才可以!!!

紧接着,我就发现了它:)

DeepSeek4J(非广告哦,纯粹是因为它满足我的场景要求~)

官方文档:DeepSeek4j简介 - 零基础入门Java AI

最主要的,它支持springboot2.x/3.x

ok,那话不多说,必须尝试一下

快速开始:

maven依赖

pom.xml中添加如下starter依赖

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

基础配置:

application.yml或application.properties配置文件中增加如下配置:

deepseek:
  api-key: your-api-key-here
  base-url: https://api.deepseek.com/v1  # 可选,默认为官方 API 地址,支持火山、gitee、硅基流动
  model: deepseek-reasoner # deepssek-reasoner或deepseek-chat

流式返回代码示例:

@Autowired
private DeepSeekClient deepSeekClient;

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

进阶配置示例:

@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);
}

同步输出示例:(不推荐,耗时长,容易造成客户端阻塞,影响用户体验)

@GetMapping(value = "/sync/chat")
public ChatCompletionResponse syncChat(String prompt) {
  ChatCompletionRequest request = ChatCompletionRequest.builder()
      // 根据渠道模型名称动态修改这个参数
      .model(deepSeekProperties.getModel())
      .addUserMessage(prompt).build();

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

github中的项目传送门:DeepSeek4J的github地址

官方快速开始文档:Deepseek4j快速开始 - 零基础入门Java AI

相关文章:

  • 从0到1:STM32温控系统开发踩坑指南
  • http 响应码影响 video 标签播放视频
  • 关于JavaScript中的事件
  • 【Linux-命令】
  • Unity 开发资源汇总 | 插件 | 模型 | 源码(不断更新中,建议收藏)
  • 线上就医全流程医药机构接入文档接口代码-医保就医接口php-demo版本
  • 基于SSM+Vue的智能汽车租赁平台设计和实现(源码+文档+部署讲解)
  • 亚马逊云科技 re:Invent 2023:科技前沿风向标,探索未来云计算之窗
  • c# -01新属性-模式匹配、弃元、析构元组和其他类型
  • zookeeper有序临时结点实现公平锁的实践例子
  • Python 中从零开始的随机梯度下降
  • Java获取html标签内容中的图片链接
  • C#结合html2canvas生成切割图片并导出到PDF
  • JavaScript设计模式 -- 代理模式
  • MySQL基本操作——包含增删查改(环境为Ubuntu20.04,MySQL5.7.42)
  • DVWA-DOM型XSS全等级绕过方法
  • STM32 HAL库 UART串口发送数据实验
  • 新数据结构(10)——Java抽象类和接口
  • DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗?
  • 网络安全试题
  • 申活观察|演出场次破纪录、入境游导游档期忙,上海文旅商“热力”拉满
  • 专访|刘伟强:在《水饺皇后》里,我放进儿时全家福照片
  • 竞彩湃|新科冠军利物浦留力?纽卡斯尔全力冲击欧冠
  • 五问舆论漩涡中的“协和‘4+4’模式”:是否公平,如何合格?
  • 中国驻日本大使吴江浩就日本民用飞机侵闯我钓鱼岛领空向日方提出严正交涉
  • 中国海警局回应日本民用飞机侵闯我钓鱼岛领空:依法警告驱离