讲师中心 微信公众号
AI工具推荐 视频效率加速

DeepSeek与Spring AI框架的集成开发教程

老浩小哥_1690

老浩小哥_1690

发布时间:2026-05-14 23:20:49

|

359人浏览过

|

来源于php中文网

原创

Spring AI 官方不提供 DeepSeek 的开箱即用 starter,需手动实现 ChatModel 接口并用 WebClient 对接其 OpenAI 兼容 API;配置须避免使用无效的 spring.ai.providers.deepseek 前缀,而应通过环境变量或自定义配置注入 API Key。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

deepseek与spring ai框架的集成开发教程

Spring AI 官方目前不提供 deepseek-spring-adapter 或 spring-ai-deepseek 这类开箱即用的 starter 模块。所有声称“Spring AI 原生支持 DeepSeek”的教程,实际都依赖手动适配或第三方非官方封装——这点必须先说清,否则后续踩坑全是配置失效、Bean 注入失败、AiClient 调不通。

为什么 Spring AI 的 AiClient 不能直接调用 DeepSeek API

Spring AI 的标准流程是:通过 Provider 抽象层 + ChatModel 实现类完成模型调用。但截至 2026 年 5 月,org.springframework.ai 官方 Maven 仓库中仍无 deepseek 相关 artifact(查证坐标 org.springframework.ai:spring-ai-deepseek 返回 404)。它只原生支持 OpenAI、Azure OpenAI、Ollama、Google Gemini 等少数几家。

这意味着你无法靠加一个 dependency 就自动注册 DeepSeekChatModel Bean;也不能用 @Autowired private ChatModel chatModel; 直接拿到能跑 deepseek-chat-7b 的实例。

常见错误现象:

  • Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.ai.chat.ChatModel' available
  • 配置了 spring.ai.providers.deepseek.api-key,但启动时完全无日志、无报错、也无对应 Bean 初始化
  • 强行写 new DeepSeekChatModel(...) 却发现类根本不存在(IDE 提示 unresolved reference)

用 RestTemplate 或 WebClient 手动对接 DeepSeek API 是最稳路径

