Java AI 应用工程师 - 完整技能清单

核心技术技能(必学)

1. 模型 API 对接

技能点 说明
Spring AI ChatClient 同步/流式调用大模型
多模型接入 OpenAI、通义千问、DeepSeek、本地 vLLM
请求配置 温度、最大 token、top_p 等参数设置
java 复制代码
# 学习计划:大模型 API 对接

## 目标
掌握使用 Spring AI 的 `ChatClient` 对接大模型 API,实现同步和流式调用,并能配置多模型(OpenAI、通义千问等)。

## 学习内容
1. Spring AI 项目初始化(Spring Boot + spring-ai-openai-spring-boot-starter)
2. 配置 API Key 和基础参数(temperature、maxTokens)
3. 实现同步调用 `chatClient.call(prompt)`
4. 实现流式调用 `chatClient.stream(prompt)`
5. 切换不同模型(如从 OpenAI 切换到通义千问)

## 实践产出
- 一个 REST API:`POST /chat` 接收用户消息返回 AI 回复
- 一个 WebSocket 或 SSE 接口实现流式输出

## 参考资源
- Spring AI 官方文档:ChatClient 章节
- B站/YouTube 搜索 "Spring AI ChatClient 入门"

## 自检清单
- [ ] 能成功调用 OpenAI API 并返回结果
- [ ] 能配置 temperature 控制回复随机性
- [ ] 能实现流式逐字输出
- [ ] 能通过配置文件切换模型(如从 gpt-3.5 到 gpt-4)

2. RAG 知识库搭建

技能点 说明
文档加载 PDF、Word、TXT 解析
文本分块 按段落、固定大小、重叠分块
向量化 EmbeddingClient 调用 embedding 模型
向量存储 PgVector(PostgreSQL 扩展)
相似度检索 余弦距离、L2 距离、Top-K 检索
增强生成 检索结果注入 Prompt,调用 LLM 生成答案
bash 复制代码
# 学习计划:RAG 知识库搭建

## 目标
实现从文档加载到向量存储再到检索增强生成的完整 RAG 流程,使用 PgVector 作为向量数据库。

## 学习内容
1. 使用 Docker 安装 PostgreSQL + pgvector 扩展
2. 文档解析:读取 PDF、Word、TXT(用 Apache Tika 或 spring-ai 的 DocumentReader)
3. 文本分块:按段落或固定大小(如 500 字符,重叠 50)
4. 向量化:`EmbeddingClient` 调用 embedding 模型
5. 存储:`VectorStore` 接口 + PgVector 实现,插入向量
6. 检索:相似度搜索(余弦距离),返回 Top-K
7. 增强生成:将检索结果拼接进 Prompt,调用 LLM 生成答案

## 实践产出
- 一个 REST API:`POST /rag/ask` 上传问题,返回基于文档的回答
- 一个管理接口:`POST /rag/upload` 上传文档,自动入库

## 参考资源
- Spring AI 官方文档:VectorStore、PgVector
- pgvector 官方 GitHub

## 自检清单
- [ ] 能成功解析 PDF 并提取文本
- [ ] 能配置文本分块大小和重叠
- [ ] 能插入向量到 PgVector 并验证存储
- [ ] 能执行相似度搜索并返回相关片段
- [ ] 能基于检索结果生成准确回答(不出现幻觉)

3. Prompt 工程优化

技能点 说明
模板设计 PromptTemplate 变量替换
角色设定 系统提示词定义角色
少样本学习 Few-shot 示例
思维链 CoT 引导分步推理
输出约束 指定格式(JSON、Markdown 等)
模板库管理 配置文件管理不同场景的提示词
bash 复制代码
# 学习计划:Prompt 工程优化

## 目标
掌握提示词设计方法论,能在 Spring AI 中使用 `PromptTemplate` 管理不同场景的提示词,并能编写少样本、思维链等高级提示。

## 学习内容
1. 基础提示词结构:角色设定、任务描述、输出格式约束
2. 使用 `PromptTemplate` 实现变量替换(如 `{input}`)
3. 少样本学习(Few-shot):在提示中提供示例
4. 思维链(CoT):引导模型分步推理
5. 提示词版本管理:将提示词放在 yaml/properties 文件中,动态加载
6. 不同场景的提示模板设计:问答、文案生成、代码生成、客服

