介绍
# 介绍
欢迎!
LangChain4j 的目标是简化 LLM(大语言模型)在 Java 应用中的集成。
实现方式如下:
- 统一 API
LLM 提供商(如 OpenAI 或 Google Vertex AI)和嵌入存储(如 Pinecone 或 Milvus)通常使用专有 API。LangChain4j 提供了一个统一的 API,避免了对每种服务学习和实现特定 API 的繁琐工作。
您可以轻松切换 LLM 提供商或嵌入存储,无需重写代码。目前,LangChain4j 支持 15+ 流行的 LLM 提供商 (opens new window) 和 20+ 嵌入存储 (opens new window)。 - 全面工具箱
自 2023 年初以来,社区已经开发了大量基于 LLM 的应用,总结了通用抽象、模式和技术。LangChain4j 将这些内容打磨为一个即用型包。
工具箱包含从低级的提示模板、聊天记忆管理和函数调用,到高级模式如 Agent 和 RAG 的功能。
每种抽象均提供接口及基于常见技术的现成实现。无论您是在构建聊天机器人,还是开发完整 RAG 管道的应用,LangChain4j 都为您提供多种选项。 - 丰富示例
这些 示例 (opens new window) 展示了如何快速构建各种基于 LLM 的应用,为您提供灵感并帮助您快速上手。
LangChain4j 于 2023 年初在 ChatGPT 热潮中启动。我们注意到市面上缺乏与 Python 和 JavaScript 对应的 Java LLM 库和框架,因此决定填补这一空白!
尽管名称中有 "LangChain",本项目融合了来自 LangChain、Haystack、LlamaIndex 和社区的理念,结合了我们自己的创新。
我们密切关注社区动态,旨在快速引入新技术和集成,确保您始终与时俱进。
该库目前正在积极开发中,尽管部分功能仍在完善,但核心功能已经就绪,您可以立即开始构建基于 LLM 的应用!
为了便于集成,LangChain4j 还提供与 Quarkus (opens new window) 和 Spring Boot (opens new window) 的集成。
# LangChain4j 功能
- 集成 15+ LLM 提供商 (opens new window)
- 集成 20+ 嵌入(向量)存储 (opens new window)
- 集成 15+ 嵌入模型 (opens new window)
- 集成 5 个图像生成模型 (opens new window)
- 集成 2 个评分(重排序)模型 (opens new window)
- 集成 OpenAI 的内容审核模型
- 支持多模态输入(文本和图像)
- AI 服务(高级 LLM API)
- 提示模板
- 持久化和内存型 聊天记忆 算法:消息窗口、Token 窗口
- LLM 响应流式传输
- 通用 Java 类型和自定义 POJO 的输出解析器
- 工具(函数调用)
- 动态工具(执行动态生成的 LLM 代码)
- RAG(检索增强生成):
- 数据摄取:
- 导入多种文档类型(TXT、PDF、DOC、PPT、XLS 等)
- 使用多种分割算法将文档分割为小段
- 文档后处理
- 嵌入分段并存储到嵌入存储
- 检索:
- 查询变换(扩展、压缩)
- 向量存储检索与重排序
- 查询路由
- 数据摄取:
- 文本分类
- Token 化及 Token 数量估算工具
- Kotlin 扩展:基于协程的异步非阻塞处理
# 两层抽象
LangChain4j 提供两种抽象层级:
- 低级抽象
提供最大自由度,可直接使用核心组件(如 ChatLanguageModel、UserMessage
、AiMessage
等)。适合需要自定义逻辑的开发者,但需要更多编写代码。 - 高级抽象
提供高层 API(如 AI 服务),隐藏复杂性与样板代码,同时支持声明式调整行为。
# LangChain4j库结构
LangChain4j 具有模块化设计,包括以下内容:
langchain4j-core
模块
定义了核心抽象(例如ChatLanguageModel
和EmbeddingStore
)及其API。- 主要
langchain4j
模块
包含有用的工具,如文档加载器、聊天记忆实现,以及高级功能,例如AI服务。 - 各种
langchain4j-{integration}
模块
每个模块提供与不同LLM提供商和嵌入存储的集成。这些模块可以独立使用。如需更多功能,只需引入主要的langchain4j
依赖项。
# LangChain4j 仓库
- 主仓库
- Quarkus扩展
- Spring Boot集成
- 社区集成
- 示例
- 社区资源
- 内嵌式嵌入
# 使用场景
可能会问:为什么需要这些功能?以下是一些示例:
- 自定义AI聊天机器人
您希望实现一个访问您数据并按您的需求行为的自定义AI聊天机器人,例如:- 客户支持聊天机器人:
- 礼貌地回答客户问题
- 接受/更改/取消订单
- 教育助手:
- 教授各种主题
- 解释不清楚的部分
- 评估用户的理解或知识
- 客户支持聊天机器人:
- 处理大量非结构化数据
您希望处理大量非结构化数据(文件、网页等),并从中提取结构化信息,例如:- 从客户评论和支持聊天记录中提取洞见
- 从竞争对手的网站中提取有趣信息
- 从求职者简历中提取洞见
- 生成信息
例如:- 为每位客户定制的电子邮件
- 应用或网站内容:
- 博客文章
- 故事
- 转换信息
例如:- 总结
- 校对和重写
- 翻译
编辑 (opens new window)
上次更新: 2025/04/01, 01:48:12