三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Java 程序员 2 天入门 AI 应用开发——8 个 Demo 全过程

Java 程序员 2 天入门 AI 应用开发——8 个 Demo 全过程

一句话:从"连怎么把 AI 用到项目都不知道",到 8 个能跑的 Demo,只用了 2 天。
这篇不是教程合集,是我真实的实战记录——包括踩过的坑、心理障碍、和那些视频里学不到的 Debug 经验。

写在前面

我是一个 Java 程序员,工作多年,最近想转 AI 应用开发。

我踩过的坑你可能正在踩:

  • 看了一堆 B 站教程,依然不知道怎么下手
  • 总觉得"我 Java 基础不行,要先补基础再学 AI"
  • 担心"AI 是不是黑盒,看不懂学不会"
  • 收藏夹里全是"AI 学习路线",但没一个走完

这篇文章,就是我用 2 天时间 走完的真实路径。仅作为个人学习记录,不做参考。整个学习过程都是和AI对话完成的。

我的认知误区(先打破这些)

误区 1:LLM 是黑盒

错。LLM 就是一个通过 HTTP 调用的、超级聪明的 Bean。

你发一个 JSON 请求,它返回一个 JSON 响应。跟你调任何 REST 接口没区别。理解这一点,AI 就不神秘了。

误区 2:要先看半年视频才能动手

错。看视频是"伪产出"——大脑觉得"我在学",其实只是消费内容。

正确的方式:找一个最小目标,立刻动手。我第一天用 2 小时跑通了第一个 LLM 调用,这一步比看 10 小时视频都管用。

误区 3:Java 基础不行要先补

错。你不需要精通所有 Java API 才能学 AI。比如HttpURLConnection这种反人类 API,工作 5 年的老兵也记不清——它不是你基础差,是它本来就不该学。

正确策略:边做 AI 项目,遇到不懂的 Java 知识当场查。这样学到的是"活"的知识,因为马上用,所以记得住。

我的学习路径(5 大模式)

AI 应用的核心,逃不出这 5 个模式:

1. **API 调用 — 一切 AI 应用的起点** 2. **多轮对话 — 客服、助手类应用的基础** 3. **Function Calling — 让 AI 能"干活",Agent 的基石** 4. **ReAct Agent — 自主智能体(思考-行动-观察循环)** 5. **RAG — 给 AI 喂资料,企业知识库的核心**

我把每个模式都做了一个最小可运行的 Java Demo,全部在 gitee.com/Aurora_9876…

下面挑几个关键的讲讲。

Demo 1:调通 LLM API(半小时入门)

第一关的目标:让 Java 程序调一次智谱 GLM 的 API,输出一句话。

关键认知:LLM 调用就是 HTTP POST。

String requestBody = "{" + "/"model/":/"glm-4-flash/"," + "/"messages/":[{/"role/":/"user/",/"content/":/"你好/"}]" + "}"; HttpURLConnection conn = (HttpURLConnection) new URL(API_URL).openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Authorization", "Bearer " + apiKey); conn.setRequestProperty("Content-Type", "application/json"); conn.setDoOutput(true); try (OutputStream os = conn.getOutputStream()) { os.write(requestBody.getBytes(StandardCharsets.UTF_8)); } // ↓↓↓ 注意这里!HttpURLConnection 是"懒执行" // 真正的 HTTP 请求是在 getResponseCode() 时才发出去 int code = conn.getResponseCode();
这里有个反直觉的坑

HttpURLConnection是懒执行的——你设置请求方法、写请求体,都不会立即发送。真正的请求是在调用getResponseCode()getInputStream()时才发出。

就像写信:写完所有内容,最后投进邮筒才寄出。

这个 API 反人类到什么程度?工作多年的 Java 老兵也经常记不清。真实项目里没人用它,都用 OkHttp 或 Spring 的 RestTemplate。所以你不懂它,不是基础差,是它本来就不该学。

Demo 2:多轮对话(理解 messages 数组)

