首页 > 教程攻略 > ai教程 >30分钟实现自己的AI聊天机器人(SpringBoot接入DeepSeek API)

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

来源:互联网 时间:2026-07-10 07:27:07

前言

刚开始接触AI那会儿,说实话,我和不少Ja va开发者差不多。每天看到的都是

Agent

RAG

Workflow

MCP

这些概念,越看越焦虑,总觉得每个都高深莫测。

直到后来才想明白:自己一开始就走错了方向。

学AI,尤其对传统开发来说,最好的路径不是先啃框架,而是先亲手做出一个能跑的AI应用。

那AI应用里最简单的切入点是什么?答案再明显不过——

聊天机器人

下面就来复盘一下,当时是怎么用SpringBoot在30分钟内,跑通第一个AI聊天机器人的。

AI聊天机器人,到底是个啥?

很多人第一次接触这类工具时,第一反应往往是:“ChatGPT太神奇了!”

但从纯开发视角来看,

聊天机器人本质上就三个环节

:用户问题 → 构造提示词 → 大模型处理 → 返回结果。

说白了,它其实就是一次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或公开仓库里,不然别人调用,花的可都是你的钱。

创建过程大致如下:

创建API Key的截图

保存密钥的截图

代码实现

请求流程

整个聊天机器人的核心,其实就是一次HTTP调用。明白这一点,后面再学Spring AI、Agent、RAG,都会轻松不少。

前端页面 → Controller → ChatService → DeepSeek API → 返回结果

业务代码

这里用Ja va来示范,Python、Go等其他语言道理都一样。先直接用RestTemplate调,是不是感觉特别熟悉?

完整代码会同步到仓库,后续Spring AI、RAG、Agent相关代码也会持续更新。

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> 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 history = conversations.computeIfAbsent(convId, id -> {
        List 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 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应用

接下来也会按照这条路径,把这些内容一步步记录下来。欢迎持续关注。