版权归属于 LangChat Team
官网:https://langchat.cn
01 - LangChain4j 简介
版本说明
本文档基于 LangChain4j 1.10.0 版本编写。学习目标
通过本章节学习,你将能够:- 理解 LangChain4j 是什么及其核心价值
- 了解 LangChain4j 的应用场景
- 掌握 LangChain4j 的核心特性
- 搭建 LangChain4j 开发环境
- 运行第一个 LangChain4j Hello World 示例
前置知识
- Java 基础知识(Java 17+)
- Maven 或 Gradle 基础
- 了解基本的大语言模型(LLM)概念
核心概念
什么是 LangChain4j?
LangChain4j 是一个用于构建 LLM(大语言模型)应用的 Java 开源库。它提供了一套完整的工具和组件,帮助开发者轻松地将大语言模型集成到 Java 应用程序中。 类比理解: 如果把大语言模型(如 GPT-4)比作一个强大的引擎,那么 LangChain4j 就是帮助你在 Java 应用中安装、配置和使用这个引擎的工具箱。你不需要从头开始编写所有与引擎交互的代码,LangChain4j 已经为你准备好了。为什么选择 LangChain4j?
1. 专为 Java 设计
LangChain4j 是专门为 Java 生态系统设计的,充分利用了 Java 的类型安全性和面向对象特性。与其他 Python 语言的 LangChain 相比,它更适合 Java 开发者使用。2. 简单易用
LangChain4j 提供了简单直观的 API,无论是低级 API(如ChatModel)还是高级 API(如 AI Services),都能快速上手。
3. 功能完整
LangChain4j 提供了构建 LLM 应用所需的所有核心功能:- 与多种 LLM 提供商集成(OpenAI、Anthropic、Google 等)
- 对话记忆管理
- 工具调用(Function Calling)
- 检索增强生成(RAG)
- 结构化输出
- 流式响应
- 智能体(Agent)
- 多模态支持
4. 生产就绪
LangChain4j 被许多企业用于生产环境,具有良好的性能、稳定性和可扩展性。5. 活跃的社区
LangChain4j 拥有活跃的开源社区,持续更新和完善,提供及时的技术支持。应用场景
LangChain4j 可以用于构建各种类型的应用:1. 聊天机器人
构建智能客服、虚拟助手等对话系统。2. 知识库问答
基于企业文档、FAQ 等知识库的智能问答系统。3. 代码助手
帮助开发者编写、理解、调试代码的 AI 助手。4. 数据分析助手
通过自然语言查询和分析数据。5. 文档处理
智能文档摘要、提取、分类等。6. 工作流自动化
使用 LLM 自动化复杂的工作流程。核心特性
1. 多模型支持
LangChain4j 支持多种大语言模型提供商:- OpenAI(GPT-4、GPT-3.5 等)
- Anthropic(Claude 系列)
- Google(Gemini 系列)
- Mistral AI
- Ollama(本地模型)
- 等等
2. 双层级 API
低级 API: 提供最大的灵活性和控制力,包括:ChatModel- 聊天模型接口EmbeddingModel- 向量模型接口ChatMemory- 对话记忆管理Tool- 工具调用EmbeddingStore- 向量存储
3. 对话记忆
LLM 本身是无状态的,LangChain4j 提供了多种对话记忆管理方案:MessageWindowChatMemory- 基于消息数量的记忆TokenWindowChatMemory- 基于 Token 数量的记忆- 持久化记忆存储
4. 工具调用(Function Calling)
允许 LLM 调用外部工具和 API,扩展其能力:5. 检索增强生成(RAG)
结合外部知识库提高回答准确性:- 文档向量化存储
- 语义检索
- 相关内容注入
6. 流式响应
实时流式输出 LLM 的生成内容,提升用户体验。7. 结构化输出
让 LLM 输出结构化的数据(JSON、POJO 等):8. 智能体(Agent)
构建具有自主规划和执行能力的智能体。9. 多模态支持
支持文本、图像、音频、视频等多种模态。10. 可观测性
提供完善的监控和日志功能,便于调试和优化。11. 框架集成
完美集成主流 Java 框架:- Spring Boot
- Quarkus
- Micronaut
开发环境准备
系统要求
- Java 17 或更高版本
- Maven 3.6+ 或 Gradle 7+
- IDE:IntelliJ IDEA(推荐)或 Eclipse
Maven 项目配置
创建一个 Maven 项目,在pom.xml 中添加 LangChain4j 依赖:
获取 API Key
大多数 LLM 提供商都需要 API Key,以 OpenAI 为例:- 访问 https://platform.openai.com/
- 注册/登录账户
- 进入 API Keys 页面
- 创建新的 API Key
- 复制并保存 API Key
Hello World 示例
现在让我们创建第一个 LangChain4j 程序,实现一个简单的 “Hello World”。完整代码示例
代码详解
步骤 1:创建 ChatModel
OpenAiChatModel:OpenAI 提供的聊天模型实现.apiKey():设置 OpenAI API Key.modelName():指定使用的模型gpt-4o-mini:性价比高,适合学习和测试gpt-4o:更强大的模型gpt-3.5-turbo:较老但便宜的模型
.build():构建模型实例
步骤 2:发送消息
.chat()方法将用户消息发送给 LLM- 返回 LLM 生成的响应文本
步骤 3:打印结果
运行程序
编译并运行程序:测试代码示例
使用 JUnit 5 编写测试用例:运行测试
实践练习
练习 1:多轮对话
修改 Hello World 程序,实现一个简单的多轮对话:- 运行这个聊天机器人程序
- 尝试与它进行多轮对话
- 注意观察:每轮对话之间 AI 是否”记得”之前的对话内容?
- 思考:为什么会出现这种情况?
练习 2:探索不同模型
尝试使用不同的 OpenAI 模型,观察响应速度和质量的变化:练习 3:自定义提示词
尝试不同的提示词,观察 LLM 的响应变化:总结
本章要点
-
LangChain4j 是什么
- 专为 Java 设计的 LLM 应用开发框架
- 提供完整的工具链和组件
-
核心优势
- 简单易用的 API
- 功能完整(对话记忆、工具调用、RAG 等)
- 生产就绪
- 活跃的社区
-
双层级 API 设计
- 低级 API:灵活控制
- 高级 API(AI Services):声明式简化
-
环境搭建
- 添加 Maven 依赖
- 获取 API Key
- 运行 Hello World
-
Hello World 示例
- 创建 ChatModel
- 发送消息
- 接收响应
下一步
在下一章节中,我们将深入学习:- ChatModel 的详细用法
- 不同模型类型的选择
- 异常处理
- 更多实用示例
常见问题
Q1:LangChain4j 与 Python 版 LangChain 有什么区别? A:LangChain4j 是专门为 Java 生态系统设计的,充分利用了 Java 的类型安全性和面向对象特性。虽然概念相似,但 API 设计更适合 Java 开发者使用。 Q2:我必须使用 OpenAI 吗? A:不,LangChain4j 支持多种 LLM 提供商,包括 Anthropic、Google、Mistral 等,还可以使用 Ollama 运行本地模型。 Q3:API Key 安全吗? A:永远不要将 API Key 提交到代码仓库。建议使用环境变量、配置文件或密钥管理服务来存储。 Q4:LLM 响应速度很慢怎么办? A:可以尝试:- 使用更快的模型(如 gpt-4o-mini)
- 使用流式响应
- 优化提示词长度
- 考虑缓存常见查询
maxTokens 参数控制,我们将在下一章节详细介绍。
参考资料
版权归属于 LangChat Team
官网:https://langchat.cn

