LangChain4j 教程

LangChain4j 简介

LangChain4j 是一款面向 Java 生态的开源框架,专注于简化大语言模型(LLM)应用开发。它借鉴 LangChain 核心理念,适配 Java 技术栈特性,支持集成 OpenAI、Claude 等商业模型及 Llama 2 等开源模型,提供 Prompt 管理、对话记忆、工具调用、Chain/Agent 编排等能力,可结合向量数据库实现 RAG 功能,且兼容 Spring Boot 等主流框架,助力开发者快速构建智能对话、知识库问答等 LLM 应用。

LangChain4j 的目标是简化将大语言模型(LLMs)集成到 Java 应用程序中的过程。具体方式如下:

统一的应用程序接口(APIs)

大语言模型(LLM)提供商(如 OpenAI 或谷歌 Vertex AI)以及嵌入(向量)存储(如 Pinecone 或 Milvus)都使用专有接口。

LangChain4j 提供了一个统一的接口,这样就无需为每一个提供商或存储学习和实现特定的接口。要试用不同的大语言模型或嵌入存储时,你可以轻松地在它们之间切换,而无需重写代码。

目前,LangChain4j 支持15 多家主流的大语言模型提供商和 20 多个嵌入存储。

全面的工具库

自 2023 年初以来,社区一直在构建众多由大语言模型驱动的应用程序,确定了常见的抽象概念、模式和技术。

LangChain4j 已将这些提炼成一个可直接使用的包。我们的工具库包含多种工具,既有低层级的提示词模板、聊天记忆管理和函数调用,也有高层级的模式,如智能体(Agents)和检索增强生成(RAG)。

对于每一种抽象概念,我们都提供了一个接口,以及多个基于常见技术、可直接使用的实现。

无论你是在构建聊天机器人,还是开发具有从数据摄入到检索完整流程的检索增强生成(RAG)系统,LangChain4j 都能提供多种选择。

丰富的示例

LangChain4j 提供丰富的示例,这些示例展示了如何着手创建各种由大语言模型驱动的应用程序,既能带来灵感,也能让你快速开始构建。

LangChain4j 特性

  • 集成 15+ 个 LLM 提供商

  • 集成 20+ 个嵌入(向量)存储

  • 集成 15+ 个嵌入模型

  • 集成 5 个图像生成模型

  • 集成 2 个评分(重排序)模型

  • 集成一个审核模型(OpenAI)

  • 支持文本和图像作为输入(多模态)

  • AI 服务(高级 LLM API)

  • 提示模板

  • 实现持久化和内存中的聊天记忆算法:消息窗口和令牌窗口

  • 从 LLM 流式传输响应

  • 用于常见 Java 类型和自定义 POJO 的输出解析器

  • 工具(函数调用)

  • 动态工具(执行动态生成的 LLM 代码)

  • RAG(检索增强生成)

    • 摄取:

      • 从多个来源(文件系统、URL、GitHub、Azure Blob Storage、Amazon S3 等)导入各种类型的文档(TXT、PDF、DOC、PPT、XLS 等)

      • 使用多种分割算法将文档分割成更小的段落

      • 文档和段落的后处理

      • 使用嵌入模型嵌入段落

      • 在嵌入(向量)存储中存储嵌入

    • 检索(简单和高级):

      • 查询转换(扩展、压缩)

      • 查询路由

      • 从向量存储和/或任何自定义源检索

      • 重排序

      • 倒数排名融合

      • 自定义 RAG 流程中的每个步骤

  • 文本分类

  • 用于分词和估算令牌数的工具

  • Kotlin 扩展:使用 Kotlin 的协程功能异步非阻塞处理聊天交互。

两个抽象层

LangChain4j 在两个抽象层次上运行:

  • 低层次在这个层次上,您拥有最大的自由度和访问所有低级组件的权限,如 ChatLanguageModel、UserMessage、AiMessage、EmbeddingStore、Embedding 等。 这些是您的 LLM 驱动应用程序的 "原语"。 您可以完全控制如何组合它们,但需要编写更多的粘合代码。

  • 高层次在这个层次上,您使用高级 API(如 AI 服务)与 LLM 交互, 它隐藏了所有复杂性和样板代码。 您仍然可以灵活地调整和微调行为,但是以声明式方式完成。

LangChain4j 简介

LangChain4j 库结构

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

  • langchain4j-core 模块,定义核心抽象(如 ChatLanguageModel 和 EmbeddingStore)及其他 API。

  • 主要的 langchain4j 模块,包含有用的工具,如文档加载器、聊天记忆实现以及 AI 服务等高级功能。

  • 大量的 langchain4j-{integration} 模块,每个模块提供与各种 LLM 提供商和嵌入存储的集成到 LangChain4j。 您可以独立使用 langchain4j-{integration} 模块。要获得额外功能,只需导入主要的 langchain4j 依赖项。

LangChain4j 简介

参考资料:

 

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号