第二关的关键认知:LLM 本身是无记忆的。它能"记住"上下文,是因为你每次都把历史一起发了过去。

List<String> messages = new ArrayList<>(); messages.add("{/"role/":/"system/",/"content/":/"你是技术导师/"}"); messages.add("{/"role/":/"user/",/"content/":/"我叫张三/"}"); // 用户再问"我刚才说我叫什么" messages.add("{/"role/":/"user/",/"content/":/"我刚才说我叫什么?/"}"); // 把整个 messages 历史发给 LLM String body = "{/"model/":/"glm-4-flash/",/"messages/":" + messages + "}";

role有三种:

  • system— 给 AI 设定人设和规则
  • user— 你的提问
  • assistant— AI 之前的回答

每次对话,你都要把整段历史一起发——这就是 Token 消耗会随对话变长而增长 的原因。

Demo 3:Function Calling(让 AI 能干活)

到这一关,AI 不再只会"说话",还能调用你写的 Java 方法。

场景:用户问"北京天气怎么样",AI 不会瞎编,而是告诉你"我想调 getWeather 这个方法",你的代码执行后返回真实数据,AI 再基于数据回答。

// 1. 你告诉 LLM 有哪些工具可用(JSON Schema 格式) String tools = "[{/"type/":/"function/",/"function/":{" + "/"name/":/"getWeather/"," + "/"description/":/"查询城市天气/"," + "/"parameters/":{...}" + "}}]"; // 2. LLM 返回的不是答案,而是工具调用意图 // {"tool_calls":[{"function":{"name":"getWeather","arguments":"{/"city/":/"北京/"}"}}]} // 3. 你的 Java 代码真正执行这个方法 String result = getWeather("北京"); // "晴 28℃" // 4. 把工具结果回传给 LLM,它再生成最终答案
关键认知

AI 自己不会执行任何代码! 它只返回 JSON 告诉你"我想调这个函数"。真正执行的还是你的 Java 代码。这就是为什么 AI 是安全的——能力边界由你定义。

Demo 4:ReAct Agent(自主多步规划)

ReAct = Reason + Act。这是当下 Agent 的核心模式。

之前的 Function Calling 是"问一次→调一次→答"。真 Agent 能:

  • 调完一个工具看结果,再决定下一步
  • 并行/串行调用多个工具
  • 自主拆解复杂问题
// ReAct 循环(简化版) for (int round = 1; round <= MAX_ROUNDS; round++) { String response = callLLM(messages); if (!response.contains("tool_calls")) { // 不调工具 = 最终答案 return extractAnswer(response); } // 解析并执行所有工具调用 for (ToolCall call : parseToolCalls(response)) { String result = executeTool(call); messages.add(toolResultMessage(result)); } // 循环继续——LLM 看到工具结果后再决定下一步 }

问"北京和上海哪里更热?",AI 自己决定:

  1. 调 getWeather(“北京”) → 28℃

  2. 调 getWeather(“上海”) → 30℃

  3. 比较:上海更热

这就是 AI 的"智能"——本质是循环 + 工具组合。

Demo 5:RAG(给 AI 喂资料)

RAG = Retrieval Augmented Generation(检索增强生成)。

这是企业 AI 应用的头号场景——客服、知识库、文档问答,70% 都建立在这上面。

准备阶段(一次性): 文档 → 切块 → 每块生成向量 → 存向量库 查询阶段(每次提问): 用户问题 → 生成向量 → 找最相似的几块 → 拼 Prompt → LLM 回答

为什么需要向量? 因为关键词搜索太弱。用户问"公司体检怎么样",但文档里写的是"年度体检",关键词匹配不到。向量检索能基于语义匹配——"体检"和"年度体检"在向量空间里是相近的。

代码太多就不贴了,仓库里有完整版。

视频里学不到的:真实 Debug 经验

这部分我觉得是最有价值的,因为这些经验只能靠踩坑获得。

经验 1:从报错反推 API 规范

调智谱的 Function Calling 时,我遇到:

