一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

AI 应用开发第一步:用 Spring Boot 接入 DeepSeek

时间:2026-09-15 08:06:01 编辑:袖梨 来源:一聚教程网

对 Java 开发者而言,进入 AI 应用开发并不一定要先研究模型训练。更直接的起点,是把大模型视为一种可通过 HTTP 调用的外部能力:由 Spring Boot 组织提示词和上下文,请求 DeepSeek API,再将生成结果返回给业务端。沿着这条链路,也能逐步理解应用层最常见的几个核心概念。

AI 应用开发 Day 1:从 Spring Boot 调用 DeepSeek 开始

最近开始系统学习 AI 应用开发。

作为一个有多年 Java + React 开发经验的程序员,我并不打算走模型训练、算法研究路线,而是希望成为能够将大模型能力集成到企业系统中的 AI 应用工程师。

因此 Day 1 的目标非常明确:

跑通 Spring Boot 调用大模型 API,理解 AI 应用开发最核心的几个概念。


今日目标

实现下面这条链路:

Postman
    ↓
Spring Boot
    ↓
DeepSeek API
    ↓
返回模型回答

同时理解以下几个核心概念:

  • LLM
  • Token
  • Context
  • Prompt
  • Structured Output

什么是 LLM?

LLM(Large Language Model,大语言模型)本质上是一个根据上下文预测下一个 Token 的模型。

它通过海量文本训练后,具备了理解和生成自然语言的能力。

对于应用开发者来说,我们更多是通过 API 调用大模型,实现:

  • 智能问答
  • 内容生成
  • 数据分析
  • 工作流自动化

而不是自己训练模型。

从工程角度理解,可以把它看成:

String answer = llm.generate(context);

什么是 Token?

Token 是模型处理文本的最小单位。

它不一定等于一个字符,也不一定等于一个单词。

例如:

你好,我是Java程序员

可能被拆分为多个 Token。

对于开发者来说,Token 主要影响:

  • API 调用成本
  • 上下文长度
  • 响应速度

因此实际项目中需要关注:

  • Prompt 是否过长
  • 历史消息是否过多
  • Token 是否超出模型限制

什么是 Context?

Context(上下文)是模型当前能够看到的全部信息。

通常包括:

  • System Prompt
  • 历史对话
  • 当前用户问题
  • RAG 检索结果
  • Tool 调用结果

例如:

[  {    "role": "system",    "content": "你是Java架构师"  },  {    "role": "user",    "content": "什么是Spring Boot"  },  {    "role": "assistant",    "content": "Spring Boot是..."  },  {    "role": "user",    "content": "它和Spring有什么区别"  }]

这整个消息数组就是 Context。

AI 能够进行多轮对话,并不是因为它真的记住了用户,而是因为每次请求都会把相关历史消息重新发送给模型。


什么是 Prompt?

Prompt 就是给模型的指令。

例如:

你是一位资深Java架构师。

请用初学者能够理解的方式回答问题。

这就是一个 Prompt。

Prompt 会影响:

  • 回答风格
  • 回答长度
  • 回答格式
  • 回答角色

在企业项目中:

  • 客服助手
  • 销售助手
  • ERP助手
  • MES助手

本质上都是:

Prompt
+
业务数据

System Prompt 和 User Prompt 的区别

System Prompt:

你是Java架构师

用于定义模型角色和行为规则。

User Prompt:

什么是Redis?

用于表达用户当前需求。

通常情况下:

System Prompt
优先级
>
User Prompt

因此企业项目经常使用 System Prompt 固定模型身份。

例如:

  • 客服助手
  • 企业知识库助手
  • 销售顾问助手

等等。


什么是 Structured Output?

Structured Output 指让模型按照固定的数据结构返回结果。

最常见的是 JSON。

普通回答:

上海是中国最大的经济中心...

程序难以处理。

更好的方式:

{
  "city": "上海",
  "population": 2480,
  "level": "直辖市"
}

这样程序就可以直接解析。

在以下场景中非常常见:

  • AI报表
  • Agent
  • Tool Calling
  • 工作流系统
  • 企业知识库

五个概念之间的关系

可以用下面这张图理解:

用户问题
    ↓
Prompt
    ↓
Context
    ↓
LLM
    ↓
生成Token
    ↓
输出结果

实战:Spring Boot 调用 DeepSeek

Day 1 的重点不是研究模型原理,而是亲手调用一次大模型接口。

项目结构:

ai-learning
├── controller
├── service
├── dto
└── config

实现接口:

POST /api/chat

请求:

{
  "message":"什么是Redis"
}

服务端:

Controller
    ↓
Service
    ↓
DeepSeek API
    ↓
返回结果

最终成功返回:

{
  "answer":"Redis是一种基于内存的高性能Key-Value数据库..."
}

至此,完成了从 Spring Boot 到大模型 API 的完整调用链路。


为什么 AI Chat 本质上是一次 HTTP API 调用?

这是今天最大的收获。

AI 应用开发中,大模型通常通过 HTTP API 的形式提供服务。

客户端将 Prompt 和 Context 组织成 messages 发送给模型。

模型根据上下文生成 Token,并返回结果。

因此从工程角度看:

AI Chat 本质上就是一次特殊的 HTTP API 调用。

与普通接口最大的区别只是:

普通接口返回业务数据。

例如:

{
  "temperature": 30
}

而 AI 接口返回模型生成内容:

{
  "answer":"Redis是一种基于内存的数据库..."
}

Day 1 总结

今天完成了:

  • 理解 LLM
  • 理解 Token
  • 理解 Context
  • 理解 Prompt
  • 理解 Structured Output
  • 获取 DeepSeek API Key
  • Spring Boot 调用 DeepSeek API
  • 成功返回模型回答

从今天开始,AI 对我来说不再是一个神秘的黑盒。

它首先是:

HTTP API

其次才是:

Prompt
+
Context
+
LLM

下一步计划学习:

Spring Boot
    ↓
SSE
    ↓
Streaming
    ↓
React Chat UI

实现类似 ChatGPT 的逐字输出效果。

热门栏目