面包屑图标 当前位置: 首页
AI资讯
热点详情

IBM推出Docling文档处理利器基于LangChain打造RAG应用

AI热点日报
AI热点日报时间:2026-06-29
热点解读

Docling 与 LangChain 的强强联合,正为 RAG 系统开辟全新的应用前景。 随着 AI 应用场景日益复杂,高效处理和检索文档信息已成为刚性需求。尽管大语言模型在生成与计算方面表现出色,但在文档处理环节仍存在不少短板。 本文从实战角度出发,系统拆解如何整合 Docling 与 Lang

Docling 与 LangChain 的强强联合,正为 RAG 系统开辟全新的应用前景。

IBM推出文档处理利器Docling,基于LangChain打造RAG应用

随着 AI 应用场景日益复杂,高效处理和检索文档信息已成为刚性需求。尽管大语言模型在生成与计算方面表现出色,但在文档处理环节仍存在不少短板。

本文从实战角度出发,系统拆解如何整合 Docling 与 LangChain,构建一套真正可落地的检索增强生成(RAG)系统,使大模型在文档处理任务上的能力更上一层楼。

1 Docling:IBM 出品的文档处理利器

Docling 是 IBM 开源的一个工具库,核心理念是“一个接口搞定所有文档”。

无论面对 PDF、Word、PPT、Excel 还是网页内容,它都能以统一的逻辑进行解析与处理。这意味着开发者无需再为每种文件格式单独编写对接代码。

它具备以下硬核特性:

  • 高级 PDF 处理:自动分析布局,深度解析复杂结构。
  • 智能阅读顺序检测:按人类习惯的阅读顺序输出文档内容。
  • 内置 OCR:扫描件中的文字也能一键识别并提取。
  • 无缝格式转换:在不同文档格式之间顺畅转换。
  • 原生集成:可与主流 AI 框架直接配合使用。

2 RAG 为何如此重要?

传统大语言模型(LLM)的最大局限体现在哪里?

  • 只能依赖训练时学到的知识,无法实时更新。
  • 无法获取特定领域的新信息。
  • 容易产生幻觉,或给出过时、不准确的答案。

RAG 正好弥补了这一缺口:

  • 让 LLM 能够访问外部、最新的知识库。
  • 每个回答都可溯源,有据可查。
  • 能整合特定领域的数据,生成更可靠的答案。
  • 基于检索内容生成,大大减少幻觉现象。

3 RAG 架构解析

一套典型的 RAG 系统通常包含三个核心模块:

  • 文档处理:将各种格式的原始文档转化为适合向量化的形式。
  • 检索:从向量库中找出与问题最相关的内容片段。
  • 生成:大语言模型根据检索到的上下文,输出最终答案。

而 Docling 与 LangChain 恰好各司其职:Docling 负责前端文档处理的“脏活累活”,LangChain 则提供检索与生成组件的框架支撑。

4 Docling 为何适合 RAG?

在动手实现之前,先厘清一个关键问题:为什么说 Docling 是 RAG 系统的理想搭档?

它能处理的格式足够全面:PDF、DOCX、PPTX、XLSX、图片、HTML……几乎覆盖所有日常场景。更重要的是,它不仅完成“转文字”,更具备深度文档理解能力,能够保留结构、表格、层级关系等关键信息。

与 LangChain 的集成开箱即用,文档表示的连贯性也非常出色——无论输入什么格式,输出都是统一的 Markdown 文本。再加上内置的 OCR 功能,扫描 PDF 也能直接处理,省去了额外的预处理步骤。

5 动手构建 RAG 系统

步骤1:创建文档加载器

首先需要一个自定义加载器,将 Docling 与 LangChain 连接起来。代码如下:

from typing import Iterator
from langchain_core.document_loaders import BaseLoader
from langchain_core.documents import Document as LCDocument
from docling.document_converter import DocumentConverter

class DoclingPDFLoader(BaseLoader):
    def __init__(self, file_path: str | list[str]) -> None:
        self._file_paths = file_path if isinstance(file_path, list) else [file_path]
        self._converter = DocumentConverter()
    
    def lazy_load(self) -> Iterator[LCDocument]:
        for source in self._file_paths:
            dl_doc = self._converter.convert(source).document
            text = dl_doc.export_to_markdown()
            yield LCDocument(page_content=text)

这个加载器的核心作用:将 Docling 处理后的文档转化为 LangChain 能够识别的 Document 对象。关键在于调用 export_to_markdown() 方法,保证文本表示统一,为后续处理奠定稳固基础。

步骤2:文档拆分

from langchain_text_splitters import RecursiveCharacterTextSplitter

