langchain4j各模块核心 API 一览------RAG
| 核心组件 | 作用 |
|---|---|
| DocumentLoader | 负责读取本地或远程的文档(PDF、Word等)。 |
| DocumentSplitter | 负责将长文档切分成小段(Chunk)。 |
| EmbeddingModel | 负责将文本转化为数学向量。 |
| EmbeddingStore | 负责存储向量,并支持相似度检索(对接各类向量数据库)。 |
| QueryTransformer | 负责优化、改写或扩展用户的原始查询。 |
| QueryRouter | 负责将查询路由到最合适的知识库或检索器。 |
| ContentRetriever | 负责执行具体的检索逻辑,返回相关文本。 |
| ContentAggregator | 负责合并多路检索结果,并进行重排序(Re-ranking)。 |
| ContentInjector | 负责将检索到的上下文格式化并注入到最终的 Prompt 中。 |
| RetrievalAugmentor | RAG 的总编排器,串联上述所有在线检索步骤。 |
LangChain4j 中,一个完整的 RAG 流程分为离线索引和在线检索两个阶段,由以下核心模块协同完成:
1. 离线索引流水线(准备知识库)
这个阶段主要负责把非结构化数据变成向量数据库里可检索的向量。
- 文档层 (Document):负责加载各种格式的文件(如 PDF、Word、TXT、Markdown 等)。
- 文档分割器 (DocumentSplitter):将长文档切分成适合大模型处理的文本块(Chunk)。支持递归字符分割、按 Token 分割等多种策略。
- 向量化与存储 (Embedding & Store):使用 Embedding 模型将文本块转化为向量,并存入向量数据库(如 Milvus、Elasticsearch、Redis、Pinecone 等)。
2. 在线检索生成流水线(回答用户问题)
当用户提问时,系统会启动编排器(
RetrievalAugmentor)来寻找答案,具体包含以下 5 个核心步骤:- 问题改写 (QueryTransformer):优化用户的原始提问。比如将口语化的问题改写为更适合检索的关键词,或者生成多个查询以扩大检索范围。
- 路由分发 (QueryRouter):判断用户的问题应该去哪个知识库检索。例如,技术问题去技术文档库,业务问题去业务手册库。
- 内容检索 (ContentRetriever):核心检索模块。将问题向量化后,去向量数据库中进行相似度搜索,找出 Top-K 个最相关的文本块。
- 结果聚合与重排 (ContentAggregator):如果从多个数据源检索了结果,这个模块会将它们合并,并利用重排模型(如 BGE/Cohere Reranker)对结果进行二次打分和排序,把最相关的内容排在前面。
- 内容注入 (ContentInjector):将最终筛选出的高质量文本块,自动拼接到给大模型的 Prompt(提示词)中,让大模型基于这些参考资料生成最终答案。

浙公网安备 33010602011771号