LangChain4j正式发布-简化将 LLM 集成到 Java 应用程序过程

news2025/5/16 19:08:50

LangChain4j 的目标是简化将 LLM 集成到 Java 应用程序中的过程。

官网地址

源码地址

开源协议:Apache License 2.0

实现方法

  • 统一 API:LLM 提供程序(如 OpenAI 或 Google Vertex AI)和嵌入(矢量)存储(如 Pinecone 或 Milvus)使用专有 API。LangChain4j 提供了一个统一的 API,以避免为每个 API 学习和实现特定的 API。要试验不同的 LLM 或嵌入存储,您可以轻松地在它们之间切换,而无需重写代码。LangChain4j 目前支持 15+ 个流行的 LLMproviders 和 20+ 个 embedding store。
  • Comprehensive Toolbox:自 2023 年初以来,社区一直在构建许多 LLM 驱动的应用程序,识别常见的抽象、模式和技术。LangChain4j 已将这些优化为现成的包。我们的工具箱包括从低级提示模板、聊天内存管理和函数调用到 Agent 和 RAG 等高级模式的工具。对于每个抽象,我们提供了一个接口以及多个基于通用技术的即用型实现。无论您是构建聊天机器人还是开发具有从数据摄取到检索的完整管道的 RAG,LangChain4j 都提供了多种选择。
  • 大量示例:这些示例展示了如何开始创建各种 LLM 驱动的应用程序,提供灵感并使您能够快速开始构建。

LangChain4j 于 2023 年初在 ChatGPT 的炒作中开始开发。我们注意到许多 Python 和 JavaScript LLM 库和框架缺乏 Java 对应项,我们必须解决这个问题!虽然我们的名字里有“LangChain”,但这个项目融合了来自 LangChain、Haystack、LlamaIndex 和更广泛社区的想法和概念,并融入了我们自己的创新。

我们积极关注社区的发展,旨在快速整合新技术和集成,确保您了解最新信息。该库正在积极开发中。虽然一些功能仍在开发中,但核心功能已经到位,让您现在可以开始构建 LLM 驱动的应用程序了!

为了更轻松地集成,LangChain4j 还包括与 Quarkus、Spring Boot 和 Helidon。

LangChain4j的功能

  • 与 15+ LLM 提供商集成
  • 与 20+ 嵌入(向量)存储集成
  • 与 15+ 嵌入模型集成
  • 与 5 个图像生成模型集成
  • 与 2 个评分(重新排名)模型集成
  • 与一个审核模型 (OpenAI) 集成
  • 支持将文本和图像作为输入(多模态)
  • AIServices(高级 LLM API)
  • 持久和内存中聊天内存算法的实现:消息窗口和令牌窗口
  • 来自 LLM 的响应流
  • 常见 Java 类型和自定义 POJO 的输出解析器
  • 工具 (函数调用)
  • 动态工具(执行动态生成的 LLM 代码)
  • RAG(检索增强生成):
    • 摄入:
      • 从多个来源(文件系统、URL、GitHub、Azure Blob 存储、Amazon S3 等)导入各种类型的文档(TXT、PDF、DOC、PPT、XLS 等)
      • 使用多个拆分算法将文档拆分为更小的段
      • 文档和句段的后处理
      • 使用嵌入模型嵌入段
      • 将嵌入存储在嵌入(向量)存储中
    • 检索(简单和高级):
      • 查询转换(扩展、压缩)
      • 查询路由
      • 从(向量)存储和/或任何自定义源中检索
      • 重新排名
      • 倒数 RankFusion
      • 自定义 RAG 流程中的每个步骤
  • 文本分类
  • 用于标记化和估计标记计数的工具
  • 使用 Kotlin 的协程功能对聊天交互进行异步非阻塞处理。

2 个抽象级别

  • 低级别。在这个级别,你有最大的自由度和访问所有低级组件,比如 ChatModel、 UserMessage 、、 AiMessage EmbeddingStore Embedding 等。这些是 LLM 支持的应用程序的 “基元”。您可以完全控制如何组合它们,但您需要编写更多的 glue 代码。
  • 高级别。在此级别,您可以使用 AIServices 等高级 API 与 LLM 进行交互,从而对您隐藏了所有复杂性和样板。您仍然可以灵活地调整和微调行为,但这是以声明方式完成的。
    在这里插入图片描述