tools[0].type:type cannot be empty

我不慌,直接拆字段:

  • tools[0]→ 数组第 0 个元素
  • .type→ 缺 type 字段
  • cannot be empty→ 不能为空

反推出:每个 tool 需要带"type":"function"。改完就通了。

这是程序员最重要的能力:从报错反推 API 规范。比看视频有效 100 倍。

经验 2:嵌套 JSON 字符串的解析陷阱

智谱返回的 tool_calls 里,arguments 是个被转义的 JSON 字符串:

"arguments":"{/"city/": /"北京/"}"

注意里面的/"(转义引号)和冒号后的空格。我用普通的字符串查找("city":")匹配不到——因为实际是"city": "(带空格)。

解决:先.replace("///"", "/"")还原,再容忍冒号后空格。

这种坑,看视频是学不到的。只有亲手踩过才记得住。

经验 3:Java 版本和框架版本必须匹配

引入 LangChain4j 后报错:

类文件具有错误的版本 61.0, 应为 52.0

61.0= Java 17 编译,52.0= Java 8。

原来 LangChain4j 1.0+ 要求 Java 17,而我是 Java 8。要么升级 Java,要么降级框架。我选了降级到 0.35.0(最后支持 Java 8 的版本)。

真实工程的常态:版本兼容性、API 大版本间变化、依赖冲突——这些都是看视频学不到的。

经验 4:OpenAI 兼容接口是事实标准

我学了 3 家厂商的 API:智谱、阿里通义、SiliconFlow。它们的接口格式都模仿 OpenAI。

好处:换厂商只改 URL 和 Key,业务代码不动。这是工业级 AI 应用的常态——不同任务用不同厂商的最优模型。我现在的架构:

  • 聊天:智谱 glm-4-flash(免费)
  • Embedding:阿里通义(免费额度)

方法论反思(最珍贵的部分)

写到这里,我意识到比代码更重要的是学习方法的成长。

打破"必须先看视频"

我以前的习惯是:找一个教程,从头看到尾,看完才动手。

结果是:看完就忘,因为大脑把它当"内容消费"而非"学习"。

这次我反着来:先动手,遇到问题再查资料。2 天走完了过去 3 个月没走完的路。

输出倒逼输入

写这篇博客本身就是一次"输出倒逼输入"——为了讲清楚 ReAct 循环,我必须真正理解它。教是最好的学。

所以我建议每个学 AI 的人:边学边写博客,哪怕只有 100 个人看。

你的 Java 经验是优势,不是包袱

很多人觉得转 AI 要先学 Python。不一定。

Java 生态有 LangChain4j 和 Spring AI,足够你做出 90% 的 AI 应用。你的 Java 工程经验(项目结构、依赖管理、调试能力)直接复用,比从零学 Python 高效得多。

我的下一步

  1. 把 8 个 Demo 整理成可演示的项目,推到 GitHub

  2. 做一个真正的"个人知识库助手"(基于 RAG + Spring Boot)

  3. 学 MCP(Model Context Protocol)和进阶 Agent 模式

资源汇总

我学过程中用到的真实资源(不是广告,不是推荐列表):

模型服务
  • 智谱 GLM(聊天):open.bigmodel.cn/ —— glm-4-flash 免费
  • 阿里通义 DashScope(Embedding):bailian.console.aliyun.com/ —— 有免费额度
学习资料
  • LangChain4j 官方文档:docs.langchain4j.dev/
  • Anthropic Prompt Engineering 文档:docs.anthropic.com/en/docs/bui…
  • OpenAI Cookbook:cookbook.openai.com/

写在最后:

如果你和 2 天前的我一样,收藏了一堆教程但没动手——希望这篇能推你一把。

别再看了,去写代码。哪怕只跑通一个 Hello World,也比看 10 小时视频强。


这里给大家精心整理了一份全面的AI大模型学习资源包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

👇👇扫码免费领取全部内容👇👇

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

4. 2026行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

7. 资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇

← 返回列表