必须调用Azure Document Intelligence Layout模型获取带坐标的原始结构化输出,配置Endpoint URL与Key 1完成Dify插件接入,启用“返回表格坐标信息”确保行列对齐,再通过JSON路径提取或正则清洗+LLM结构化还原表格语义关系,并注入知识库支持向量检索。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify中精准提取Excel类表格结构并还原语义关系,必须绕过本地解析器对复杂版式(如跨页表格、合并单元格、手写批注)的识别盲区,直接调用Azure Document Intelligence的Layout模型获取带坐标的原始结构化输出。
配置Azure Document Intelligence服务接入
登录Azure门户→搜索“Document Intelligence”→点击“创建”→选择资源组、区域(推荐East US以降低延迟)、定价层(F0免费层仅支持5页/分钟,生产环境需选S1)。
资源部署完成后,在“密钥和终结点”页复制【Endpoint URL】与【Key 1】,这两项将用于Dify插件认证,【Key 2】不可用于首次配置,否则返回401错误。
进入Dify控制台→左侧导航栏点击「插件市场」→搜索“Azure Blob Extractor”→点击安装→在配置弹窗中粘贴Endpoint URL与Key 1→测试连接成功后保存。
上传文档并触发Layout模型分析
新建一个Chatflow应用→添加「开始节点」→在其配置中启用“文件上传”,勾选允许格式:PDF、JPG、PNG(注意:不支持DOCX直接上传,需先转为PDF)。
在开始节点后添加「Azure Blob Extractor」节点→在节点配置中选择模型类型为“Layout”→勾选「返回表格坐标信息」和「保留原始阅读顺序」→将开始节点的file字段拖拽连接至该节点的input_file输入口。
这一步不能跳过:Layout模型会将整页划分为段落、标题、表格三类区域,并为每个表格单元格标注x/y/w/h像素坐标。若未开启坐标返回,后续无法做行列对齐校验,表格结构将塌陷为纯文本流。
通过全交互式问答对话,逐章节完成长文档的创建、编写和审计。适用于白皮书、方案书、用户手册、分析报告等需要深度共创的文档。 当用户提到"交互式写文档"、"一起写白皮书"、"逐章讨论"、"Step by Step写文档"、"帮我写方案书/报告/手册", 或者用户想通过问答方式完成任何长文档编写时,使用此技能。即使用户...
解析Layout JSON输出中的表格结构
方法一:使用Dify内置JSON路径提取器
在Azure Blob Extractor节点后添加「代码节点」→语言选Python→输入以下脚本:
import json
layout_result = json.loads({{azure_blob_extractor_output}})
tables = []
for page in layout_result.get("pages", []):
for table in page.get("tables", []):
rows = []
for row in table.get("cells", []):
rows.append(row.get("content", ""))
tables.append({"rows": rows})
print(json.dumps({"tables": tables}, ensure_ascii=False))
方法二:用正则预清洗再交由LLM结构化
添加「文本处理节点」→在“替换规则”中填入:
查找:r"\n\s*\n" → 替换为:"|||"(将空行转为分隔符)
查找:r"\s{2,}" → 替换为:" "(压缩多余空格)
再将清洗后文本传给LLM节点,提示词限定:“请严格按原表格行列顺序,输出JSON数组,每项含row_index、col_index、value三个字段”。
注意:Layout模型返回的tables.cells数组默认按视觉阅读顺序排列,非逻辑行列索引。若原始PDF存在倾斜扫描或表格旋转,需先调用Azure的“prebuilt-document”模型做版面矫正,再进Layout流程。
将还原的表格注入Dify知识库或工作流
第一步:确认表格数据已转为标准JSON数组格式,形如[{"name":"张三","amount":1200},{"name":"李四","amount":850}]。
第二步:添加「知识库节点」→选择已有知识库或新建→在“数据源类型”中选“手动输入JSON”→粘贴上一步输出的数组→点击“导入”。
第三步:在后续LLM节点中启用「知识库检索」→设置检索方式为“向量匹配+关键词强化”,这样当用户问“销售额最高的前三人是谁”,系统会自动从刚导入的表格中提取排序结果,无需额外写SQL。

















