240
世界上有2种人,一种懂二进制,另一种不懂二进制。

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(提示词)中,让大模型基于这些参考资料生成最终答案。
posted @ 2026-08-04 17:42  _Origin  阅读(8)  评论(0)    收藏  举报