LangChain4j 的目标是简化将 LLM 集成到 Java 应用程序的过程。
方法如下:
统一 API: LLM 提供商(如 OpenAI 或 Google Vertex AI)和嵌入(向量)存储(如 Pinecone 或 Milvus)使用专有 API。LangChain4j 提供统一 API,避免了学习和实现每个 API 的特定 API。要尝试不同的 LLM 或嵌入存储,您可以轻松地在它们之间切换,而无需重写代码。LangChain4j 目前支持15 多个流行的 LLM 提供商 和15 多个嵌入存储。
综合工具箱: 在过去的一年中,社区一直在构建大量基于 LLM 的应用程序,确定常见的抽象、模式和技术。LangChain4j 已将它们精炼为一个随时可用的软件包。我们的工具箱包括从低级提示模板、聊天内存管理和输出解析到高级模式(如 AI 服务和 RAG)的各种工具。对于每个抽象,我们都提供了一个接口以及基于常见技术的多种随时可用的实现。无论您是构建聊天机器人还是开发具有从数据提取到检索的完整管道的 RAG,LangChain4j 都能提供多种选择。
大量示例: 这些示例展示了如何开始创建各种 LLM 驱动的应用程序,提供灵感并使您能够快速开始构建。
LangChain4j 于 2023 年初在 ChatGPT 炒作中开始开发。我们注意到,众多 Python 和 JavaScript LLM 库和框架缺乏 Java 对应物,我们必须解决这个问题!虽然我们的名字里有“LangChain”,但该项目融合了 LangChain、Haystack、LlamaIndex 和更广泛社区的思想和概念,并加入了我们自己的创新元素。
我们积极关注社区发展,旨在快速整合新技术和集成,确保您随时掌握最新动态。该库正在积极开发中。虽然一些功能仍在开发中,但核心功能已经到位,让您可以立即开始构建基于 LLM 的应用程序!
为了更容易集成,LangChain4j 还包括与 Quarkus和Spring Boot 的集成。
LangChain4j 功能
- 与15 家以上的 LLM 提供商整合
- 与15 多个嵌入(矢量)存储集成
- 与10 多种嵌入模型集成
- 与4 个云和本地图像生成模型集成
- 与2 个评分(重新排名)模型集成
- 与一个调节模型集成:OpenAI
- 支持文本和图像作为输入(多模态)
- AI 服务(高级 LLM API)
- 提示模板
- 持久化和内存化聊天记忆算法的实现:消息窗口和令牌窗口
- 法学硕士 (LLM) 答辩流程
- 常见 Java 类型和自定义 POJO 的输出解析器
- 工具(函数调用)
- 动态工具(执行动态生成的 LLM 代码)
- RAG(检索增强生成):
- 摄入:
- 从多个来源(文件系统、URL、GitHub、Azure Blob 存储、Amazon S3 等)导入各种类型的文档(TXT、PDF、DOC、PPT、XLS 等)
- 使用多种分割算法将文档分割成更小的片段
- 文档和片段的后处理
- 使用嵌入模型嵌入片段
- 将嵌入存储在嵌入(向量)存储中
- 检索(简单和高级):
- 查询的转换(扩展、压缩)
- 查询路由
- 从向量存储和/或任何自定义源检索
- 重新排序
- 倒数秩融合
- RAG 流程中每个步骤的定制
- 摄入:
- 文本分类
- 用于标记化和估计标记数量的工具
两个抽象层
LangChain4j 在两个抽象层次上运行:
- 低级。在此级别,您可以自由访问所有低级组件,例如 、、、、等ChatLanguageModel。这些是 LLM 驱动的应用程序的“原语”。您可以完全控制如何组合UserMessage它们,但您需要编写更多粘合代码。AiMessageEmbeddingStoreEmbedding
- 高级。在此级别,您可以使用高级 API(例如)与 LLM 进行交互AiServices,这会隐藏所有复杂性和样板代码。您仍然可以灵活地调整和微调行为,但这是以声明方式完成的。
LangChain4j 库
LangChain4j 采用模块化设计,包括:
该langchain4j-core模块定义核心抽象(例如ChatLanguageModel和EmbeddingStore)及其 API。
主langchain4j模块包含诸如这样的有用工具ChatMemory以及OutputParser诸如这样的高级功能AiServices。
各种各样的langchain4j-{integration}模块,每个模块都提供与各种 LLM 提供程序的集成,并将商店嵌入到 LangChain4j 中。您可以langchain4j-{integration}独立使用这些模块。如需其他功能,只需导入主要langchain4j依赖项即可。
https://docs.langchain4j.dev/intro
最后编辑:Jeebiz 更新时间:2024-08-18 23:45