DeepSeek 官方 API(https://api.deepseek.com/v1/chat/completions)完全兼容 OpenAI 格式,这是关键突破口。你可以复用 Spring AI 中已有的 OpenAiChatModel 结构逻辑,但底层换掉 HTTP 客户端目标地址和认证头。

实操建议:

  • 不要试图魔改 spring-ai-openai 的源码去“硬塞” DeepSeek;它绑定了 openai.* 配置前缀和特定的 error 解析逻辑,改起来成本高且易崩
  • 新建一个 DeepSeekChatModel 类,实现 ChatModel 接口,内部用 WebClient 发起 POST 请求
  • 请求头必须带 Authorization: Bearer ${DEEPSEEK_API_KEY},不是 Api-Key 也不是其他变体
  • 请求体 JSON 结构与 OpenAI 兼容,但 model 字段必须填 deepseek-chat-7b 或 deepseek-v3.2-think(注意大小写和连字符)
  • 响应体中 choices[0].message.content 是你要提取的文本,别漏掉 [0] 下标

示例片段(简化版):

public class DeepSeekChatModel implements ChatModel {
    private final WebClient webClient;
    private final String apiKey;
    private final String model;
<pre class="brush:php;toolbar:false;">public DeepSeekChatModel(WebClient.Builder builder, String apiKey, String model) {
    this.webClient = builder.baseUrl("https://api.deepseek.com/v1").build();
    this.apiKey = apiKey;
    this.model = model;
}

@Override
public ChatResponse call(ChatRequest request) {
    var body = Map.of(
        "model", model,
        "messages", request.getMessages().stream()
            .map(m -> Map.of("role", m.getRole().toString(), "content", m.getContent()))
            .toList()
    );

    return webClient.post()
        .uri("/chat/completions")
        .header("Authorization", "Bearer " + apiKey)
        .bodyValue(body)
        .retrieve()
        .bodyToMono(JsonNode.class)
        .blockOptional()
        .map(this::parseResponse)
        .orElseThrow(() -> new RuntimeException("DeepSeek API returned no response"));
}

}

Images & videos generation with Gemini 3 Pro Image + Qwen Wan 2.6 (video) via one API key
Images & videos generation with Gemini 3 Pro Image + Qwen Wan 2.6 (video) via one API key

使用AIsa生成图像与视频。仅需一个API密钥即可调用Gemini 3 Pro Image(图像)和Qwen Wan 2.6(视频)。

下载

application.yml 里哪些配置项真有用,哪些是摆设

Spring Boot 启动时会加载所有 spring.* 开头的配置,但 Spring AI 不识别 deepseek.* 自定义前缀。所以以下写法无效:

deepseek:
  api-key: sk-xxx
  endpoint: https://api.deepseek.com/v1

真正该做的只有两件事:

  • 把 DEEPSEEK_API_KEY 设为环境变量(推荐),或在 application.yml 顶层写 deepseek-api-key: ${DEEPSEEK_API_KEY:default_key}
  • 在 @Configuration 类中用 @Value("${deepseek-api-key}") 注入,再传给你的 DeepSeekChatModel 构造器
  • timeout 和 retry 需自己在 WebClient 构建时配,例如 .codecs(c -> c.defaultCodecs().maxInMemorySize(10 * 1024 * 1024)) 防大响应体 OOM

别在 spring.ai.providers 下硬凑 deepseek 块——它不会被扫描,也不会触发任何自动配置。

本地部署 deepseek-r1 时,device 和 precision 参数怎么选

如果你走的是本地加载模型路线(比如用 transformers + llama.cpp 封装的 HTTP 服务),那 Spring AI 更是完全不感知。此时你面对的只是一个普通 REST 接口。

关键点在于硬件适配:

  • 显卡显存 ≥ 12GB:可设 device="cuda:0" + precision="bf16",吞吐最优
  • 显存 6–8GB:必须量化到 q4_k_m 或更低,且 device="cuda:0" + precision="fp16",否则 OOM
  • 仅 CPU:用 device="cpu",但 deepseek-r1 7B 推理延迟常超 10s/词,生产慎用
  • 无论哪种,都要在启动脚本里显式 export HF_HOME=/path/to/hf/cache,避免每次拉取模型权重

Spring AI 的 ModelOptions 在这种场景下毫无意义——它只对内置 provider 生效。你得自己控制请求体里的 temperature、max_tokens 字段。

真正的难点从来不在“怎么写通”,而在于“怎么让 retry 不重复扣 quota”、“怎么把 streaming 响应正确转成 SSE 给前端”、“怎么在 ChatResponse 中保留原始 usage 字段供计费”。这些 Spring AI 不管,但业务系统绕不开。

相关文章

AI工具
AI工具

AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型,支持联网搜索。

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
DeepSeek官方入口
DeepSeek官方入口

DeepSeek,一个综合性的搜索引擎,提供来自学术数据库、新闻网站和社交媒体的广泛结果。访问 DeepSeek 的官方网站。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

38529

2025.02.17

deepseek在线提问
deepseek在线提问

本合集汇总了DeepSeek在线提问技巧与免登录使用入口,助你快速上手AI对话、写作、分析等功能。阅读专题下面的文章了解更多详细内容。

1129

2026.02.27

DeepSeek 入门与快速上手指南
DeepSeek 入门与快速上手指南

面向 AI 工具新手,从 DeepSeek 的账号注册、网页端与客户端使用讲起,介绍 DeepSeek-V3、DeepSeek-R1 等模型的能力定位与选择建议、对话提示词(Prompt)编写技巧、深度思考模式与联网搜索功能的使用场景、API Key 申请与首次接口调用流程,帮助用户快速上手 DeepSeek 并将其融入日常工作与学习。

2269

2026.05.12

DeepSeek API开发与应用集成教程合集
DeepSeek API开发与应用集成教程合集

系统讲解 DeepSeek 开放平台 API 的开发与集成方法,涵盖 API Key 鉴权与请求签名、Chat Completions 接口参数详解(temperature/top_p/max_tokens)、多轮对话上下文管理、流式输出(SSE Streaming)的前后端实现、Function Call 函数调用与外部工具对接、Embeddings 文本向量接口的使用、Python requests / openai SDK / J

351

2026.05.12

DeepSeek 提示词工程与高效使用教程合集
DeepSeek 提示词工程与高效使用教程合集

聚焦如何通过提示词工程充分发挥 DeepSeek 的能力上限,涵盖基础 Prompt 结构(角色/任务/格式/约束)设计、System Prompt 系统指令的最佳实践、Few-shot 示例引导与 Zero-shot 直接提问的场景选择、思维链(Chain of Thought)逐步推理引导、复杂任务的分步拆解策略、输出格式控制(JSON/Markdown/表格)、避免幻觉与提升准确率的约束技巧、DeepSeek-R1 深度推理模式的

427

2026.05.12

DeepSeek本地部署与私有化方案
DeepSeek本地部署与私有化方案

面向有数据隐私需求的开发者与企业,讲解 DeepSeek 开源模型的本地化部署方案,涵盖 DeepSeek-R1 各蒸馏版本(1.5B/7B/8B/14B/32B/70B)的硬件需求与能力对比、Ollama 一键本地运行与模型管理、vLLM 高性能推理服务部署、llama.cpp 量化推理(GGUF 格式/Q4/Q8 量化)在消费级显卡上的实践、Hugging Face Transformers 加载与微调、Docker 容器化部署、多

282

2026.05.12

DeepSeek行业应用场景实战
DeepSeek行业应用场景实战

以实际业务场景为导向,展示 DeepSeek 在不同行业中的落地应用方案,涵盖代码开发辅助(代码生成/审查/重构/单元测试编写)、长文写作与内容创作(报告/文案/论文大纲)、Excel 数据分析与可视化建议、智能客服机器人搭建(意图识别/多轮对话/知识库检索)、RAG 检索增强生成实现企业知识库问答、合同与法律文本审查、教育领域个性化辅导,帮助用户将 DeepSeek 转化为切实的生产力工具。

472

2026.05.12

DeepSeek 与主流 AI 大模型对比评测
DeepSeek 与主流 AI 大模型对比评测

从多个维度对 DeepSeek 与市场主流大语言模型进行客观对比,涵盖模型参数规模与架构差异(MoE 混合专家架构)、中文理解与生成能力对比、英文与多语言表现、数学推理与代码能力基准评测(MMLU/HumanEval/GSM8K)、长文本处理与上下文窗口对比、API 定价与性价比分析、响应速度与并发能力、开源生态与私有化部署灵活性,帮助用户根据自身需求在 DeepSeek、ChatGPT、Claude、Gemini、Llama 等模型中

225

2026.05.12

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

80

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
腾讯元宝使用手册
腾讯元宝使用手册

共0课时 | 0人学习

DeepSeek手册
DeepSeek手册

共0课时 | 0人学习

零基础精通 PS 视频教程
零基础精通 PS 视频教程

共268课时 | 119.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn