LangChain4j 入门指南:在 JVM 上构建 LLM 应用的统一 Java 框架 📅 发布时间:2026/9/15 16:14:25 👁 浏览次数: LangChain4j 入门指南在 JVM 上构建 LLM 应用的统一 Java 框架【免费下载链接】langchain4jLangChain4j is an idiomatic, open-source Java library for building LLM-powered applications on the JVM. It offers a unified API over popular LLM providers and vector stores, and makes implementing tool calling (including MCP support), agents and RAG easy. It integrates seamlessly with enterprise Java frameworks like Quarkus and Spring Boot.项目地址: https://gitcode.com/GitHub_Trending/la/langchain4jLangChain4j 是一个面向 JVM 的、地道的 Java 开源库目标是把大语言模型LLM集成进 Java 应用这件事变得简单直接。它通过统一 API 屏蔽不同 LLM 提供商与向量存储的差异并提供从提示词模板、聊天记忆到 Agent 与 RAG 的完整工具箱。读完本文你将掌握 LangChain4j 的核心理念、模块结构、两层抽象模型并能在 5 分钟内完成依赖引入与首次对话。LangChain4j 是什么为 Java 而生而非移植LangChain4j 诞生于 2023 年初 ChatGPT 热潮期间。当时 Python 与 JavaScript 生态涌现出大量 LLM 库和框架而 Java 一侧严重缺失对应物LangChain4j 正是为填补这一空白而启动的。需要特别强调的是LangChain4j 并不是 Python LangChain 的 Java 移植版而是从零为 Java 构建的地道idiomaticJava 库。它围绕 Java 惯例设计类型安全、POJO、注解、接口、依赖注入、流式 APIfluent API并提供与 Quarkus、Spring Boot、Helidon、Micronaut 等企业级框架的一等集成。其 API、内部实现和发布节奏均独立于 Python LangChain 项目。从源码结构看这种“地道 Java”的设计贯穿始终核心抽象如ChatModel全部定义为接口并辅以构建器模式builder例如OpenAiChatModel在 OpenAiChatModel.java 中以implements ChatModel的方式接入统一抽象。为什么需要 LangChain4j三大核心价值1. 统一 API避免供应商锁定OpenAI、Google Vertex AI 等 LLM 提供商以及 Pinecone、Milvus 等向量存储各自使用专有 API。LangChain4j 提供统一 API让你无需为每个厂商单独学习和实现一套接口。想换用不同的 LLM 或向量存储时只需替换依赖与配置而无需重写业务代码。从 根 pom.xml 的模块清单可以看到模型提供商集成模块多达二十余个langchain4j-open-ai、langchain4j-anthropic、langchain4j-bedrock、langchain4j-google-ai-gemini、langchain4j-ollama、langchain4j-watsonx等嵌入/聊天记忆存储模块同样数量庞大langchain4j-pinecone、langchain4j-milvus-v2、langchain4j-qdrant、langchain4j-pgvector、langchain4j-elasticsearch等这正是“统一 API 插拔式实现”落地方式的直接体现。2. 综合工具箱Comprehensive Toolbox自 2023 年初以来社区构建了大量 LLM 应用沉淀出通用抽象、模式与技术。LangChain4j 将这些沉淀精炼成开箱即用的包工具箱覆盖从低层的提示词模板、聊天记忆管理、函数调用到高层的 Agent 与 RAG 模式。每个抽象都提供接口以及基于常见技术的多个现成实现——无论你要做一个聊天机器人还是构建从数据摄取到检索的完整 RAG 流水线LangChain4j 都提供了丰富选择。3. 大量可参考示例LangChain4j 配套了独立维护的示例仓库展示如何从零创建各类 LLM 应用为快速上手提供灵感和起点。LangChain4j 特性全景以下是 LangChain4j 当前支持的主要特性依据官方介绍整理集成 20 个 LLM 提供商详见 语言模型集成列表集成 30 个嵌入向量存储详见 嵌入存储集成列表集成 20 个嵌入模型、5 个聊天记忆存储、5 个图像生成模型、5 个打分重排序模型集成 1 个审核/内容过滤模型OpenAI moderation支持文本与图像作为输入多模态AI Services高层 LLM APIAgents 与 Agentic AISkills提示词模板Prompt templates持久化与内存版聊天记忆算法实现消息窗口message window与令牌窗口token windowLLM 响应流式输出面向常见 Java 类型与自定义 POJO 的输出解析器工具函数调用动态工具执行由 LLM 动态生成的代码RAG检索增强生成摄取Ingestion从多种来源文件系统、URL、GitHub、Azure Blob Storage、Amazon S3 等导入多种格式文档TXT、PDF、DOC、PPT、XLS 等使用多种切分算法将文档切分为更小的段落对文档与段落进行后处理用嵌入模型为段落生成向量将向量存入嵌入向量存储检索Retrieval简单与高级两种模式查询转换扩展、压缩、查询路由、从向量存储及任意自定义数据源检索、重排序re-ranking、倒数排名融合Reciprocal Rank Fusion、RAG 流程中每一步均可自定义文本分类分词与令牌数估算工具Kotlin 扩展利用 Kotlin 协程能力以异步非阻塞方式处理聊天交互。值得一提的是从 根 pom.xml 可以看到仓库还包含多个特色模块langchain4j-mcp与langchain4j-mcp-dockerMCP 协议集成、langchain4j-easy-rag、langchain4j-agentic系列a2a、mcp、patterns、langchain4j-guardrails、langchain4j-observation与langchain4j-micrometer-metrics可观测性、langchain4j-reactive-streaming响应式流等说明项目处于活跃开发中新特性持续涌入。两层抽象低层原语与高层服务LangChain4j 在两层抽象级别上运作低层Low level拥有最大自由度可访问全部底层组件如 ChatModel、UserMessage、AiMessage、EmbeddingStore、Embedding等。这些是 LLM 应用的“原语”你可以完全控制它们的组合方式但需要编写更多胶水代码。高层High level通过 AI Services 这类高层 API 与 LLM 交互所有复杂性与样板代码都被隐藏。你仍可通过声明式方式灵活调整与微调行为。从 ChatModel.java 的实现可以看到这种设计的源码级体现ChatModel接口同时提供低层入口chat(ChatRequest)以及便捷重载chat(String)、chat(ChatMessage...)等其chat方法内部会合并defaultRequestParameters()与调用方参数、统一触发ChatModelListener的onRequest/onResponse/onError回调1.20.0 起还新增了实验性的非阻塞chatAsync系列方法返回CompletableFuture。这保证了无论走低层原语还是高层服务底层调用链都是一致的。下图展示了 LangChain4j 的核心组件分层上层是 Chains 与 AI Services 两类编排入口下层由 Basics语言模型、提示词模板、输出解析器、记忆与 RAG文档加载器、文档切分器、嵌入模型、嵌入存储两大基础能力组构成。模块化架构LangChain4j 库结构LangChain4j 采用模块化设计由以下部分组成langchain4j-core模块定义核心抽象如ChatModel、EmbeddingStore及其 API。仓库中该模块位于 langchain4j-core内部按model、data、store、rag、memory、agent、web等包组织覆盖聊天/嵌入/图像/音频/打分/审核等各类模型接口。主langchain4j模块包含文档加载器、聊天记忆实现等实用工具以及 AI Services 等高层特性例如 AiServices.java。大量langchain4j-{integration}模块每个模块提供与特定 LLM 提供商或向量存储的集成。你可以独立使用这些集成模块需要更多特性时再引入主langchain4j依赖即可。快速上手5 分钟跑通首次对话以下依赖与代码以官方文档为准适用于 JDK 17 及以上版本JDK 17 是 LangChain4j 支持的最低版本。第一步引入依赖每个集成都有独立的 Maven 依赖。以 OpenAI 集成为例在 Maven 的pom.xml中加入dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-open-ai/artifactId version1.20.0/version /dependency如果想使用高层 AI Services API还需要额外添加dependency groupIddev.langchain4j/groupId artifactIdlangchain4j/artifactId version1.20.0/version /dependencyGradle 用户则在build.gradle中声明implementation dev.langchain4j:langchain4j-open-ai:1.20.0 implementation dev.langchain4j:langchain4j:1.20.0关于版本号官方文档示例使用稳定版1.20.0而本仓库当前处于1.21.0-beta31-SNAPSHOT的开发迭代中见 根 pom.xml。文档同时提示langchain4j-bom始终包含所有模块的最新版本但 BOM 为1.20.0时许多模块的实际版本仍是1.20.0-beta30这些模块后续可能存在破坏性变更使用时需留意。第二步配置 API Key推荐将 API Key 存入环境变量降低公开泄露风险String apiKey System.getenv(OPENAI_API_KEY);第三步构建模型实例并对话创建OpenAiChatModel实例OpenAiChatModel model OpenAiChatModel.builder() .apiKey(apiKey) .modelName(gpt-4o-mini) .build();发起第一次对话String answer model.chat(Say Hello World); System.out.println(answer); // Hello World这段代码背后的调用链是chat(String)→ 构造ChatRequest→chat(ChatRequest)→ 合并默认请求参数并触发监听器回调 →doChat(ChatRequest)交由OpenAiChatModel的实际实现完成 HTTP 请求。即使换成AnthropicChatModel、OllamaChatModel等其他提供商实现业务代码也基本不变这正是统一 API 的直观收益。其他获取方式BOM 与 SNAPSHOT若想统一管理多个模块版本可使用langchain4j-bomdependencyManagement dependencies dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-bom/artifactId version1.20.0/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement想抢先用上正式发布前的最新特性可改用 SNAPSHOT 依赖repositories repository nameCentral Portal Snapshots/name idcentral-portal-snapshots/id urlhttps://central.sonatype.com/repository/maven-snapshots//url releases enabledfalse/enabled /releases snapshots enabledtrue/enabled /snapshots /repository /repositories dependencies dependency groupIddev.langchain4j/groupId artifactIdlangchain4j/artifactId version1.20.0-SNAPSHOT/version /dependency /dependencies框架用户提示如果你使用 Quarkus、Spring Boot 或 Helidon请直接查阅对应的框架集成教程Quarkus 集成、Spring Boot 集成、Helidon 集成它们提供了贴合框架习惯的接入方式。典型应用场景你可能想问这些能力到底能用来做什么以下是官方文档给出的典型场景1. 构建可访问你的数据、行为符合预期的自定义 AI 聊天机器人客户支持聊天机器人礼貌回答客户问题处理下单/改单/取消订单教育助手教授各学科知识、解释疑难部分、评估用户理解程度。2. 处理大量非结构化数据文件、网页等并抽取结构化信息从客户评论与客服聊天记录中提取洞察从竞品网站提取有价值的信息从求职者简历CV中抽取关键信息。3. 生成信息为每位客户量身定制邮件为应用/网站生成内容博客文章、故事等。4. 转换信息摘要校对与重写翻译。社区集成Community IntegrationsLangChain4j 在社区仓库中维护部分集成它们与主仓库集成功能等价唯一区别是 artifact 与包名带有community前缀。设立社区仓库的目的是把部分集成的维护工作分离出去从而降低主仓库的维护负担。社区集成与主仓库集成在使用方式上保持一致可放心选用。继续深入快速了解全部教程入口教程索引含 AI Services、Agents、RAG、聊天记忆、工具、流式输出、Kotlin、非阻塞编程等专题查看全部集成清单语言模型、嵌入存储、文档加载器、文档解析器等浏览仓库源码与测试核心抽象见 langchain4j-core高层服务见 AiServices.javaOpenAI 集成实现见 OpenAiChatModel.java。LangChain4j 仍处于活跃开发中部分特性尚在完善但核心功能已经就位——现在就可以开始构建你的第一个 LLM 驱动的 Java 应用了。【免费下载链接】langchain4jLangChain4j is an idiomatic, open-source Java library for building LLM-powered applications on the JVM. It offers a unified API over popular LLM providers and vector stores, and makes implementing tool calling (including MCP support), agents and RAG easy. It integrates seamlessly with enterprise Java frameworks like Quarkus and Spring Boot.项目地址: https://gitcode.com/GitHub_Trending/la/langchain4j创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考