Skip to content

本文档演示如何搭建一个生成长文本的工作流,其核心是通过循环节点多轮扩写大纲。 场景描述 大语言模型具备强大的自然语言处理能力,可以生成高质量的文本内容,但是其输入输出长度受限,通过一轮简单的交互难以实现长文写作场景。但是从而实现长文生成。 扣子工作流提供了流程定制化的能力,我们可以把长文生成的流程拆分为多个步骤,例如先通过大模型节点生成大纲、再使用循环节点依次扩写各个段落,最后将各个段落组合起来,从而实现长文生成流程。此工作流可适用于学术写作、商业报告、小说创作等多种场景。 效果演示

工作流设计 工作流运行流程如下: 1. 开始节点接收用户输入,确定长文主题。 2. 大模型节点(生成大纲)用于生成文章大纲。 3. 循环节点将大纲中的每个小标题扩写为完整的段落。 4. 文本处理节点将扩写后的段落进行拼接。 5. 结束节点输出完整的长文。 工作流整体结构如下:

核心节点 工作流核心节点配置如下:

节点名称

说明

示例

开始节点

开始节点用于接收用户设置的文章标题,也就是长文的主题。 在开始节点定义变量 title,并为变量设置描述文章主题。

大模型节点(生成大纲)

大模型节点根据用户设置的文章标题生成大纲。 我们需要在系统提示词中要求模型输出包含层级结构的文章大纲,且为字符串数组格式,每个数组元素是一个字符串,代表一个子章节主题。这样处理是为了便于循环节点遍历这个数组的每个元素(子章节主题)来生成各个段落。 大模型节点设置如下: 输入:定义变量 title,引用开始节点的 title 变量。 系统提示词:定义一段系统提示词,你可以直接参考生成大纲提示词,或者输入你的需求,让AI帮助你生成提示词。 用户提示词:帮我写个文档大纲,主题是。 输出:定义输出变量 output,格式为 Array of String。

循环节点

循环节点遍历大纲数组中的每个元素(子章节主题)来生成各个段落。其中包含两个节点: 大模型节点:每次执行时,根据子章节主题生成对应的段落。多次循环后生成全部段落。 设置变量节点:每次执行时,将大模型生成的段落设置为变量,在下一次循环中作为参考信息传递给大模型节点。 循环节点设置如下: 循环类型:使用数组循环。 循环数组:设置变量 outline,引用生成大纲节点的输出变量 outline。 中间变量:设置变量 last_paragraph,这个变量用于传递上次已生成的段落内容,会在下次循环中提供给段落扩写节点作为参考 中间变量值设置为一个空格,因为首次循环时没有上个段落,只传递一个空格即可。 输出:设置变量 content,引用循环体中段落扩写节点的输出变量 output。格式固定为字符串数组。

循环中的大模型节点(段落扩写)

段落扩写节点根据子章节主题生成对应的段落,写作时会参考用户指定的标题、整体大纲等信息,严格遵循字数要求。 段落扩写设置方式如下: 输入:定义以下输入变量,便于提示词引用。 subtitle:本次要扩写的小标题。引用循环节点输入变量 outline 中的 item(in outline)。 title:文章的整体标题。引用开始节点变量 title,作为大模型的参考信息。 last_paragraph:上次循环中已生成的段落内容。引用循环节点中间变量 last_paragraph,作为大模型的参考信息。 outline:文章的整体大纲。引用生成大纲节点的变量 outline,作为大模型的参考信息。 系统提示词:定义一段系统提示词,你可以直接参考段落扩写提示词,或者输入你的需求,让AI帮助你生成提示词。 注意提示词中需要指定段落的大致长度等要求,提示词质量会直接影响内容生成质量。 用户提示词:你可以直接参考段落扩写用户提示词。建议将用户指定的标题、大纲等信息引用到提示词中,提供给大模型参考,以便生成的内容上下文衔接、风格一致。 输出:定义输出格式为 Markdown,并定义输出变量 output,格式为 String。每一轮生成的段落会保存为字符串,其中是 Markdown 格式的文本段落。

循环中的设置变量节点

设置变量节点将大模型生成的段落设置为变量,在下一次循环中作为参考信息传递给大模型节点。 这里我们将循环节点已设置好的中间变量 last_paragraph 设置为段落扩写节点的输出变量 output。

文本处理节点

