注意:本篇文章建立在官方文档的理解上,文章会围绕官方文档去书写,博主会根据对框架的理解去动态修改文章内容,由于该框架的官方文档写的并不是很详细,市面上也没有特别详细的教程,所以博主也不能很全面的理解整个框架,但是对于入门来说,已经足够了,如果有看不懂的地方建议把全部文章都阅读一遍后再回顾会有不同的理解。
LangChain4j 介绍
随着人工智能(AI)技术的迅猛发展,越来越多的开发者开始关注 AI 应用的开发。然而,市场上主流的 AI 框架和工具(如 LangChain、PyTorch)大多仅支持 Python,这为 Java 开发者带来了工具不足和学习门槛较高的困扰。
什么是 LangChain4j?
LangChain4j 是一个旨在简化将大型语言模型(LLM)集成到 Java 应用程序中的框架。其主要特点包括:
- 统一的 API 接口:不同的 LLM 提供商(如 OpenAI、Google Vertex AI)和嵌入式存储(如 Pinecone、Milvus)各自拥有专有的 API。LangChain4j 提供了统一的 API,使开发者无需学习和实现每个提供商的特定 API,方便在不同 LLM 或嵌入式存储之间切换,而无需重写代码。
- 全面的工具箱:LangChain4j 提供从底层的提示模板、聊天记忆管理、输出解析到高级模式(如 AI 服务和检索增强生成(RAG))的工具。每个抽象层都有接口和多种现成的实现,适用于构建聊天机器人或开发完整的 RAG 管道。
- 丰富的示例:LangChain4j 提供了多种示例,展示如何开始构建各种 LLM 驱动的应用程序,帮助开发者快速上手。
该项目于 2023 年初启动,旨在填补 Java 生态系统中缺乏 LLM 库和框架的空白。LangChain4j 融合了 LangChain、Haystack、LlamaIndex 等项目的理念,并加入了自身的创新。项目处于积极开发中,核心功能已就绪,开发者可以开始构建 LLM 驱动的应用程序。此外,LangChain4j 还与 Quarkus 和 Spring Boot 集成,方便开发者在不同的 Java 框架中使用。
总的来说,LangChain4j 为 Java 开发者提供了一个强大且灵活的工具,简化了 LLM 的集成过程,促进了 AI 驱动应用程序的开发。
LangChain4j 的两个抽象层次
LangChain4j 提供了两个抽象层次,满足不同开发者的需求:
- 底层(Low Level):在此层次,开发者可以直接访问核心组件,如
ChatLanguageModel
、UserMessage
、AiMessage
、EmbeddingStore
和Embedding
等。这些组件是构建 LLM 驱动应用程序的基础元素,提供了最大的灵活性和控制权。然而,使用这些底层组件可能需要编写更多的代码来实现特定功能。 - 高级(High Level):此层次提供了更高层次的 API,如 AI 服务(AI Services),隐藏了底层的复杂性和样板代码。开发者可以通过声明式的方式进行配置和调整,快速构建功能强大的应用程序,同时保持一定的灵活性。
通过这两个抽象层次,LangChain4j 满足了不同开发者的需求,既提供了底层的灵活性,又提供了高层的简便性。
Java AI 开发工具:LangChain4j 与 Spring AI
为弥补 Java 开发者在 AI 开发领域的工具短板,市面上出现了几款面向 Java 的 AI 开发工具,其中 LangChain4j 和 Spring AI 是当前备受关注的两个解决方案。
- LangChain4j
- 提供标准化 API,兼容超过 15 个主流大模型提供商和嵌入存