Java AI 全栈
约 2136 字大约 7 分钟
2026-07-26
Java AI 的使命很简单:让"给应用加上 AI 功能"这件事变得顺畅省事,不引入任何没必要的复杂度。
你想在 Java/Spring 项目里接入 ChatGPT、调用大模型、做向量搜索?不用自己去啃各个厂商的 API 文档,Java AI 帮你统一封装好了——像写普通 Spring 代码一样,注入一个 Bean,调用一个方法,就完事了。
项目从 Python 生态中 LangChain、LlamaIndex 等知名项目汲取了灵感,但 不是 它们的 Java 照搬版。项目创立时抱着一个信念——生成式 AI 的下一波浪潮,不应只属于 Python 开发者,而应在各种编程语言中遍地开花。
关于本文档
本系列文档是在翻译 Java AI 官方文档的过程中,边学习、边思考、边整理的成果——不是逐字翻译,而是用自己的话把每个概念嚼透,结合实际代码示例重新组织,力求让 Java/Spring 开发者能快速理解并上手。
📌 原文地址:https://docs.spring.io/java-ai/reference/index.html 📌 原文版本:Java AI Reference v2.0.1(Stable 稳定版)
Java AI 解决的是 AI 集成中最根本的挑战:把企业的数据和 API,与 AI 模型连接起来。
核心设计思路:一套抽象、多家实现
Java AI 提供了一系列抽象层(Abstractions),它们就是开发 AI 应用的"地基"。关键在于:每一种抽象背后都有多种实现,想换组件(比如从这家模型厂商切到另一家)时非常轻松,代码几乎不用改。
白话解读
这是 Spring 生态的老传统——想想 Spring Data:上层统一接口,下层各数据库厂商各自实现。Java AI 把同样的思路搬到了 AI 领域:业务代码面向 ChatModel、EmbeddingModel 这些接口编程,底层跑的是 OpenAI 还是 Ollama,主要就是换个依赖、改个配置的事。
功能特性清单
| # | 功能 | 说明 |
|---|---|---|
| 1 | 🌐 可移植 API | 一套 API 通吃各大 AI 提供商的 Chat、文生图与 Embedding 模型;同步和流式两种调用方式都支持 |
| 2 | 🤖 主流模型全覆盖 | Anthropic、OpenAI、Microsoft、Amazon、Google、Ollama、DeepSeek 等 |
| 3 | 📦 结构化输出 | AI 输出直接映射为 POJO,不用手动解析 JSON |
| 4 | 🗄 向量数据库全面支持 | PGVector、Redis、Milvus、Elasticsearch、Pinecone、Chroma 等 14+ 种 |
| 5 | 🔍 统一向量存储 API | 跨数据库可移植,类 SQL 语法的元数据过滤 |
| 6 | 🔧 工具 / 函数调用 | 模型主动调用你的 @Tool 方法,获取实时信息并执行操作 |
| 7 | 📊 可观测性 | AI 操作的监控和洞察,Token 用量、耗时一目了然 |
| 8 | 📥 ETL 数据管道 | 内置文档摄取框架,把企业文档变成 AI 能"读懂"的格式 |
| 9 | 🧪 AI 模型评估 | 评估 AI 生成内容的质量,防范"幻觉"式回答 |
| 10 | 🔗 MCP 协议 | 无缝集成 Model Context Protocol,连接 AI 生态 |
| 11 | 🚀 Spring Boot 自动配置 | 开箱即用的 Starter,加个依赖就能用 |
| 12 | 💬 ChatClient API | 流畅的 Fluent API,风格与 WebClient / RestClient 一脉相承 |
| 13 | 🎯 Advisors API | 封装生成式 AI 模式,拦截增强请求与响应 |
| 14 | 🧠 对话记忆 & RAG | 聊天记忆 + 检索增强生成,让 AI "记住"上下文 |
支持的模型类型
| 模型类型 | 说明 |
|---|---|
| Chat Completion(聊天补全) | 你问我答的对话能力 |
| Embedding(向量嵌入) | 把文字变成向量,便于相似度计算与检索 |
| Text to Image(文生图) | 文字描述生成图像 |
| Audio Transcription(音频转写) | 录音变成文字稿 |
| Text to Speech(文字转语音) | TTS 语音合成 |
| Moderation(内容审核) | 识别不当或有害内容 |
白话解读
这 6 类基本涵盖当下主流 AI 能力。Java AI 的原则是"一种能力、一套接口":不管底层接的是 OpenAI 还是 Ollama,写出来的代码长得都差不多,切换厂商主要就是改依赖和配置。
典型应用场景
- "基于你的文档做问答"(Q&A over your documentation)
- "和你的文档聊天"(Chat with your documentation)
白话解读
这正是 RAG 的经典落地场景:把公司文档切块、算出 Embedding、存进向量数据库;用户提问时,先检索出最相关的文档片段塞进 Prompt,再让模型"开卷考试"式作答。有了原文兜底,AI 回答有据可依,瞎编的概率大幅下降。
能力全景:四层架构
核心逻辑
- 模型层(Chat / Embedding / Image / Audio 等)→ 负责「思考」和「生成」
- 数据层(Vector DB / ETL)→ 负责「记忆」和「检索」
- 工具层(Tool Calling / MCP)→ 负责「行动」和「连接」
- 增强层(Advisors / RAG / Memory)→ 负责「优化」和「增强」
目录
| # | 章节 | 内容 |
|---|---|---|
| 100 | 快速入门与核心概念 | 项目搭建、依赖配置、Java AI 核心概念(模型、Prompt、Embedding、Token、RAG、Tool Calling) |
| 101 | Chat Client API(聊天客户端API) | ChatClient 流畅 API、Advisors 拦截器链 |
| 102 | Prompts(提示词) | Prompt 结构、Message 角色、PromptTemplate |
| 103 | Structured Output(结构化输出) | BeanOutputConverter、JSON Schema 验证 |
| 104 | Multimodality(多模态) | 文本 + 图像 + 音频的多模态输入处理 |
| 105 | Java AI API(模型总览)(在新窗口打开) | ChatModel / EmbeddingModel / ImageModel / AudioModel 统一接口 |
| 106 | Chat Models(聊天模型) | 各大模型厂商 Chat 模型接入详解 |
| 107 | Embedding Models(嵌入模型) | 文本转向量的 Embedding 模型接入 |
| 108 | Image Models(图像模型) | 文生图模型接入与使用 |
| 109 | Audio Models(音频模型) | 语音转写、文字转语音模型 |
| 110 | Moderation Models(内容审核模型) | 内容安全审核模型 |
| 111 | Chat Memory(聊天记忆) | MessageWindowChatMemory、存储后端、Advisor 集成 |
| 112 | Tool Calling(工具调用) | @Tool 注解、ToolCallback、工具注册 |
| 113 | MCP(模型上下文协议) | MCP Server / Client 开发与集成 |
| 114 | RAG(检索增强生成) | RAG 架构设计与 QuestionAnswerAdvisor |
| 115 | ETL Pipeline(ETL 流水线) | 文档抽取、转换、加载的全流程编排 |
| 116 | Prompt Engineering Patterns(提示词工程模式) | Zero-Shot、Few-Shot、CoT、ToT 等模式 |
| 117 | Building Effective Agents(构建高效 Agent) | 链式、并行化、路由、编排器-工作者、评估器-优化器 |
| 118 | Model Evaluation(模型评估) | AI 输出质量评估方法与工具 |
| 119 | Vector Databases(常用向量数据库) | Elasticsearch、Milvus、PGvector、Redis 等精选 |
| 120 | Observability(可观测性) | AI 操作监控、Token 追踪与性能洞察 |
| 121 | Testcontainers(测试容器) | 基于容器的集成测试支持 |
| 122 | Getting Started with MCP(MCP 快速入门) | 手把手搭建 MCP Server 与 Client |
| 123 | Dynamic Tool Discovery(动态工具发现) | Tool Search Tool 模式,34-64% Token 节省 |
| 124 | LLM-as-a-Judge Evaluation(LLM 评审评估) | SelfRefineEvaluationAdvisor 自反思循环 |
推荐阅读顺序
新手路线:本页 → 快速入门与核心概念 → 按需跳到感兴趣的章节
进阶路线:Chat Client API → 工具调用 → RAG / MCP → 构建高效 Agent
模型接入:模型总览(在新窗口打开) → 按需查看 Chat / Embedding / Image / Audio
版本信息
| 版本通道 | 可用版本 |
|---|---|
| Stable(稳定版) | 2.0.1、1.1.8、1.0.9 |
| Snapshot(快照版) | 2.0.2-SNAPSHOT、1.1.9-SNAPSHOT |
白话解读
带 -SNAPSHOT 后缀的是"开发中"版本:代码还在频繁变动,随时会变。正式项目请认准 Stable 稳定版;想尝鲜、跟踪新特性才用 Snapshot。本系列文档基于 2.0.1 稳定版整理。