文本处理节点拼接 Array 中的每一个元素,将循环节点生成的数组格式文章拼接为一个完整的字符串,便于结束节点返回与展示。 选择应用:选择字符串拼接。 输入:默认变量 String1,变量值选择引用循环节点的输出变量content。 字符串拼接:输入 ,表示拼接 String1 中的每个元素。 注意拼接时数组之间的连接符需要设置为换行符(\n)。

结束节点

结束节点用于输出和展示完整的文章内容。 输出模式:选择返回文本 输出:定义变量 output,引用文本处理节点的输出变量 output。 回答内容:设置为 ,表示直接输出完整的文章内容。

编排完成后,可以单击试运行,查看工作流的运行结果,观察各个节点的输入输出是否符合预期。 试运行结束后,可以在输出节点的末行,单击预览,查看完整长文渲染后的效果。 试运行并预览:

预览效果:

相关资源 生成大纲系统提示词 大模型节点(生成大纲)的系统提示词如下,你也可以根据具体场景的需求调整,例如设置字数要求、段落数量等。

角色

你是一个专业的大纲写作助手,擅长根据各种主题和需求,生成逻辑清晰、结构合理的大纲。无论是小说、论文、报告还是其他类型的写作,你都能提供高质量的大纲框架。

技能

技能 1: 根据主题生成大纲

  • 根据用户提供的主题和要求,生成一份详细的大纲。
  • 大纲应包含主章节标题和子章节标题,体现文章逻辑结构。
  • 所输出的大纲内容必须逻辑清晰、层次分明,符合一般的写作规范。

限制

  • 大纲中的标题应简洁清晰,避免过于冗长和复杂的表述。
  • 输出格式必须为字符串数组,每个完整的主题及其子主题是一个字符串,是数组中的元素
  • 子章节大纲深度不超过3层

示例

用户输入:熬夜的危害 你的输出: "1. 引言\n 1.1 熬夜现象的普遍性\n 1.2 探讨熬夜危害的重要性", "2. 身体生理层面危害\n 2.1 免疫系统受损\n 2.1.1 免疫力下降易生病\n 2.1.2 疾病恢复时间延长\n 2.2 心血管问题\n 2.2.1 血压异常波动\n 2.2.2 心律不齐风险增加\n 2.3 内分泌失调\n 2.3.1 激素分泌紊乱\n 2.3.2 对新陈代谢的不良影响”, "3. 心理健康方面危害\n 3.1 情绪问题\n 3.1.1 焦虑抑郁倾向\n 3.1.2 情绪波动大\n 3.2 认知功能受损\n 3.2.1 记忆力减退\n 3.2.2 注意力不集中”, "4. 结论\n 4.1 总结熬夜危害要点\n 4.2 倡导健康作息习惯”

段落扩写系统提示词 大模型节点(段落扩写)的系统提示词如下,你也可以根据具体场景的需求调整,例如设置字数要求、段落数量等。

角色

你是一位专业的写作专家,在长文生成领域经验丰富。具备深厚的文字功底和敏锐的逻辑思维,能够根据各种要求创作出高质量的文本。尤其擅长按照指定的标题、大纲生成对应的段落,确保生成内容逻辑连贯、条理清晰,语言表达精准、流畅自然。

技能:根据主题扩写段落

  • 你负责文章的扩写工作,即根据文章大纲的某一部分,扩写文章,在大纲小标题的基础上补全对应的内容段落。
  • 用户会提供文章的主题、文章的整体大纲、你正在写的部分、你已经写好的上一个段落,供你理解和学习。
  • 扩写前应仔细分析文章主题和整体大纲,确保理解文章的整体方向和目标。
  • 根据用户指定的风格要求,例如正式、活泼、学术、平实等,调整段落的语言风格,保证生成的段落从用词到句式结构都契合用户预期的风格。
  • 扩写时保证文章风格与提供给你的参考内容风格一致,和你已经写好的上一个段落保持内容连贯、衔接自然。
  • 所输出的段落内容必须结构合理,条理清晰。

限制

  • 使用 Markdown 格式回复。
  • 生成的段落需严格符合用户给定的标题、大纲、风格等要求。 不需要输出与文章内容无关的描述。
  • 内容的长度应与大纲层级相适应,通常为300-500字左右,但可以根据主题的复杂程度和重要性进行适当调整。

段落扩写用户提示词

请根据 这个主题生成一段文章。

以下信息供你参考: 文章的主题: 文章的整体大纲: 你正在写的部分: 你已经写好的上一个段落: