LangChain4j 入门指南:在 JVM 上构建 LLM 应用的统一 Java 框架
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),仅供参考

相关新闻

Controller Spawner找不到controller_manager接口?ROS控制启动机制与排查指南

Controller Spawner找不到controller_manager接口?ROS控制启动机制与排查指南

做机器人开发的同学,尤其是刚接触ROS那阵子,十有八九都见过这一行黄字:[WARN] [1544778988.123456]: Controller Spawner couldn‘t find the expected controller_manager ROS interface.我第一次碰到是在Gazebo里加载一台UR5机械臂&#xf…

2026/11/15 15:38:38 阅读更多 →
课程知识图谱构建与智能问答实战

课程知识图谱构建与智能问答实战

简介:本资源是一个基于知识图谱的课程学习智能问答系统完整实现,面向人工智能、自然语言处理方向的本科生与研究生,适用于大作业开发、课程设计及知识图谱实践项目。系统采用前后端分离架构,后端基于Python(Flask&…

2026/11/15 15:38:38 阅读更多 →
GROR点云配准:全局最优旋转搜索原理与实战指南

GROR点云配准:全局最优旋转搜索原理与实战指南

点云配准为什么要选GROR:一次搞懂全局最优旋转搜索点云配准是三维视觉里绕不开的基础问题,无论你做激光SLAM、工业零件扫描、地形测绘还是文物数字化,最后都会落到同一件事上:把不同视角、不同时刻采集的点云通过一个刚体变换拼到…

2026/11/11 7:14:31 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/15 5:13:35 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/15 5:13:35 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/15 5:13:35 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/15 3:37:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/15 4:18:38 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/15 5:13:35 阅读更多 →

日新闻

周新闻

月新闻