## 实践产出
- 一个提示词模板库(配置文件形式),至少包含 3 个场景的模板
- 一个 Demo:根据用户选择的不同场景,加载不同模板并调用 LLM

## 参考资源
- DeepLearning.AI 的 ChatGPT Prompt Engineering 课程
- OpenAI 官方 Prompt 最佳实践

## 自检清单
- [ ] 能写出稳定的角色设定提示词
- [ ] 能用 `PromptTemplate` 动态填充变量
- [ ] 能使用少样本示例提高输出准确率
- [ ] 能通过思维链让模型处理复杂推理
- [ ] 能将提示词外置到配置文件并热加载

4. 流程自动化(Agent)

技能点 说明
Function Calling Spring AI 注册 Java 函数,模型自动调用
工作流编排 Spring AI Alibaba Graph
状态管理 Graph 中的 State 对象
节点与边 Node、Edge、Conditional Edge
循环与反思 图内循环实现多轮推理或纠错
多智能体协作 多个 Graph 节点协同
bash 复制代码
# 学习计划:流程自动化(Agent + Function Calling + Graph)

## 目标
掌握 Function Calling 让模型调用 Java 方法,并使用 Spring AI Alibaba Graph 构建有状态的多步骤工作流。

## 学习内容
1. Function Calling:定义 `@Bean` 方法,注册为工具(如查询天气、查订单)
2. 让模型自动判断调用哪个函数,并解析参数
3. Spring AI Alibaba Graph 概念:State、Node、Edge
4. 构建线性工作流:A → B → C
5. 条件路由:根据节点输出选择不同分支
6. 循环与反思:在图内引入循环节点,实现自我纠错
7. 多智能体协作:多个 Graph 节点协同

## 实践产出
- 一个客服 Agent:用户输入 → 意图识别 → 调用订单查询 API → 生成回复
- 一个自动纠错工作流:生成 → 评估 → 不合格则重新生成

## 参考资源
- Spring AI Alibaba Graph 官方示例
- Spring AI Function Calling 文档

## 自检清单
- [ ] 能定义一个 Java 函数并让模型调用
- [ ] 能解析模型返回的函数调用参数
- [ ] 能构建一个包含 3 个节点的线性 Graph
- [ ] 能实现条件路由(if-else 分支)
- [ ] 能实现循环节点(如重试最多 3 次)

5. 对话流程设计

技能点 说明
多轮对话 上下文记忆(State 持久化)
意图识别 条件路由分支
对话状态 管理用户会话状态
工具调用集成 对话中触发业务 API
bash 复制代码
# 学习计划:对话流程设计(多轮对话 + 状态管理)

## 目标
掌握在 Agent 中管理多轮对话上下文,实现有记忆的对话流程,并能处理意图识别和状态流转。

## 学习内容
1. 对话状态设计:State 中包含对话历史、当前意图、槽位等
2. 多轮上下文管理:将历史消息传入 Prompt
3. 意图识别节点:分类用户意图(查询、投诉、闲聊等)
4. 槽位填充:多轮对话中逐步收集必要信息
5. 会话持久化:用 Redis 存储用户会话状态
6. 结合 Graph 实现对话流程:意图识别 → 槽位填充 → 调用工具 → 生成回复

## 实践产出
- 一个订票助手 Agent:多轮对话收集出发地、目的地、日期,最后调用 API 查询
- 支持会话超时和状态恢复

## 参考资源
- Spring AI 多轮对话示例
- Rasa 对话设计思路(仅参考)

## 自检清单
- [ ] 能设计 State 存储对话历史和当前意图
- [ ] 能实现意图识别节点(如分类为 3 种意图)
- [ ] 能实现多轮槽位填充,缺失信息时主动追问
- [ ] 能将会话状态存入 Redis 并恢复
- [ ] 能完成一个完整的多轮任务(如订票、查快递)

二、工程支撑技能(推荐)

6. Java 后端工程适配

技能点 说明
异步处理 @AsyncCompletableFuture 处理长推理
缓存 Redis 缓存 embedding / LLM 响应
消息队列 RabbitMQ/Kafka 解耦任务
定时任务 @Scheduled 批量调用 AI
监控日志 Micrometer、Actuator 记录 token/耗时/错误
bash 复制代码
# 学习计划:Java 后端工程适配(异步、缓存、MQ、监控)

## 目标
将 AI 能力与 Java 后端工程实践结合,解决生产环境中的性能、稳定性和可观测性问题。

## 学习内容
1. 异步处理:`@Async` 处理长时间推理任务,返回任务 ID 轮询结果
2. 缓存:使用 Redis + Spring Cache 缓存 embedding 向量和 LLM 响应(相同输入不重复调用)
3. 消息队列:用 RabbitMQ/Kafka 解耦任务提交与执行
4. 定时任务:`@Scheduled` 批量调用 AI 处理数据
5. 监控与日志:记录每次 LLM 调用的 token 消耗、响应时间、错误原因

## 实践产出
- 一个异步 RAG 服务:提交文档后返回任务 ID,后续查询结果
- 一个缓存装饰器:相同问题直接返回缓存答案
- 监控端点:`/actuator/metrics/ai.calls` 展示调用统计

## 参考资源
- Spring Boot 异步、缓存、消息队列官方文档
- Micrometer 自定义指标

## 自检清单
- [ ] 能用 `@Async` 实现非阻塞 AI 调用
- [ ] 能用 Redis 缓存 LLM 响应并设置过期时间
- [ ] 能集成 RabbitMQ 发送和消费 AI 任务
- [ ] 能记录每次调用的 token 和耗时到日志
- [ ] 能暴露自定义 Prometheus 指标

7. 云原生部署

技能点 说明
Docker 编写 Dockerfile 打包 Spring Boot 应用
Kubernetes Deployment、Service、ConfigMap、Ingress
环境配置 环境变量管理 API Key、数据库连接
bash 复制代码
# 学习计划:云原生部署(Docker + K8S)

## 目标
能将 Spring AI 应用容器化,并部署到 Kubernetes 集群中,支持配置管理和弹性伸缩。

## 学习内容
1. 编写 Dockerfile 打包 Spring Boot 应用(多阶段构建)
2. 使用 docker-compose 本地运行整套服务(Spring AI + PostgreSQL + pgvector + Redis)
3. Kubernetes 核心概念:Pod、Deployment、Service、ConfigMap、Secret
4. 编写 YAML 部署 Spring AI 应用到 K8S
5. 配置管理:API Key、数据库密码等用 Secret 存储
6. Ingress 暴露服务

## 实践产出
- 一个可本地 docker-compose 运行的 RAG 服务
- 一套 K8S YAML 文件,能在 minikube 或云 K8S 上部署

## 参考资源
- Docker 官方文档
- Kubernetes 官方教程(minikube)
- Spring Boot 容器化最佳实践

## 自检清单
- [ ] 能写出优化的 Dockerfile(分层缓存、非 root 用户)
- [ ] 能用 docker-compose 一键启动所有依赖
- [ ] 能写出 Deployment、Service、ConfigMap YAML
- [ ] 能通过 kubectl 部署并查看日志
- [ ] 能配置 Ingress 通过域名访问

8. AI 编程工具

技能点 说明
Cursor 用 AI 辅助编写 Java 代码
代码审查 能判断 AI 生成代码的正确性
bash 复制代码
# 学习计划:AI 编程工具(Cursor)

## 目标
熟练使用 Cursor 辅助编写 Java AI 代码,提高开发效率,并能判断 AI 生成代码的质量。

## 学习内容
1. 安装 Cursor 并配置 Java 环境(JDK、Maven/Gradle)
2. 使用 AI 对话生成 Spring AI 代码片段
3. 使用 Tab 补全快速编写常见代码(REST API、配置类等)
4. 使用 Cmd+K 编辑选中代码(重构、添加注释、生成测试)
5. 让 AI 解释现有代码或排查错误
6. 学会判断 AI 生成代码的正确性、可维护性,不盲目接受
7. (可选,了解即可,不花精力)Cursor Skills:`~/.cursor/skills/` 目录、SKILL.md 编写、自定义项目级 Skill。知道有这个功能即可,无需动手实践。

## 实践产出
- 用 Cursor 在 30 分钟内搭建一个完整的 RAG API 项目
- 记录 5 个使用 Cursor 提升效率的案例

## 参考资源
- Cursor 官方文档
- YouTube 教程 "Cursor for Java developers"

