30分钟实现自己的AI聊天机器人:SpringBoot接入DeepSeek API
前言
刚开始学习AI的时候。
我和很多Java开发一样。
每天都在看:
- Agent
- RAG
- Workflow
- MCP
越看越焦虑。
感觉每个概念都很复杂。
直到后来我才发现。
自己走错了方向。
对于传统开发来说。
学习AI最好的方式不是先研究各种框架。
而是先做出一个真正能运行的AI应用。
而AI应用里最简单的是什么?
答案就是:
聊天机器人。
这一篇文章。
我就分享一下当时是如何用SpringBoot在30分钟内实现自己的第一个AI聊天机器人的。
AI聊天机器人的本质是什么
很多人第一次接触AI的时候。
会觉得:
ChatGPT太神奇了
其实从开发角度看。
一个聊天机器人本质上只有三部分:
用户问题↓Prompt↓大模型↓返回答案
说白了。
就是一次HTTP请求。
所以不要被AI吓到。
先把它当成一个普通接口服务。
很多东西反而更容易理解。
为什么不直接用网页版DeepSeek?
很多人可能会问:
既然网页版已经能聊天。
为什么还要调用API?
原因很简单。
网页版是给人使用的。
API是给程序使用的。
只有通过API。
才能:
- 集成到自己的系统
- 开发AI助手
- 实现RAG知识库
- 实现Agent
- 实现Workflow
后面所有AI应用开发能力。
几乎都是建立在API调用之上的。
所以学会调用API。
就是传统开发者进入AI开发的第一步。
准备工作:获取你的第一个大模型API
在开始写代码之前。
首先需要一个能够调用的大模型。
目前国内外主流平台都提供开放API,例如:
- DeepSeek
- 阿里百炼
- OpenAI
- 智谱AI
这里我使用的是 DeepSeek。
原因很简单:
便宜。
对于学习阶段来说完全够用。
注册地址:(链接)
注册完成后:
1、充值(10元足够练习很久)
2、创建API Key
3、保存生成的sk开头密钥
这里要特别注意:
千万不要提交到GitHub或者上传到公开仓库。
否则别人调用消耗的是你的余额。
创建完成后。
就可以开始编写代码了。
创建过程如下:
这里要特别注意:
最后附上DeepSeek的接口文档地址(链接)
代码实现
请求流程
其实整个AI聊天机器人本质上就是一次HTTP调用。
理解了这一点。
后面学习Spring AI、Agent、RAG都会轻松很多。
前端页面↓Controller↓ChatService↓DeepSeek API↓返回结果
业务代码
项目中调用,这里以Java为例,Python等其他语言同理。这里先用Http RestTemplate方式调用。是不是很熟悉呢。
完整代码我会同步上传到 GitHub。 后续 Spring AI、RAG、Agent 相关代码也会持续更新。
GitHub地址: (仓库地址)
private static final String DEEPSEEK_URL = "https://api.deepseek.com/chat/completions";private static final String SYSTEM_PROMPT = "你是一个AI助手";private final RestTemplate restTemplate;private final String apiKey;/** 会话 id -> 该会话的 messages 历史(第一条固定为 system) */private final ConcurrentHashMap<String, List<ChatMessage>> conversations = new ConcurrentHashMap<>();public ChatConversationService(RestTemplate restTemplate, @Value("${deepseek.api-key}") String apiKey) {this.restTemplate = restTemplate;this.apiKey = apiKey.strip();}public ChatResponse chat(String conversationId, String userMessage) {//处理会话ID(可忽略)String convId = (conversationId == null || conversationId.isBlank())? UUID.randomUUID().toString(): conversationId.trim();//如果get(id)的值不存在,则把新list封装后返回,否则直接返回list (可忽略)List<ChatMessage> history = conversations.computeIfAbsent(convId, id -> { List<ChatMessage> list = new ArrayList<>(); list.add(new ChatMessage("system", SYSTEM_PROMPT)); return list;});synchronized (history) { history.add(new ChatMessage("user", userMessage)); DeepSeekChatRequest body = new DeepSeekChatRequest(); body.setModel("deepseek-v4-flash"); body.setMessages(new ArrayList<>(history)); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.setBearerAuth(apiKey); HttpEntity<DeepSeekChatRequest> entity = new HttpEntity<>(body, headers);//http调用大模型接口 DeepSeekChatResponse apiResponse = restTemplate.postForObject( DEEPSEEK_URL, entity, DeepSeekChatResponse.class ); String reply = ""; if (apiResponse != null && apiResponse.getChoices() != null && !apiResponse.getChoices().isEmpty() && apiResponse.getChoices().get(0).getMessage() != null) {String content = apiResponse.getChoices().get(0).getMessage().getContent();reply = content != null ? content : ""; } history.add(new ChatMessage("assistant", reply)); return new ChatResponse(reply, convId);}}
其实整个流程总结下来只有三步:
用户问题↓组装Message↓HTTP调用大模型↓返回答案
这也是后面所有AI应用的基础。
包括:
- Spring AI
- LangChain4j
- Agent
- RAG
本质上都建立在这个流程之上。
运行结果
启动项目后。
发送请求:
返回:
因为我增加了会话ID的设置,系统保存了历史消息。
所以第二次提问:
模型依然能够结合上下文回答。
这也是最简单的会话记忆实现方式(这一步也可以忽略,后面会详细讲大模型记忆机制
)。
第一个版本为什么不用Spring AI
很多人看到这里可能会问:
为什么不用Spring AI?
原因很简单。
学习任何新技术。
第一步都应该先理解底层原理。
如果一上来就使用框架:
chatClient.prompt() .user(question).call()
虽然很方便。
但很难理解:
- Message是什么
- Prompt是什么
- Token是什么
- 请求到底发给了谁
所以我的第一版故意选择:
RestTemplate + HTTP
直接调用模型接口。
先把整个流程跑通。
之后再引入Spring AI。
这样学习效率反而更高。
写在最后
做到这里。
其实你已经完成了自己的第一个AI应用。
虽然它还很简单。
但已经具备了:
- 会话能力
- Prompt能力
- 大模型调用能力
而这也是后面所有AI项目的基础。
很多人做到这里会产生一个错觉:
AI开发好像也没那么难
事实上。
你只是刚刚完成了:
AI开发 = Hello World
接下来真正的学习路线通常是:
聊天机器人↓Spring AI↓流式输出(SSE)↓会话记忆↓Function Calling↓RAG知识库↓Agent↓Workflow↓企业级AI应用
而我接下来也会按照自己的学习路径。
把这些内容一步步记录下来。
-
07.10
无双“K神”降临「实况足球」!
-
07.10
2026超级联赛夏季赛开启报名
-
07.10
疯狂集装箱好不好玩 疯狂集装箱玩法简介
-
07.10
灵宠秘典好玩吗 灵宠秘典玩法介绍
-
07.10
《Zeverland》画风宛如 Funko Pop 内核实则阴暗沉重 丧尸生存游戏 | IGN 前瞻
-
07.10
赞达亚饰演的契妮是让沙丘3如此令人期待的关键变量
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