loader = DoclingPDFLoader(file_path="../data/docling-tech-report.pdf")
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200,
)

docs = loader.load()
splits = text_splitter.split_documents(docs)

此处使用的示例文档是 Docling 的技术报告 PDF。

步骤3:设置嵌入

from langchain_huggingface.embeddings import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings(
    model_name="BAAI/bge-small-en-v1.5"
)

步骤4:配置向量存储

from langchain_milvus import Milvus
URI = "./milvus_example.db"
vectorstore = Milvus.from_documents(
    splits,
    embeddings,
    connection_args={"uri": URI},
    drop_old=True,
)

这里选用 Milvus 作为向量数据库,当然也可以根据需求替换为其他方案。

步骤5:设置语言模型

本次使用 Phi-4:14B 的 4 位量化版本,搭配 Ollama 做模型托管。请先安装好 Ollama,然后拉取模型:

ollama pull vanilj/Phi-4:latest

接着在代码中配置:

from langchain_ollama import OllamaLLM

llm = OllamaLLM(
    model="vanilj/Phi-4:latest"
)

步骤6:构建 RAG 链

from typing import Iterable
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import PromptTemplate
from langchain_core.runnables import RunnablePassthrough

def format_docs(docs: Iterable[LCDocument]):
    return "\n\n".join(doc.page_content for doc in docs)

retriever = vectorstore.as_retriever()

prompt = PromptTemplate.from_template("""
Context information is below.
---------------------
{context}
---------------------
Given the context information and not prior knowledge, answer the query.
Query: {question}
Answer:
""")

rag_chain = (
    {"context": retriever | format_docs, "question": RunnablePassthrough()}
    | prompt
    | llm
    | StrOutputParser()
)

至此,整个 RAG 管道搭建完成。

6 使用 RAG 系统

response = rag_chain.invoke("Which AI models ha ve been released by docling team?")
print(response)

7 最佳实践与优化技巧

在实际落地 Docling + LangChain 的 RAG 系统时,以下几个环节值得重点打磨:

  • 文档分块:根据具体用例调整 chunk 大小,并设置重叠部分避免断章取义。也可以尝试语义拆分以获得更优效果。
  • 向量存储:根据数据规模和查询性能要求选择合适的方案,同时兼顾扩展性与运维成本。
  • 提示工程:在提示词中明确要求利用上下文,并说明遇到不确定信息时的处理方式。

8 结语

Docling 扎实的文档处理能力,搭配 LangChain 灵活的框架设计,使得构建企业级文档问答、研究助手或知识管理工具变得更加可行。

值得一提的是,Docling 团队正在开发官方的 LangChain 原生扩展,届时集成将更加顺畅。预计会支持 LangChain 直接加载、增强元数据提取、更完善的文档结构保留以及原生表格处理等功能。

热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:IBM推出Docling文档处理利器基于LangChain打造RAG应用要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://www.53ai.com/news/RAG/2025010612478.html
ai 人工智能

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-06-29 20:24
基于人工智能的室内设计与虚拟布置平台

基于人工智能的室内设计与虚拟布置平台,通过上传房间照片、手绘草图或SketchUp文件,自动识别空间结构并更换风格。核心功能包括草图转逼真渲染、3D漫游视频及虚拟布置,支持多种设计风格,提升可视化沟通效率。

AI热点2026-06-29 20:24
人工智能驱动客户体验管理与评论分析平台OctoparseVOC

OctoparseCEM是AI驱动的客户体验管理平台,聚合电商、社交媒体、客服工单等多渠道反馈,通过情感分析、客户旅程映射等功能,将非结构化数据转化为可操作洞察,助力产品优化、服务提升与业务增长。

AI热点2026-06-29 20:24
Odoo CRM营销助手扩展全面功能详解与使用技巧大全

在客户关系管理领域,如何让工具更智能地辅助市场决策?Odoo CRM 近期推出的一款扩展程序,或许给出了一个令人关注的答案——它直接将 OpenAI GPT-3 5 Turbo 与情感分析能力嵌入 CRM 工作流,使营销不再仅凭经验盲目判断。 什么是 Odoo CRM OpenAI GPT-3 5

AI热点2026-06-29 20:23
扎克伯格称联想基于Meta Llama大模型构建个人AI智能体AI Now

联想与Meta合作,基于Llama大模型推出面向PC的个人AI智能体AINow。该产品由杨元庆和扎克伯格共同宣布,旨在将AI与混合现实技术普及。扎克伯格强调开源Llama可让联想微调模型以优化特定场景,并称开源是最高效、可定制且值得信赖的选择。

延伸阅读