## 自检清单
- [ ] 能用 Cursor 打开 Spring Boot 项目并自动索引
- [ ] 能用 AI 对话生成 Controller、Service 代码
- [ ] 能用 Tab 补全快速写代码
- [ ] 能用 Cmd+K 重构一段复杂代码
- [ ] 能识别并拒绝 AI 生成的不安全或低效代码
- [ ] (可选)知道 Cursor Skills 的存在和基本用途

三、加分了解技能(可选)

9. 推理框架调用

技能点 说明
vLLM / Ollama Docker 启动本地推理服务
Spring AI 切换 修改 base-url 指向本地模型
bash 复制代码
# 学习计划:推理框架调用(vLLM / Ollama)

## 目标
了解本地推理框架的基本使用,并能将 Spring AI 的 API 调用从云端切换到本地模型。

## 学习内容
1. 用 Docker 运行 Ollama,拉取 Qwen 或 Llama 3 模型
2. 通过 HTTP 调用 Ollama API 验证模型可用
3. 用 Docker 运行 vLLM(可选,需要 GPU 或 CPU 模式)
4. 修改 Spring AI 配置中的 `base-url`,指向本地服务
5. 对比云端模型和本地模型的输出差异

## 实践产出
- 一个本地运行的 Qwen 模型,Spring AI 成功调用并返回结果

## 参考资源
- Ollama 官方文档
- vLLM GitHub

## 自检清单
- [ ] 能启动 Ollama 容器并拉取模型
- [ ] 能用 curl 调用 Ollama API
- [ ] 能修改 Spring AI 配置指向 `http://localhost:11434`
- [ ] 能成功获得本地模型的回复

10. MCP 生态

技能点 说明
协议理解 Model Context Protocol 三要素(Resources、Prompts、Tools)
Java 集成 使用 spring-ai-mcp 或手动实现客户端
bash 复制代码
# 学习计划:MCP 生态(Model Context Protocol)

## 目标
理解 MCP 的基本概念,了解 Java 生态中如何集成 MCP 客户端/服务端。

## 学习内容
1. 阅读 MCP 官方文档,理解 Resources、Prompts、Tools 三大概念
2. 了解 MCP 的通信方式(stdio / SSE)
3. 寻找 Java 版的 MCP SDK(如 `spring-ai-mcp` 或手动实现)
4. 运行一个官方示例(Python 版或 Java 版)
5. 思考 MCP 在 AI Agent 中的应用价值(标准化工具调用)

## 实践产出
- 一个简单的笔记:MCP 的核心概念和 Java 集成可能性

## 参考资源
- MCP 官方文档(modelcontextprotocol.io)
- Spring AI MCP 相关 issue 或示例

## 自检清单
- [ ] 能说出 MCP 的三个核心概念
- [ ] 能理解 MCP 与 Function Calling 的关系和区别
- [ ] 能找到或运行一个 Java MCP 示例(哪怕只是克隆项目)

11. Python 最小集(辅助验证)

技能点 说明
基础语法 变量、循环、函数、列表/字典
Jupyter 运行 notebook 快速测试
requests 调用 API 验证
不学的内容 类、装饰器、异步、Flask、PyTorch
bash 复制代码
# 学习计划:Python 最小集(辅助验证)

## 目标
学习 Python 最基础的部分,能读懂、修改、运行开源的 AI 示例脚本,不用于生产开发。

## 学习内容
1. 安装 Python 3.10+ 和 Jupyter Notebook
2. 基础语法:变量、循环、条件、函数、列表、字典(1-2 天)
3. 常用库:`requests`、`json`、`os`、`sys`
4. 在 Jupyter 中调用 OpenAI API 或本地 Ollama
5. 跑通一个 LangChain 的简单 RAG 示例(只运行,不深究源码)
6. 明确不学的内容:类、装饰器、异步、Flask/Django、PyTorch

## 实践产出
- 一个 Jupyter Notebook,包含调用大模型 API 和简单文本处理的代码

## 参考资源
- 菜鸟教程 Python 3 基础
- Jupyter 官方快速入门

## 自检清单
- [ ] 能写一个 Python 脚本发 HTTP 请求
- [ ] 能打开 Jupyter 并运行 cell
- [ ] 能看懂 LangChain 官方示例的大致流程
- [ ] 能修改脚本里的 API Key 和 prompt 并重新运行

