详情

首页手游攻略 30分钟实现自己的AI聊天机器人:SpringBoot接入DeepSeek API

30分钟实现自己的AI聊天机器人:SpringBoot接入DeepSeek API

佚名 2026-07-10 10:02:51

前言

刚开始学习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 CallingRAG知识库↓AgentWorkflow↓企业级AI应用

而我接下来也会按照自己的学习路径。

把这些内容一步步记录下来。

相关资讯
点击查看更多
游戏推荐
推荐专题
热门阅读
推荐下载