谷歌SEO

谷歌SEO

Products

当前位置:首页 > 谷歌SEO >

如何构建企业级的DeepSeek LangGraph以实现多模态RAG的全流程实战?

96SEO 2026-02-19 11:48 2


href="https://www.cnblogs.com/ljbguanli/p/19623444"

如何构建企业级的DeepSeek LangGraph以实现多模态RAG的全流程实战?

title="发布于

aria-level="2">DeepSeek+LangGraph构建企业级多模态RAG:从PDF繁琐解析到Agentic智能检索全流程实战

id="content_views">

摘要

传统的文本RAG(检索增强生成)在面对包含复杂表格、图片和多栏排版的PDF文档时往往力不从心。

本文将带你从零开始,基于 Unstructured

PaddleOCR 实现“结构解析重建法”,将复杂的PDF逆向转化为高质量的Markdown文档;并结合 DeepSeek 大模型与 LangGraph 智能体框架,构建一个具备自我修正能力的

Agentic

引擎。

本文包含完整的环境配置、核心代码实现及架构原理解析。

1.

引言:RAG系统的“最后一公里”难题

随着大模型(LLM)技术的普及,RAG(检索增强生成)已成为企业知识库落地的主流方案。

然而,在实际开发中,开发者往往会撞上一堵墙:数据清洗

企业内部存在大量

PDF

文档,这些文档不仅仅是纯文本,还包含了:

  • 跨页的表格

  • 复杂的流程图与截图

  • 多栏排版与页眉页脚

传统的 PyPDF2 或简单的

OCR

方案只能提取出破碎的文本流,丢失了文档的结构信息(如标题层级、表格对应的行列关系)。