四、场景 ↔ 技能对照表

应用场景 对应技能点
智能问答(RAG) 文档加载、分块、向量化、PgVector、检索增强生成
文案生成 PromptTemplate、少样本、输出格式约束
流程自动化 Function Calling、Graph 工作流、条件路由
智能客服 多轮对话、状态管理、意图识别、工具调用
数据分析(NL2SQL) Function Calling 查数据库、结果自然语言转述
代码生成 提示词约束语言、输出代码解析
AIOps 故障诊断 RAG 接入日志、Graph 多步排查
bash 复制代码
# 学习计划:场景技能复习与整合

## 目标
将之前学的所有技能点,针对 5 个核心应用场景进行整合复习,确保每个场景能独立说出所需技能和实现思路。

## 5 个核心场景及复习要点

### 场景 1:智能问答(企业知识库)
- 所需技能:RAG 完整流程、VectorStore、文档分块、相似度检索、增强生成
- 自问:我能从零实现一个上传 PDF 就能问答的系统吗?

### 场景 2:文案生成(周报/邮件/合同)
- 所需技能:PromptTemplate、少样本学习、输出格式约束
- 自问:我能根据用户提供的数据,自动生成符合公司风格的周报吗?

### 场景 3:流程自动化(工单/审批)
- 所需技能:Function Calling、Graph 工作流、条件路由、消息队列
- 自问:我能让 Agent 自动根据用户意图调用不同业务 API 完成操作吗?

### 场景 4:智能客服(多轮对话)
- 所需技能:多轮状态管理、意图识别、槽位填充、工具调用
- 自问:我能实现一个能收集用户信息并查询订单状态的客服吗?

### 场景 5:数据分析(自然语言查数)
- 所需技能:Function Calling 调用数据库查询、提示词引导生成 SQL、结果自然语言转述
- 自问:我能让用户问"上个月销量最好的产品"并自动返回答案吗?

## 复习方法
- 对每个场景,在白板上画出技术流程图(用到哪些组件)
- 尝试用文字描述实现步骤,不参考代码
- 如果卡住,回到对应的小块重新学习

## 最终自检
- [ ] 5 个场景都能清晰说出技术选型和实现步骤
- [ ] 能向面试官解释一个完整的 AI 应用项目

五、技能自检清单(可打印对照)

  • 能用 ChatClient 调用大模型 API

  • 能独立实现 RAG 问答(PDF → PgVector → 检索 → 生成)

  • 能编写结构化的提示词模板

  • 能定义 Function Calling 让模型调用 Java 方法

  • 能用 Spring AI Alibaba Graph 构建多节点工作流

  • 能使用 PgVector 进行向量存储与相似度搜索

  • 能处理文档分块和 embedding 更新

  • 能编写 Dockerfile 和 K8S YAML 部署应用

  • 能用 Redis 缓存 AI 响应

  • 能用 @Async 处理长任务

  • 了解 MCP 基本概念

  • 能启动 vLLM/Ollama 并让 Spring AI 调用

  • 能用 Jupyter 跑通 Python 示例(辅助理解)

相关推荐
新缸中之脑2 小时前
Design.md:智能体专用设计文件
人工智能
VT LI2 小时前
Lua 源码执行流程全解析:词法分析、语法分析、字节码生成、虚拟机执行与垃圾回收
java·开发语言·lua
kishu_iOS&AI2 小时前
机器学习 —— 逻辑回归(混淆矩阵)
人工智能·算法·机器学习·逻辑回归
帐篷Li2 小时前
AI Token中转站盈利模式深度解析:定价、获客与成本控制
人工智能·github
AI视觉网奇2 小时前
copilot-api 部署笔记
人工智能·深度学习
淮北4942 小时前
claude +obsidian 建立自己的AI知识库,基于 karpathy
人工智能·claude·知识库·obsidian·chrom
TechMasterPlus2 小时前
agent-browser 技术深度解析:Vercel 推出的 AI 时代浏览器自动化利器
运维·人工智能·自动化
摘星编程2 小时前
当AI学会分工合作:用MCP和A2A协议搭一套多智能体系统,跑了跑真实业务流程
人工智能
凤山老林4 小时前
04-Java JDK, JRE和JVM
java·开发语言·jvm