LangChain4j 库结构

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

  • langchain4j-core 模块,用于定义核心抽象(如 ChatModel 和 EmbeddingStore)及其 API。
  • 主 langchain4j 模块,包含有用的工具,如文档加载器、聊天内存实现以及 AIServices 等高级功能。
  • 各种各样的 langchain4j-{integration} 模块,每个模块都提供与各种 LLM 提供程序的集成,并将 store 嵌入到 LangChain4j 中。您可以独立使用这些 langchain4j-{integration} 模块。对于其他功能,只需导入 main langchain4j 依赖项。

LangChain4j工程结构

  • 主仓库
  • Quarkus拓展
  • SpringBoot集成
  • 社区集成
  • 例子
  • 社区资源
  • 进程内嵌入

使用案例

你可能会问,我为什么需要所有这些?以下是一些示例:

  • 您希望实施一个自定义的 AI 驱动的聊天机器人,该机器人可以访问您的数据并按照您希望的方式运行:
    • 客户支持聊天机器人可以:
      • 礼貌地回答客户的问题
      • 接受/更改/取消订单
  • 教育助理可以:
      • 教授各种科目
      • 解释不清楚的部分
      • 评估用户的理解/知识
  • 您希望处理大量非结构化数据(文件、网页等)并从中提取结构化信息。例如:
    • 从客户评论中提取见解并支持聊天记录
    • 从竞争对手的网站中提取有趣的信息
    • 从求职者的简历中提取见解
  • 您想要生成信息,例如:
    • 为您的每位客户量身定制的电子邮件
    • 您的应用/网站内容:
      • 博客文章
      • 故事
  • 您想要转换信息,例如:
    • 总结
    • 校对和重写
    • 翻译

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2377084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】汇编角度分析栈攻击

栈攻击 介绍原理示例代码汇编分析 介绍原理 核心原理是通过 缓冲区溢出(Buffer Overflow) 等漏洞,覆盖栈上的关键数据(如返回地址、函数指针),从而改变程序执行流程; 在 C 中,每个…

Vue 3 打开 el-dialog 时使 el-input 获取焦点

运行代码:https://andi.cn/page/622178.html 效果:

C++23 views::repeat (P2474R2) 深入解析

文章目录 引言C20 Ranges库回顾什么是Rangesstd::views的作用 views::repeat概述基本概念原型定义工作原理应用场景初始化容器模拟测试数据 总结 引言 在C的发展历程中,每一个新版本都会带来一系列令人期待的新特性,这些特性不仅提升了语言的性能和表达…

OpenCv高阶(4.0)——案例:海报的透视变换

文章目录 前言一、工具函数模块1.1 图像显示函数1.2 保持宽高比的缩放函数1.3 坐标点排序函数 二、透视变换核心模块2.1 四点透视变换实现 三、主流程技术分解3.1 图像预处理3.2 轮廓检测流程3.3 最大轮廓处理 四、后处理技术4.1 透视变换4.2 形态学处理 五、完整代码总结 前言…

光谱相机的图像预处理技术

光谱相机的图像预处理技术旨在消除噪声、增强有效信息,为后续分析提供高质量数据。 一、预处理流程与技术要点 ‌辐射校正‌ ‌辐射定标‌:将图像灰度值转换为绝对辐射亮度,常用反射率法、辐亮度法和辐照度法消除传感器响应差异&#xff0…

k8s监控方案实践补充(一):部署Metrics Server实现kubectl top和HPA支持

k8s监控方案实践补充(一):部署Metrics Server实现kubectl top和HPA支持 文章目录 k8s监控方案实践补充(一):部署Metrics Server实现kubectl top和HPA支持一、Metrics Server简介二、Metrics Server实战部署…

嵌入式调试新宠!J-Scope:免费+实时数据可视化,让MCU调试效率飙升!

📌 痛点直击:调试还在用“断点打印”? 嵌入式开发中,你是否也经历过这些崩溃瞬间? 想实时观察变量变化,代码里插满printf,结果拖垮系统性能? 断点调试打断程序运行,时序…

微信小程序学习之搜索框

1、第一步&#xff0c;我们在index.json中引入vant中的搜索框控件&#xff1a; {"usingComponents": {"van-search": "vant/weapp/search/index"} } 2、第二步&#xff0c;直接在index.wxml中添加布局&#xff1a; <view class"index…

Altium Designer AD如何输出PIN带网络名的PDF装配图

Altium Designer AD如何输出PIN带网络名的PDF装配图 文描述在Altium Designer版本中设置焊盘网络名时遇到的问题&#xff0c;网络名大小不一致&#xff0c;部分PAD的网络名称未显示&#xff0c;可能涉及字符大小设置和版本差异。 参考 1.AD导出PCB装配图 https://blog.csd…

VMware虚拟机 安装 CentOS 7

