LangChain4j系列:一文带你入门 LangChain4j 框架

对 Spring AI 框架进行了学习后,我们将进入 LangChain4j的世界一探究竟,并对比一下其与 Spring AI 框架的相同与不同之处。

本文所有示例均在 langchain4j 0.31.0 版本之上进行,langchain4j也是在快速发展的阶段。

LangChain4j 框架是什么?

LangChain4j 于 2023 年初在 ChatGPT 的炒作中开始开发。思想来源于 Python 和 JavaScript LLM 库,并加入创新思想,开发一款Java语言版本的 LLMs 库。

LangChain4j 的目标是简化Java 应用程序集成LLMs

所以 LangChain4j 就是一个通过抽象统一API提供便捷可用的工具箱来简化 Java 应用程序集成LLMs的框架。

  • 统一的API:LangChain4j 目前支持 15+ 热门LLM提供商和 15+ 嵌入模型。

    目前市面上存在多种大模型、嵌入模型。模型定义、接口规范并不统一,当接入大模型时需要对其API细节进行了解。所以LangChain4j统一接入大模型API,封装内部细节,可以无缝从一个大模型对接切换到另外一个模型而无需修改代码。

  • 全面的工具箱:工具箱包括各种工具,从低级提示模板、聊天记忆管理和输出解析到高级模式,如 AI Services 和 RAG。

    通过识别重复代码、抽象、模式和技术,LangChain4j 已将这些提炼成一个现成的工具包。

  • 大量的示例:LangChain4j提供大量的使用示例,与 Quarkus 和 Spring Boot 的集成等。

LangChain4j 与 Spring AI 的宗旨基本一致,为简化 Java 应用快速接入 LLMs 而生,只是其各自侧重点、框架的能力有所不同而已。

LangChain4j 能干什么?

  • 集成了 15+个 语言大模型 15+ LLM providers
  • 集成了 15+个 向量数据库 15+ embedding (vector) stores
  • 集成了 10+个 嵌入模型 10+ embedding models
  • 集成了 4个 图片大模型 4 cloud and local image generation models
  • 集成了 2个 评分重排名模型 2 scoring (re-ranking) models
  • 集成 1个 OpenAI 审核模型(检测prompt与响应是否有有害内容)
  • 支持文本和图像作为输入(多模态)
  • 更高层次的抽象,针对复杂的场景更方便集成。 AI Services
  • 支持提示词模板、聊天记忆、聊天持久化、聊天记忆淘汰算法(消息窗口和令牌窗口) chat memory
  • 支持同步/流式响应,支持常见 Java 类型和自定义 POJO 的输出解析器
  • 支持工具(函数调用)Tools (function calling), 动态工具(执行动态生成LLM的代码)
  • 支持检索增强生成技术 RAG (Retrieval-Augmented-Generation):
    • 数据导入/索引:
      • 从多个来源(文件系统、URL、GitHub、Azure Blob 存储、Amazon S3 等)导入各种类型的文档(TT、PDF、DOC、PPT、XLS 等)。
      • 使用多种算法将文档拆分为更小的片段。
      • 对文档和片段进行后处理
      • 使用嵌入模型生成嵌入片段
      • 将嵌入保存到向量数据库
    • (简单/高级)检索
      • 查询转换(扩展、压缩)「 expansion, compression 」
      • 查询路由 「 Routing of queries 」
      • 从向量存储或任何自定义源中检索
      • 重排名 「 Re-ranking 」
      • 倒数排名融合 「 Reciprocal Rank Fusion 」
      • 自定义 RAG 流程中的每个步骤
  • 支持文本分类,支持使用大模型分类和使用嵌入分类。
  • 用于标记化和估计标记计数的工具

从LangChain4j这些特性来看,目前(2024/07/02)比 Spring AI 框架多一些能力,比如 多审核模型、文本分类能力,虽然都有 RAG,LangChain4j提供的能力稍强于 Spring AI。

LangChain4j 框架有什么?

通用组件

image.png LangChain4j 包含如下组件

  • 基础组件
    • 大语言模型
    • 提示词模板
    • 格式化解析
    • 上下文记忆
  • RAG
    • 文档加载
    • 文档切分
    • 嵌入模型
    • 向量存储/向量数据库
  • Chains:将多个低级组件组合在一起,并协调它们之间的交互。
  • Ai Services:高层次抽象模块,更方便使用。

基础类库

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

  • langchain4j-core 模块,用于定义核心抽象。如ChatLanguageModelEmbeddingStore及其 API。
  • langchain4j 模块,包含有用的工具,如 ChatMemoryOutputParser 以及高级功能,如 AiServices
  • langchain4j-{integration} 模块,每个模块都提供与各种LLM提供商的集成,以及嵌入存储集成到LangChain4j中。也可以单独使用这些模块。
  • langchain4j-spring-{integration}-spring-boot-starter 模块,与Spring boot项目集成,开箱即用。「 目前支持的还不完善 」。[langchain4j-spring],从模块的划分看,langchain4j略微混乱,应该像Spring AI分别划分模块,如Models模块、Embeddings模块。

API抽象层级

在 API 抽象分为 Low Level 和 High Level 两种;

  • Low Level:在这个级别上,您可以最自由地访问所有低级组件,例如 ChatLanguageModelUserMessageAiMessageEmbeddingStoreEmbedding。我们称之为胶水代码,可以任何组合使用。
  • High Level:在此级别,您可以使用高级 API 进行交互LLMs,例如 AiServices ,它向您隐藏了所有复杂性和样板。

LangChain4j 入门示例

使用 low-level API 演示接入 Ollama 本地大模型qwen:7b 实现简单的聊天功能。

引入依赖

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-ollama-spring-boot-starter</artifactId>
    <version>${langchain4j.version}</version>
</dependency>

yml配置

langchain4j:
  ollama:
    chat-model:
      base-url: http://localhost:11434
      model-name: qwen:7b

代码实现

package org.ivy.controller;

import dev.langchain4j.model.ollama.OllamaChatModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/ll/")
@RestController
public class ChatController {

    private final OllamaChatModel ollamaChatModel;

    public ChatController(OllamaChatModel ollamaChatModel) {
        this.ollamaChatModel = ollamaChatModel;
    }

    @GetMapping("chat")
    public String chat(String prompt) {
        return ollamaChatModel.generate(prompt);
    }
}

验证效果

image.png

代码示例

总结

本文主要对LangChain4j框架是什么,LangChain4j有什么并且能干什么进行了说明,并接入Ollama qwen:7b大模型实现简单的对话功能,后续文章继续对LangChain4j框架进行讲解!

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

  • 12
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值