Skip to content
LangChain4j 文档版本 1.22.0 源快照 3cd214ac 更新于 2026-10-14

概述

欢迎!

LangChain4j 的目标,是把 LLM 集成到 Java 应用的过程尽量简化。

它是这样做到的:

  1. 统一的 API: LLM 提供者(如 OpenAI 或 Google Vertex AI)以及嵌入(向量)存储(如 Pinecone 或 Milvus) 都使用各自专有的 API。LangChain4j 提供统一的 API,使你无需为每一家学习和实现专用接口。 想要尝试不同的 LLM 或嵌入存储时,可以在它们之间轻松切换,而无需重写代码。 LangChain4j 目前已支持 20 多个主流 LLM 提供者 和 30 多个嵌入存储。
  2. 完备的工具箱: 自 2023 年初以来,社区构建了大量由 LLM 驱动的应用, 并沉淀出许多通用的抽象、模式与技术。LangChain4j 已将它们打磨为一套开箱即用的组件。 我们的工具箱涵盖从底层的提示词模板、聊天记忆管理、函数调用, 到高层的智能体(Agents)与 RAG 等模式。 针对每一个抽象,我们都提供一个接口,并附带多种基于常见技术的开箱即用实现。 无论你是在构建聊天机器人,还是开发一套从数据摄入到检索的完整 RAG 流水线, LangChain4j 都提供了丰富的选择。
  3. 大量示例: 这些 示例 演示了如何着手构建各类 LLM 驱动的应用, 为你提供灵感,让你能迅速开始开发。

LangChain4j 的开发始于 2023 年初 ChatGPT 热潮之际。 我们注意到,面对数量众多的 Python 和 JavaScript LLM 库与框架,Java 世界缺少对应品, 我们必须补上这一空白!

并非 LangChain (Python) 的移植

尽管名字相近,但 LangChain4j 并不是 LangChain (Python) 的 Java 移植版——它是为 Java 而生,而非移植而来。 它是一个地道的 Java 库,从底层就围绕 Java 的惯例设计: 类型安全、POJO、注解、接口、依赖注入、流式 API,以及对 Quarkus、Spring Boot、 Helidon 和 Micronaut 的一流集成。 它的 API、内部实现与发布节奏都与 Python 版 LangChain 项目相互独立。

我们持续关注社区的动态,力求尽快纳入新的技术与集成, 让你始终站在前沿。 本库正处于活跃开发中。虽然部分特性仍在完善, 但核心功能已经就绪,你现在就可以开始构建 LLM 驱动的应用!

为了更便捷地集成,LangChain4j 还提供与 Quarkus、Spring Boot、Helidon 和 Micronaut 的集成

LangChain4j 特性

两个抽象层级

LangChain4j 运作在两个抽象层级上:

  • 底层。在这一层,你拥有最大的自由度,可以访问所有底层组件,例如 ChatModel、UserMessage、AiMessage、EmbeddingStore、Embedding 等。 它们是你的 LLM 驱动应用的“原子构件”。 你可以完全掌控如何组合它们,但需要编写更多的胶水代码。
  • 高层。在这一层,你通过 AI 服务 这样的高层 API 与 LLM 交互, 它把所有的复杂性与样板代码都对你隐藏起来。 你仍然保留调整与微调行为的灵活性,只是这一切都以声明式的方式完成。

LangChain4j 库结构

LangChain4j 采用模块化设计,包含:

  • langchain4j-core 模块,它定义了核心抽象(例如 ChatModel 和 EmbeddingStore)及其 API。
  • 主 langchain4j 模块,包含诸如文档加载器、聊天记忆 实现等实用工具,以及 AI 服务 这样的高层特性。
  • 一大批 langchain4j-{integration} 模块,每个模块都将各家 LLM 提供者与嵌入存储集成到 LangChain4j。 你可以独立使用 langchain4j-{integration} 模块。若需要更多特性,只需再引入主 langchain4j 依赖即可。

LangChain4j 代码仓库

使用场景

你可能会问:我为什么需要这一切? 下面举一些例子:

  • 你想实现一个自定义的、由 AI 驱动的聊天机器人,它能访问你的数据并按你期望的方式行事:
    • 客服聊天机器人,能够:
      • 礼貌地回答客户问题
      • 受理/更改/取消订单
    • 教育助手,能够:
      • 教授各种学科
      • 讲解不清楚的部分
      • 评估用户的理解程度/知识水平
  • 你想处理大量非结构化数据(文件、网页等),并从中抽取结构化信息。 例如:
    • 从客户评价和客服聊天历史中提炼洞见
    • 从竞争对手网站中提取有价值的信息
    • 从求职者的简历中提炼洞见
  • 你想生成信息,例如:
    • 为每一位客户量身定制的邮件
    • 为你的应用/网站生成内容:
      • 博客文章
      • 故事
  • 你想转换信息,例如:
    • 摘要
    • 校对与改写
    • 翻译

社区集成

LangChain4j 在社区仓库 中维护了一些集成。 它们提供与主仓库中集成相同的功能。 二者唯一的区别在于:社区仓库的构件(artifact)与包名不同于主仓库(即在构件名和包名中带有 community 前缀)。 创建社区仓库是为了将部分集成的维护分离出来,从而更容易维护主仓库。

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。