原文链接: VMware虚拟机 安装 CentOS 7 安装准备 软件: VMware Workstation Pro 17.6.3 镜像: CentOS-7.0-1406-x86_64-DVD.iso 我打包好放这了&#xff0c;VMware 和 CentOS7 &#xff0c;下载即可。 关于VMware Workstation Pro 17.6.3&#xff0c;傻瓜式安装即可。 CentO…

Python训练打卡Day22

复习日&#xff1a; 1.标准化数据&#xff08;聚类前通常需要标准化&#xff09; scaler StandardScaler() X_scaled scaler.fit_transform(X) StandardScaler() &#xff1a;这部分代码调用了 StandardScaler 类的构造函数。在Python中&#xff0c;当你在类名后面加上括号…

Cold Diffusion: Inverting Arbitrary Image Transforms Without Noise论文阅读

冷扩散&#xff1a;无需噪声的任意图像变换反转 摘要 标准扩散模型通常涉及两个核心步骤&#xff1a;图像降质 &#xff08;添加高斯噪声&#xff09;和图像恢复 &#xff08;去噪操作&#xff09;。本文发现&#xff0c;扩散模型的生成能力并不强烈依赖于噪声的选择&#xf…

嵌软面试每日一阅----通信协议篇(二)之TCP

一. TCP和UDP的区别 可靠性 TCP&#xff1a;✅ 可靠传输&#xff08;三次握手 重传机制&#xff09; UDP&#xff1a;❌ 不可靠&#xff08;可能丢包&#xff09; 连接方式 TCP&#xff1a;面向连接&#xff08;需建立/断开连接&#xff09; UDP&#xff1a;无连接&#xff0…

机器学习 --- 模型选择与调优

机器学习 — 模型选择与调优 文章目录 机器学习 --- 模型选择与调优一&#xff0c;交叉验证1.1 保留交叉验证HoldOut1.2 K-折交叉验证(K-fold)1.3 分层k-折交叉验证Stratified k-fold 二&#xff0c;超参数搜索三&#xff0c;鸢尾花数据集示例四&#xff0c;现实世界数据集示例…

AGI大模型(15):向量检索之调用ollama向量数据库

这里介绍将向量模型下载到本地,这里使用ollama,现在本地安装ollama,这里就不过多结束了。直接从下载开始。 1 下载模型 首先搜索模型,这里使用bge-large模型,你可以根据自己的需要修改。 点击进入,复制命令到命令行工具中执行。 安装后查看: 2 代码实现 先下载ollama…

什么是Agentic AI(代理型人工智能)?

什么是Agentic AI&#xff08;代理型人工智能&#xff09;&#xff1f; 一、概述 Agentic AI&#xff08;代理型人工智能&#xff09;是一类具备自主决策、目标导向性与持续行动能力的人工智能系统。与传统AI系统依赖外部输入和显式命令不同&#xff0c;Agentic AI在设定目标…

day 17 无监督学习之聚类算法

一、聚类流程 1. 利用聚类发现数据模式 无监督算法中的聚类&#xff0c;目的就是将数据点划分成不同的组或 “簇”&#xff0c;使得同一簇内的数据点相似度较高&#xff0c;而不同簇的数据点相似度较低&#xff0c;从而发现数据中隐藏的模式。 2. 对聚类后的类别特征进行可视…

时源芯微| KY键盘接口静电浪涌防护方案

KY键盘接口静电浪涌防护方案通过集成ESD保护元件、电阻和连接键&#xff0c;形成了一道有效的防护屏障。当键盘接口受到静电放电或其他浪涌冲击时&#xff0c;该方案能够迅速将过电压和过电流引导至地&#xff0c;从而保护后续电路免受损害。 ESD保护元件是方案中的核心部分&a…

CodeBuddy编程新范式

不会写&#xff1f;不想写&#xff1f; 腾讯推出的CodeBuddy彻底解放双手。 示例 以下是我对CodeBuddy的一个小体验。 我只用一行文字对CodeBuddy说明了一下我的需求&#xff0c;剩下的全部就交给了CodeBuddy&#xff0c;我需要做的就是验收结果即可。 1.首先CodeBuddy会对任…

小刚说C语言刷题—1088求两个数M和N的最大公约数

1.题目描述 求两个正整数 M 和 N 的最大公约数(M&#xff0c;N都在长整型范围内&#xff09; .输入 输入一行&#xff0c;包括两个正整数。 输出 输出只有一行&#xff0c;包括1个正整数。 样例 输入 45 60 输出 15 2.参考代码(C语言版) #include <stdio.h> …