网站域名需要交费吗,ps手机网站制作,滨州建设网站,服装定制合同范本⭐自荐一个非常不错的开源 Java 面试指南#xff1a;JavaGuide #xff08;Github 收获148k Star#xff09;。这是我在大三开始准备秋招面试的时候创建的#xff0c;目前已经持续维护 6 年多了#xff0c;累计提交了 5600 commit #xff0c;共有 550 多位贡献者共同参与… ⭐自荐一个非常不错的开源 Java 面试指南JavaGuide Github 收获148k Star。这是我在大三开始准备秋招面试的时候创建的目前已经持续维护 6 年多了累计提交了 5600 commit 共有 550 多位贡献者共同参与维护和完善。 DeepSeek 作为一款卓越的国产 AI 模型越来越多的公司考虑在自己的应用中集成。对于 Java 应用来说我们可以借助 Spring AI 集成 DeepSeek非常简单方便
相关文章推荐
DeepSeek 的这波回答我给满分IDEA 接入 DeepSeek,太酷了!
Spring AI 是什么
Spring AI 从著名的 Python 项目例如 LangChain 和 LlamaIndex中汲取灵感解决了 AI 集成中的核心挑战将企业数据和 API 与 AI 模型连接起来。
你可以将 Spring AI 看作是一个适配器或者高层封装用来帮你更方便地集成和使用不同的 AI 模型。它的核心目标是简化开发流程降低使用多种 AI 服务时的复杂性同时提升代码的可维护性和灵活性。 Spring AI 的主要功能包括
统一 API: Spring AI 提供了一套统一的接口用来调用不同的 AI 模型例如 OpenAI、Hugging Face、DeepSeek、Gemini 等。开发者只需要学习 Spring AI 的 API就能无缝对接各种 AI 服务而无需深入了解各家服务的底层实现和差异。简化配置: Spring AI 提供了自动化的配置管理例如 API 密钥、模型参数等。你只需要简单地在配置文件中定义所需的参数Spring AI 就会自动完成初始化和连接避免繁琐的手动配置。易于切换: Spring AI 的抽象设计使得更换 AI 提供商变得非常简单。开发者只需要修改少量配置而不用修改业务代码从而实现灵活的 AI 服务切换适应不同场景需求。
Spring AI 集成 DeepSeek
这里介绍两种方式
spring-ai-openai starter伪装成 OpenAIDeepSeek 提供了 OpenAI 兼容模式。spring-ai-ollama-spring-boot-starter通过 Ollama 本地部署一个 DeepSeek R1 蒸馏版。 伪装成 OpenAI
DeepSeek 其实提供了 OpenAI 兼容模式只要在请求头里加个api_key就能假装自己在调 OpenAI。Spring AI 的 openai starter 本质上是通过 RestTemplate 发请求我们只需要改改 URL 和认证方式。 1、添加依赖
dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-openai-spring-boot-starter/artifactIdversion0.8.1/version
/dependency2、修改配置文件 application.yml
spring:ai:openai:base-url: https://api.deepseek.com/v1 # DeepSeek的OpenAI式端点api-key: sk-your-deepseek-key-herechat.options:model: deepseek-chat # 指定DeepSeek的模型名称3、DeepSeek API KEY 可以在 DeepSeek 开放平台中自行创建地址https://platform.deepseek.com/api_keys 。 4、在代码中调用
RestController
RequestMapping(/ai)
Slf4j
public class ChatController {private final ChatClient chatClient;// 构造方法注入 ChatClient.Builder用于构建 ChatClient 实例public ChatController(ChatClient.Builder chatClientBuilder) {this.chatClient chatClientBuilder.build();}GetMapping(/chat)public String generate(RequestParam(value message) String message) {log.info(Generating response);// 调用 ChatClient 的 prompt 方法生成响应// 1. prompt(message): 创建一个包含用户输入消息的 Prompt 对象// 2. call(): 调用 ChatClient 与 AI 模型交互以获取响应// 3. content(): 提取响应的内容部分return chatClient.prompt(message).call().content();}}在运行时你可以通过在 Prompt 调用中添加新的、针对请求的选项来覆盖默认配置。例如要为特定请求覆盖默认模型和温度可以这样实现
ChatResponse response chatModel.call(new Prompt(Generate the names of 5 famous pirates.,OpenAiChatOptions.builder().withModel(deepseek-chat).withTemperature(0.4).build()));本地化部署
如果想要把 DeepSeek 部署在内网服务器或者你想在本地跑个小模型可以采用这种方式来在本地部署一个 DeepSeek R1 蒸馏版。
1、从官方网站下载并安装 Ollamahttps://ollama.com
Ollama 可以让你轻松在自己的电脑上运行各种强大的 AI 模型就像运行普通软件一样简单。
2、通过 Ollama 拉取 DeepSeek 模型
ollama pull deepseek-r1:1.5b
ollama list deepseek更多版本可以在这里查看https://ollama.com/library/deepseek-r1 。 3、添加依赖
dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-ollama-spring-boot-starter/artifactIdversion0.8.1/version
/dependency4、修改配置
spring:ai:ollama:base-url: http://localhost:11434chat:model: deepseek-r1:1.5b # 与本地模型名称对应4、在代码中调用
RestController
RequestMapping(/ai)
public class ChatController {private final ChatClient chatClient;// 构造方法注入 ChatClient.Builder用于构建 ChatClient 实例public ChatController(ChatClient.Builder chatClient) {this.chatClient chatClient.build();}GetMapping(/chat)public ResponseEntityFluxString chat(RequestParam(value message) String message) {try {// 调用 ChatClient 生成响应并以 FluxString响应流形式返回FluxString response chatClient.prompt(message).stream().content();return ResponseEntity.ok(response);} catch (Exception e) {return ResponseEntity.badRequest().build();}}
}Spring Cloud Alibaba AI 中也支持这种方式并且官网上提供了详细的方法https://java2ai.com/blog/spring-ai-alibaba-ollama-deepseek/ 。 总结
这篇文章主要介绍了 Spring AI 以及如何通过 Spring AI 集成 DeepSeek
伪装成 OpenAI: DeepSeek 可以假装自己是 OpenAI直接用 Spring AI 的 OpenAI starter 就行改改配置就好就像换个链接一样简单。本地部署: 如果你想把 DeepSeek 放在自己服务器上或者想在电脑上跑个小模型玩玩可以用 Ollama。先下载 Ollama再下载 DeepSeek 模型然后用 Spring AI 的 Ollama starter也超级简单。Spring Cloud Alibaba AI 也支持这种玩法官网有教程。