LangChain4j目标是简化将大语言模型(LLM)集成到 Java 应用程序的过程。

1 实现方式

1.1 标准化 API

LLM 提供商(如 OpenAI)和向量嵌入存储(如 Pinecone)使用专有 API。LangChain4j 提供标准化 API,避免每次都要学习和实现特定 API 的麻烦。要试验不同 LLM 或嵌入存储,可轻松切换而无需重写代码。

LangChain4j 目前支持:

当然,以下是移除了链接的 Markdown 表格:

语言模型提供商

提供商流式传输工具JSON模式支持的输入方式可观察性本地原生
Amazon Bedrock
文本
Anthropic
文本, 图像
Azure OpenAI文本, 图像
ChatGLM
文本
DashScope
文本, 图像, 音频
Google AI Gemini
文本, 图像, 音频, 视频, PDF
Google Vertex AI Gemini文本, 图像, 音频, 视频, PDF
Google Vertex AI PaLM 2
文本
Hugging Face
文本
Jlama
文本
LocalAI
文本
Mistral AI文本
Ollama文本, 图像
OpenAI文本, 图像Compatible with: Ollama, LM Studio, GPT4All, etc.Compatible with: Groq, etc.
Qianfan
文本
Cloudflare Workers AI
文本
Zhipu AI
文本, 图像

主流嵌入存储

嵌入存储存储元数据通过元数据过滤移除嵌入
In-memory
Astra DB
Azure AI Search
Azure CosmosDB Mongo vCore
Azure CosmosDB NoSQL
Cassandra
Chroma
Couchbase
Elasticsearch
Infinispan
Milvus
MongoDB Atlas仅原生过滤支持
Neo4j
OpenSearch
Oracle
PGVector
Pinecone
Qdrant
Redis
Tablestore
Vearch
Vespa
Weaviate

1.2 综合工具箱

过去一年,社区开发了许多由 LLM 驱动的应用程序,识别了常见的抽象、模式和技术。LangChain4j 已将这些精炼成一个现成包。工具箱涵盖:

  • 从底层的提示词模板、聊天记忆模块管理、输出解析

  • 到高级模式如 AI 服务和 RAG 的工具

对于每个抽象层次,都提供了一个接口,并基于常见技术提供了多个现成实现。不论构建聊天机器人,还是开发一个从数据导入到检索的完整 RAG 管道,LangChain4j 提供了广泛选择。

1.3 大量示例

这些 示例 展示了如何开始创建各种由 LLM 驱动的应用程序,提供了灵感并让您能够快速开始构建。

LangChain4j 于 2023 年初在 ChatGPT 热潮中开始开发。但发现Java 领域缺乏与 Python 和 JavaScript 类似的 LLM 库和框架,便决定解决这一问题!虽然名字包含“LangChain”,但该项目融合了 LangChain、Haystack、LlamaIndex 及更广泛社区的理念,并加入自己的创新。

开发团队积极关注社区的最新进展,致力于快速整合新技术和集成,确保Javaer始终保持最新状态。该库仍在积极开发中,虽然某些功能尚在开发,但核心功能已经就绪,现可立即开始构建基于 LLM 的应用程序!

为便于集成,LangChain4j 还包括和 Spring Boot 集成。

2 LangChain4j 的功能

  • 与15+ 个 LLM 提供商的集成

  • 与15+ 个向量嵌入存储的集成

  • 与10+ 个嵌入模型的集成

  • 与5个云端和本地图像生成模型的集成

  • 与2 个评分(重新排序)模型的集成:

  • 与 OpenAI 的一个审核模型的集成

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

  • AI 服务(高级 LLM API)

  • 提示词模板

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

  • LLM 响应流式传输

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

  • 工具(功能调用)

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

  • RAG(检索增强生成):

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

  • 查询路由

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

  • 重新排序

  • 倒数排名融合

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

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

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

  • 对文档和片段进行后处理

  • 使用嵌入模型对片段进行嵌入

  • 将嵌入存储在向量嵌入存储中

  • 数据导入:

  • 检索(简单和高级):

  • 文本分类

  • Token 切分和 Token 计数估算工具

3 两个抽象层次

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

  • 底层。这层,你拥有最大自由,可以访问所有底层组件,如 ChatLanguageModelUserMessageAiMessageEmbeddingStoreEmbedding 等。这些是 LLM 应用程序的“原语”。你可完全控制如何组合它们,但需编写更多代码

  • 高级。这层,你通过高级 API(如 AiServices)与 LLM 进行交互,这些 API 屏蔽所有复杂性和样板代码。你仍可灵活调整和微调行为,但是以声明方式完成

4 LangChain4j 库结构

LangChain4j的模块化设计,包括:

  • langchain4j-core 模块,定义了核心抽象(如 ChatLanguageModelEmbeddingStore)及其 API

  • langchain4j 模块,包含了诸如 ChatMemoryOutputParser 等有用工具,以及如 AiServices 等高级功能

  • 各种 langchain4j-{integration} 模块,每个模块提供与各种 LLM 提供商和嵌入存储的集成。可单独使用 langchain4j-{integration} 模块。对于额外功能,只需导入主 langchain4j 依赖项

5 LangChain4j 代码库

  • 主代码库

  • Spring Boot 集成

  • 示例

  • 社区资源

  • 内嵌嵌入

6 使用案例

我为啥需要这些功能?一些使用场景:

想要实现一个具有自定义行为并能访问您数据的 AI 聊天机器人:

  • 客户支持聊天机器人可以:

  • 礼貌地回答客户问题

  • 接收/修改/取消订单

  • 教育助手可以:

  • 教授各种学科

  • 解释不清楚的部分

  • 评估用户的理解/知识

希望处理大量非结构化数据(文件、网页等),并从中提取结构化信息。如:

  • 从客户评论和支持聊天记录中提取见解

  • 从竞争对手的网站中提取有趣的信息

  • 从求职者的简历中提取见解

希望生成信息,如:

  • 针对每位客户定制的电子邮件

  • 为你的应用程序/网站生成内容:

  • 博客文章

  • 故事

希望转换信息,如:

  • 摘要

  • 校对和重写

  • 翻译

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

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

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

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

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

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

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

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

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

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

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

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

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

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