讲师中心 微信公众号
AI工具推荐 视频效率加速

Dify工作流中对复杂Markdown格式文本格式化的尝试

陌涛大大_6268

陌涛大大_6268

发布时间:2026-10-25 12:05:29

|

231人浏览过

|

来源于php中文网

原创

Dify工作流中需用代码节点归一化Markdown(统一换行、缩进)、Jinja模板条件渲染控制内容、HTTP请求传参时启用preserve_html并指定中文字体名及Pt单位,确保DOCX准确还原表格、代码块和标题层级。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

dify工作流中对复杂markdown格式文本格式化的尝试

在Dify工作流中处理含表格、代码块、多级标题和嵌套列表的复杂Markdown文本时,直接传递给下游节点常导致渲染错乱、结构丢失或插件解析失败。这是因为多数Dify内置节点(如HTTP请求、代码执行)默认将Markdown当作纯字符串处理,不触发语法解析;而部分插件(如DOC-Dify-Plugin)虽支持Markdown,但对非标准缩进、混合HTML标签或未闭合的代码块极其敏感。

用Jinja模板预清洗并标准化结构

第一步:在LLM输出后插入「代码节点」,使用Python对原始Markdown做轻量级归一化处理。

第二步:粘贴以下清洗逻辑(适配中文环境,兼容WPS/Office对空行与缩进的解析要求):

```python
import re

def clean_markdown(md: str) -> str:
# 强制统一换行符为\n,避免 \n混杂导致解析器截断
md = md.replace('\r\n', '\n').replace('\r', '\n')
# 清除开头结尾多余空行,但保留段落间单空行
md = re.sub(r'^\n+|\n+$', '', md)
# 合并连续多个空行 → 只留一个
md = re.sub(r'\n{3,}', '\n\n', md)
# 修正无序列表缩进:把4空格/1个tab统一转为2空格(DOC-Dify-Plugin推荐)
md = re.sub(r'^ {4}([*-+]) ', r' \1 ', md, flags=re.MULTILINE)
md = re.sub(r'^\t([*-+]) ', r' \1 ', md, flags=re.MULTILINE)
return md.strip()

result = clean_markdown(llm_output)
```

第三步:将变量名设为cleaned_md,供后续节点调用。这一步必须做——【未清洗的原始Markdown在调用DOC-Dify-Plugin时,90%概率因缩进不一致导致表格列错位或列表塌陷】。

用Jinja条件渲染动态控制内容呈现

当LLM输出可能含敏感字段(如“内部机密”“待确认”)或需按角色过滤内容时,不能依赖后端再处理,必须在Dify工作流内完成结构裁剪。

方法一:在「文本拼接」节点中写Jinja模板,实现字段级开关

{% if metadata.confidential == false %}{{ content }}{% endif %}

方法二:对多段落内容做安全包裹,防止未闭合HTML污染DOCX生成

{% for para in content.split('\n') %}

{{ para | escape }}

{% endfor %}

注意:escape过滤器会自动转义、&等字符,避免Markdown中混入的

或<script>标签被DOCX解析器误读为XML指令。</script>

OCR 文档识别转 Markdown(WiseOCR)
OCR 文档识别转 Markdown(WiseOCR)

WiseOCR — 将 PDF 或图片文件转换为高质量 Markdown 文本,支持表格完整识别、多栏版式还原、中英文混排。适用场景:扫描件文字提取、纸质文档数字化、合同/报告/论文转文本、图片中文字提取。支持格式:PDF、JPG、JPEG、PNG、WEBP、GIF、BMP、TIFF。触发:用户上传文件并要求"帮我识别这个文件的文字"、"PDF转文字"、"图片转文本"、"帮我提取这个表格"——会调用本技能。说"用Wi

下载

向DOC-Dify-Plugin传递带样式的Markdown

第一步:确认你的插件已升级至中文适配版(stvlynn/DOC-Dify-Plugin@zh-fix),旧版不识别class="warning"等语义类名。

第二步:在HTTP请求节点中,Body选择JSON格式,填入:

{ "markdown": "{{ cleaned_md }}", "options": { "font": "FangSong", "heading_level_1_size": 22, "preserve_html": true } }

第三步:关键配置项说明:

• preserve_html设为true——否则<div class="note">这类自定义容器会被直接丢弃;<p>• 字体名必须用中文字体全称(如"FangSong"而非"仿宋"),<strong>【WPS和Office对字体名大小写与空格极其敏感,填错会导致全文默认用Calibri,中文显示为方块】</strong>;</p> <p>• heading_level_1_size单位是Pt,不是px,不是pt,不是磅——必须是整数Pt值。</p> <h2>验证DOCX输出是否保留原始结构</h2> <p>步骤一:在工作流末尾添加「HTTP请求」节点,目标URL填入你部署的Word服务地址(如http://word-service:5001/gen_doc)</p> <p>步骤二:Body选raw → JSON,内容为:</p> <p>{ "title": "{{ metadata.title }}", "content": "{{ cleaned_md }}" }</p> <p>步骤三:检查返回响应中的下载链接是否可访问;若返回404,立即进入容器挂载目录查看<code>/app/word/temp/下是否有生成文件

步骤四:用WPS打开生成的DOCX,重点检查三点:表格边框是否完整、代码块是否带灰色底纹、二级标题是否比一级标题小两号字——任一缺失,说明Jinja清洗或插件选项配置有误。

热门AI工具

更多
UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

相关专题

更多
WorkBuddy核心功能与实操模式
WorkBuddy核心功能与实操模式

深入探索WorkBuddy的强大功能。本专题包含智能问答、文档处理、会议纪要生成、日程管理、任务协作等核心模块的操作指南与最佳实践。通过图文并茂的教程,助您快速上手,最大化发挥WorkBuddy的办公效能。

622

2026.04.09

WorkBuddy核心功能与实操模式
WorkBuddy核心功能与实操模式

深入探索WorkBuddy的强大功能。本专题包含智能问答、文档处理、会议纪要生成、日程管理、任务协作等核心模块的操作指南与最佳实践。通过图文并茂的教程,助您快速上手,最大化发挥WorkBuddy的办公效能。

622

2026.04.09

Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

817

2026.06.05

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

265

2026.06.05

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

256

2026.06.05

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

40

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

40

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

20

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Dify零基础教程
Dify零基础教程

共0课时 | 154人学习

学习Agent,从Dify开始
学习Agent,从Dify开始

共0课时 | 153人学习

Dify 部署与运维指南
Dify 部署与运维指南

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn