为什么是 LangChain4j
大约 2 分钟
第一章:为什么是 LangChain4j?
1.1 你真正要解决的不是“接个模型”,而是“把能力放进系统里”
很多项目第一周就能把模型调用跑通,但第一个月就会遇到这些问题:
- 需求一多就开始到处拼 prompt,维护成本爆炸
- 工具调用一上,马上出现越权、注入、参数脏数据
- SSE 流式上线后,断连、取消、超时处理一团糟
- 线上出问题只能看“供应商报错”,无法快速定位
- 成本不可控:上下文无限增长、重复问题重复花钱
LangChain4j 的价值不在于“提供一个 Chat API”,而在于它把大模型工程中常见的能力抽象成可组合的组件,让你能用 Java 的方式把这些问题系统化解决。
1.2 LangChain4j 能力版图(你会在本系列逐章落地)
你会用到的核心模块可以粗分为四层:
- 模型层:Chat/Streaming/Embedding 等统一接口,底下接 OpenAI、千问、DeepSeek 等
- 编排层:AI Services、Prompt 模板、Memory(上下文管理)
- 增强层:Tools(函数调用)、RAG(向量检索增强生成)
- 治理层:可观测性、错误分层、并发控制、成本优化、安全防护
1.3 本系列的写法约定(为了后面章节能直接拼起来)
为了让你能直接复制运行,本系列默认:
- 业务代码尽量围绕“Service/Facade”组织,Controller 只做参数与返回
- 所有模型调用都尽量通过统一入口(方便重试、脱敏、指标、requestId)
- 工具调用默认“白名单 + 参数校验 + 最小权限”
- RAG 默认“上下文短、来源清晰、总长度可控”
1.4 你需要准备什么
- JDK 17+
- Maven 或 Gradle
- 一个可用的模型 Key(本系列覆盖三类):
- OpenAI
- 千问(DashScope / Qwen)
- DeepSeek(OpenAI-compatible)
下一章开始,我们先用最短路径把“第一个可运行对话”跑通,然后再逐步把工程化能力加回来。