这种“垃圾进(Garbage

In)”必然导致“垃圾出(Garbage

无法回答基于表格数据或图片内容的问题。

本文将介绍一种工业级的解决方案:结构解析重建法,并结合最新的

Agentic

理念,打造一个真正好用的多模态检索系统。


2.

什么是“结构解析重建法”?

所谓“结构解析重建”,本质上是对原始

PDF

文档进行分层解析,将其中的 标题、段落、表格、图片、公式 等元素逐一抽取,并依据其在文档中的位置和语义关系重新组织,最终转化为一种适合

LLM

理解的结构化格式——Markdown

Markdown

天然支持标题层级(#)、表格(|---|)、图片引用(![])和代码块,是

RAG

技术栈选型

  • 文档解析:Unstructured(基于

    Layout

    OCR)。

  • 向量存储:FAISS + OpenAI

    Embedding(兼容

    等模型)。

  • 编排框架:LangChain + LangGraph(构建有状态的循环智能体)。

  • 大模型:DeepSeek-V3(高性价比,推理能力强)。


3.

OCR

安装避坑指南:

  • Windows

    用户:如果安装

    Tools。

  • 模型下载:首次运行

    PaddleOCR

    时会自动下载检测和识别模型,请确保网络通畅。


4.

第二阶段:多模态PDF深度解析(核心)

这一部分是整个系统的基石。

我们将把一个非结构化的

PDF

UnstructuredLoader

我们使用 UnstructuredLoader 的 hi_res(高分辨率)模式,结合

PaddleOCR

UnstructuredLoader(file_path=file_path,strategy="hi_res",

关键:启用高分辨率模式,进行版面分析infer_table_structure=True,

关键:自动将表格解析为

HTML/结构化数据ocr_languages="chi_sim+eng",

启用中英文

loader_local.lazy_load():docs_local.append(doc)

print(f"解析完成,共提取

此时,docs_local 中的每个对象都包含了:

  • page_content:

    包含坐标(coordinates)、页码(page_number)、元素类别(category,如

    Title,

    元素提取与可视化验证

    为了确认解析是否准确(有没有把表格切碎,有没有把标题识别成正文),我们可以编写一个可视化函数,将识别框绘制在

    PDF

    segments):"""在PDF页面上绘制元素识别框"""pix

    [pix.width,

    segment["coordinates"]["points"]layout_w

    segment["coordinates"]["layout_width"]layout_h

    segment["coordinates"]["layout_height"]scaled_points

    [(x

    facecolor="none")ax.add_patch(rect)#

    scaled_points[0][1],

    fontsize=8)plt.axis("off")plt.show()

    调用示例:渲染第1页

    plot_pdf_with_boxes(pdf_doc.load_page(page_num

    1),

    逆向工程:将PDF重组为Markdown

    这是本文最精华的部分。

    我们将利用 fitz 提取高、清图片,利用 Unstructured 提取文本结构,最后拼接成一个完整的

    Markdown

    partition_pdf(filename=pdf_path,infer_table_structure=True,strategy="hi_res",ocr_languages="chi_sim+eng",ocr_engine="paddleocr"

    Step

    enumerate(page.get_images(full=True),

    start=1):xref

    f"page{page_index}_img{img_idx}.png"img_path

    img_filename)pix.save(img_path)image_map[page_index].append(img_path)

    Step

    "Subheader"]:md_lines.append(f"##

    {text}\n")#

    html2text(el.metadata.text_as_html)md_lines.append(md_table

    "\n")

    简单策略:如果该位置识别到了Image元素,我们将该页未插入过的图片按顺序插入#

    img_path

    inserted_images:md_lines.append(f"![Image](./{img_path})\n")inserted_images.add(img_path)#

    3.5

    Markdown,构建向量库就变得简单且高效了。

    我们将使用 MarkdownHeaderTextSplitter 来按章节切分,这样可以最大限度保留上下文语义。

    langchain_community.vectorstores

    import

    OpenAIEmbeddings(model="text-embedding-3-small",

    或其他兼容模型#

    MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on)

    md_splits

    markdown_splitter.split_text(md_content)

    print(f"文档已切分为

    FAISS.from_documents(md_splits,

    vector_store.save_local("my_rag_index")

    print("✅

    生成。

    如果检索结果不好,系统就瞎编。


    Agentic

    RAG(代理式RAG) 是一个闭环:检索

    ->

    生成。

    我们将使用 LangGraph 来实现这个智能工作流。

    6.1

    初始化模型与工具

    langchain_community.vectorstores

    import

    OpenAIEmbeddings(model="text-embedding-3-small")

    vector_store

    FAISS.load_local("my_rag_index",

    embeddings=embed,

    allow_dangerous_deserialization=True)

    创建检索工具

    vector_store.as_retriever(search_kwargs={"k":

    3})

    create_retriever_tool(retriever,name="retrieve_docs",description="搜索并返回知识库中的相关文档片段。

    ",

    初始化

    init_chat_model(model=MODEL_NAME,

    6.2

    动作:

    1. Grade

      (打分员):判断检索到的文档是否有用。

    2. Rewrite

      (改写员):如果文档没用,重写用户问题。

    3. Generate

      (生成员):根据文档回答问题。

    GradeDoc(BaseModel):"""文档相关性评分"""binary_score:

    str

    Field(description="文档是否与问题相关,'yes'

    'no'")

    generate_query_or_respond(state:

    MessagesState):"""决策节点:直接回答还是调用工具检索?

    """#

    await

    llm.bind_tools([retriever_tool]).ainvoke(state["messages"])return

    {"messages":

    "rewrite_question"]:"""评分节点:决定下一步是生成答案还是重写问题"""question

    获取检索结果(通常是工具调用的输出)tool_messages

    for

    f"""你是一个文档评估员。

    请判断以下检索到的文档是否包含回答用户问题所需的信息。

    文档内容:

    {context}用户问题:

    llm.with_structured_output(GradeDoc)result

    await

    result.binary_score.lower().startswith("y"):return

    "rewrite_question"

    MessagesState):"""重写节点:优化查询语句"""question

    state["messages"][0].contentmsg

    [{"role":

    "你是一个提示词专家。

    请重写用户的问题,使其更容易被向量数据库检索到,聚焦于关键词。

    "},{"role":

    "user",

    MessagesState):"""生成节点:最终回复"""#

    System

    llm.ainvoke(state["messages"])return

    {"messages":

    (Graph)

    将上述节点连接起来,形成工作流。

    class="language-python">workflow

    添加节点

    workflow.add_node("decision_maker",

    workflow.add_node("retrieve_tool",

    rewrite_question)

    workflow.add_node("answer_generator",

    generate_answer)

    workflow.add_conditional_edges("decision_maker",

    route_tool_trigger)

    workflow.add_conditional_edges("retrieve_tool",

    grade_documents)

    workflow.add_edge("answer_generator",

    END)

    "__main__":asyncio.run(main())


    7.

    总结与展望

    通过本文的实战,我们成功搭建了一套企业级的多模态

    RAG

    系统。

    1. 数据层:利用 Unstructured + PaddleOCR 攻克了

      PDF

      Markdown。

    2. 存储层:利用 MarkdownHeaderTextSplitter 实现了基于语义的精准切分。

    3. 认知层:利用 DeepSeek + LangGraph 构建了具备反思能力

      RAG“查不到乱回答”的问题。

    未来优化方向

    • 多模态

      Embedding:目前我们只是将图片路径存入

      CLIP

      模型直接对图片进行向量化,实现“以文搜图”。

    • GraphRAG:在向量检索的基础上引入知识图谱,处理跨文档的复杂推理问题。

class="post-meta-container">



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback