Java 生态的 LLM 困局
Python 在 AI 领域的统治地位让 Java 开发者面临尴尬:公司后端基础设施全是 Java,但大模型集成的最佳实践和工具链都集中在 Python 生态。LangChain4j 的出现改变了这一局面,它为 Java 开发者提供了与 LangChain 同等强大的 LLM 应用开发框架。
LangChain4j 不是 LangChain 的简单移植,而是为 Java 生态从头设计的 LLM 编排框架,充分利用了 Java 的类型安全、并发模型和企业级特性。
快速开始
Maven 依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>0.36.2</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>0.36.2</version>
</dependency>
第一个 LLM 调用
OpenAiChatModel model = OpenAiChatModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("gpt-4o")
.build();
String answer = model.generate(
"用一句话解释 Java 虚拟线程"
);
System.out.println(answer);
构建 RAG 应用
文档加载与分割
LangChain4j 提供了丰富的文档加载器:
// 加载 PDF 文档
Document pdf = FileSystemDocumentLoader.loadDocument(
Path.of("docs/product-manual.pdf"),
new PdfDocumentParser()
);
// 分割为语义块
DocumentSplitter splitter = DocumentSplitters.recursive(800, 100);
List<TextSegment> segments = splitter.split(pdf);
向量存储与检索
// 嵌入模型
EmbeddingModel embeddingModel = OpenAiEmbeddingModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.build();
// 向量存储(内存模式,生产应使用 Milvus/PgVector)
EmbeddingStore<TextSegment> store =
new InMemoryEmbeddingStore<>();
// 构建检索器
EmbeddingStoreIngestor ingestor = EmbeddingStoreIngestor.builder()
.embeddingModel(embeddingModel)
.embeddingStore(store)
.build();
ingestor.ingest(segments);
构建 AI Agent
LangChain4j 支持通过 @Tool 注解定义工具,让 LLM 能够调用 Java 方法:
class Calculator {
@Tool("计算两个数的和")
public double add(double a, double b) {
return a + b;
}
@Tool("查询用户余额")
public double getBalance(@P("用户ID") String userId) {
return accountService.getBalance(userId);
}
}
AiServices<Assistant> aiService = AiServices.builder(Assistant.class)
.chatLanguageModel(model)
.tools(new Calculator())
.build();
企业级集成要点
- 多模型切换:LangChain4j 支持 OpenAI、Azure OpenAI、Ollama、HuggingFace 等 20+ 模型提供商,统一 API 下随意切换。
- 流式输出:通过
StreamingChatLanguageModel实现 SSE 流式响应,提升用户体验。 - 对话记忆:内置
ChatMemory接口,支持MessageWindowChatMemory(滑动窗口)和TokenWindowChatMemory(Token 计数窗口)。 - 可观测性:集成 Micrometer 和 OpenTelemetry,提供 LLM 调用的全链路追踪。
总结
LangChain4j 让 Java 开发者在熟悉的生态中快速构建 LLM 应用,无需学习 Python。对于已有 Java 后端基础设施的团队,这是性价比最高的 AI 集成路径。
评论 (0)