现代 Java 与 AI:面向企业级应用
Java 正在将 AI 规范化以投入生产。你不再需要猜测是否应该在 Java 中使用 AI,而是需要知道如何基于稳定的契约进行构建。
Java 生态系统正从原型阶段转向稳定标准。如今你可以利用三大核心支柱:
- 用于 LLM 编排的 LangChain4j。
- 用于提供上下文的 RAG(检索增强生成)。
- 用于工具和数据的 MCP(Model Context Protocol)。
1. LangChain4j 与 Quarkus
LangChain4j 是 LangChain 生态系统的 Java 版本。它采用了声明式注解等真正的 Java 设计模式。
你可以使用 AI Service 模式来抽象业务逻辑。你只需编写一个简单的 Java 接口,框架就会处理 Prompt(提示词)和模型调用。
通过 Quarkus,你可以通过配置来切换 OpenAI 或 Ollama 等 LLM 提供商。你的业务逻辑保持不变。这种隔离性对于企业级架构至关重要。
2. 用于私有数据的 RAG
LLM 并不了解你的私有数据。RAG 解决了这个问题。与其进行昂贵的微调,不如在查询时检索相关的文档片段。
该过程分为三个步骤:
- 摄取 (Ingestion):解析并拆分文档。
- 索引 (Indexing):创建嵌入 (embeddings) 并将其存储在向量数据库中。
- 检索 (Retrieval):在查询期间寻找匹配项。
你可以使用现有的基础设施,如 Oracle 或带有 pgvector 的 PostgreSQL。即使更换数据库,流水线依然保持稳定。
3. 用于行动的 MCP
如果说 RAG 提供的是知识,那么 MCP 提供的就是行动。Model Context Protocol 允许模型使用工具和数据源。
通过 Quarkus MCP 扩展,你可以使用单个注解将 Java Bean 暴露为工具。外部 Agent 可以通过标准协议发现并调用这些工具。
完整的流程如下:
- 用户发送消息。
- LLM 决定调用哪些工具。
- Quarkus 执行 Java 代码。
- 结果作为上下文返回给 LLM。
- LLM 生成一个有据可依 (grounded) 的回答。
基于稳定性进行构建:
- 使用 LangChain4j 实现声明式 AI 服务。
- 利用现有的向量数据库构建 RAG 流水线。
- 使用 MCP 将现有的 CDI Bean 暴露为工具。
- 为 AI 生成的代码建立明确的管理规范。
当其他人还在争论该使用哪个框架时,你应该专注于构建坚实的基础。
Optional learning community: https://t.me/GyaanSetuAi
