AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Dify自带的长故事生成器工作流
发布日期:2024-07-28 08:15:34 浏览次数: 2095 来源:NLP工程化


本文主要简要的介绍了Dify自带的长故事生成器工作流的实践过程,尤其是迭代节点和代码节点的灵活组合,可以让Dify工作流如虎添翼。当工作流执行结束后,可以通过查看日志->追踪,对于工作流中每个节点执行情况进行详细的查看和调试。

一.开始(开始节点)

开始节点比较简单,主要是输入故事文章的标题和大纲。详细输入和输出如下:

1.输入
{
"article_title": "庄子五个启迪心灵的故事治愈了我的精神疲惫",
"article_outline": "文章大纲:关于评价、得失、困境、选择和心态的五个故事",
"sys.query": "故事生成",
"sys.files": [],
"sys.conversation_id": "5e874989-ea79-4de0-b6bb-2cca6a8ef6fc",
"sys.user_id": "4bc1624f-773d-4a39-a0c6-52008a13320e"
}
2.输出
{
"article_title": "庄子五个启迪心灵的故事治愈了我的精神疲惫",
"article_outline": "文章大纲:关于评价、得失、困境、选择和心态的五个故事",
"sys.query": "故事生成",
"sys.files": [],
"sys.conversation_id": "5e874989-ea79-4de0-b6bb-2cca6a8ef6fc",
"sys.user_id": "4bc1624f-773d-4a39-a0c6-52008a13320e"
}

二.生成副标题和大纲(LLM节点)

该节点功能为根据article_title(文章标题)和article_outline(文章大纲),对section(可理解为一级标题)扩展为bullets(可理解为二级标题)。重点是把提示词写好,并且给出一个样例(One-Shot Learning)。涉及提示词部分通常都需要精调。该节点部分设置信息如下所示:

1.数据处理
{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<instruction>\n1. 根据提供的文章标题和大纲撰写一篇长文章。按照以下步骤完成任务:\n2. 使用article_title作为文章的标题。\n3. 根据提供的article_outline组织文章。大纲中的每一部分应在文章中对应一个部分。\n4. 确保文章内容丰富,每一部分包含详细信息、解释、示例和任何其他相关内容,以全面覆盖主题。\n5. 确保各部分之间过渡自然,以保持连贯性。\n6. 输出应不包含任何XML标签。仅提供以下键和值的JSON数组:\"section\"(文章各部分的标题),\"bullets\"(文章每部分的概要)。\n<example>\n<input>\n<article_title>气候变化对沿海城市的影响</article_title>\n<article_outline>\n1. 引言\n2. 海平面上升\n3. 风暴频率增加\n4. 结论\n</article_outline>\n</input>\n<output>\n[\n{\n\"section\": \"引言\",\n\"bullets\": \"1. 气候变化对沿海城市影响的概述 2. 理解这些影响的重要性\"\n},\n{\n\"section\": \"海平面上升\",\n\"bullets\": \"1. 海平面上升的原因 2. 对沿海基础设施和社区的影响 3. 受影响城市的例子\"\n},\n{\n\"section\": \"风暴频率增加\",\n\"bullets\": \"1. 气候变化与风暴频率之间的联系 2. 更频繁和更严重风暴对沿海地区的影响 3. 最近风暴的案例研究\"\n},\n{\n\"section\": \"结论\",\n\"bullets\": \"1. 总结关键点 2. 应对气候变化的紧迫性 3. 对政策制定者和社区的行动呼吁\"\n}\n]\n</output>\n</example>\n</instruction>\n<input>\n<article_title> 庄子五个启迪心灵的故事治愈了我的精神疲惫 </article_title>\n<article_outline> 文章大纲:关于评价、得失、困境、选择和心态的五个故事 </article_outline>\n</input>\n<output>",
"files": []
}
]
}
2.输出

输出基本上是通过大模型生成副标题(section|可理解为一级标题)和大纲(bullets|可理解为二级标题),即text字段内容。

{
"text": "[\n{\n\"section\": \"关于评价\",\n\"bullets\": \"1. 故事背景:庄子与他的弟子 2. 评价的相对性:不同视角下的价值判断 3. 启示:如何看待他人的评价,保持内心平和\"\n},\n{\n\"section\": \"得失\",\n\"bullets\": \"1. 故事内容:庄子与一位渔夫的对话 2. 得失观念的转变:从物质到精神的追求 3. 启示:学会珍惜当下,放下执念\"\n},\n{\n\"section\": \"困境\",\n\"bullets\": \"1. 故事情节:庄子在困境中的思考 2. 困境带来的成长与反思 3. 启示:面对困难时,如何调整心态,寻找解决之道\"\n},\n{\n\"section\": \"选择\",\n\"bullets\": \"1. 故事描述:庄子的两难选择 2. 决策过程中的智慧与勇气 3. 启示:在生活中做出选择时,要听从内心,勇敢前行\"\n},\n{\n\"section\": \"心态\",\n\"bullets\": \"1. 故事总结:庄子的心态哲学 2. 积极心态的重要性及其影响力 3. 启示:培养积极心态应对生活挑战,提升幸福感\"\n}\n]",
"usage": {
"prompt_tokens": 515,
"prompt_unit_price": "0.15",
"prompt_price_unit": "0.000001",
"prompt_price": "0.0000773",
"completion_tokens": 348,
"completion_unit_price": "0.60",
"completion_price_unit": "0.000001",
"completion_price": "0.0002088",
"total_tokens": 863,
"total_price": "0.0002861",
"currency": "USD",
"latency": 4.521080200036522
}
}

三.提取副标题和大纲(代码节点)

该节点为代码节点,即通过Python代码方式提取副标题和大纲为Array[Object]类型。

def main(arg1: str) -> dict:
import json
data = json.loads(arg1)

# Create an array of objects
result = [{'section': item["section"], 'bullets': item["bullets"]} for item in data]

return {
'result': result
}
1.输入
{
"arg1": "[\n{\n\"section\": \"关于评价\",\n\"bullets\": \"1. 故事背景:庄子与他的弟子 2. 评价的相对性:不同视角下的价值判断 3. 启示:如何看待他人的评价,保持内心平和\"\n},\n{\n\"section\": \"得失\",\n\"bullets\": \"1. 故事内容:庄子与一位渔夫的对话 2. 得失观念的转变:从物质到精神的追求 3. 启示:学会珍惜当下,放下执念\"\n},\n{\n\"section\": \"困境\",\n\"bullets\": \"1. 故事情节:庄子在困境中的思考 2. 困境带来的成长与反思 3. 启示:面对困难时,如何调整心态,寻找解决之道\"\n},\n{\n\"section\": \"选择\",\n\"bullets\": \"1. 故事描述:庄子的两难选择 2. 决策过程中的智慧与勇气 3. 启示:在生活中做出选择时,要听从内心,勇敢前行\"\n},\n{\n\"section\": \"心态\",\n\"bullets\": \"1. 故事总结:庄子的心态哲学 2. 积极心态的重要性及其影响力 3. 启示:培养积极心态应对生活挑战,提升幸福感\"\n}\n]"
}
2.输出
{
"result": [
{
"section": "关于评价",
"bullets": "1. 故事背景:庄子与他的弟子 2. 评价的相对性:不同视角下的价值判断 3. 启示:如何看待他人的评价,保持内心平和"
},
{
"section": "得失",
"bullets": "1. 故事内容:庄子与一位渔夫的对话 2. 得失观念的转变:从物质到精神的追求 3. 启示:学会珍惜当下,放下执念"
},
{
"section": "困境",
"bullets": "1. 故事情节:庄子在困境中的思考 2. 困境带来的成长与反思 3. 启示:面对困难时,如何调整心态,寻找解决之道"
},
{
"section": "选择",
"bullets": "1. 故事描述:庄子的两难选择 2. 决策过程中的智慧与勇气 3. 启示:在生活中做出选择时,要听从内心,勇敢前行"
},
{
"section": "心态",
"bullets": "1. 故事总结:庄子的心态哲学 2. 积极心态的重要性及其影响力 3. 启示:培养积极心态应对生活挑战,提升幸福感"
}
]
}

四.迭代(迭代节点+LLM节点)

迭代节点可以理解为一个循环,循环的内容就是迭代节点中的操作。

重点还是写好提示词,告诉文章标题和完整大纲,让LLM写一个部分内容。

因为有5个一级标题,所以需要5次迭代,从而生成相应章节内容。

1.输入

下面是整个迭代节点的输入,即副标题和大纲:

{
"iterator_selector": [
{
"section": "关于评价",
"bullets": "1. 故事背景:庄子与他的弟子 2. 评价的相对性:不同视角下的价值判断 3. 启示:如何看待他人的评价,保持内心平和"
},
{
"section": "得失",
"bullets": "1. 故事内容:庄子与一位渔夫的对话 2. 得失观念的转变:从物质到精神的追求 3. 启示:学会珍惜当下,放下执念"
},
{
"section": "困境",
"bullets": "1. 故事情节:庄子在困境中的思考 2. 困境带来的成长与反思 3. 启示:面对困难时,如何调整心态,寻找解决之道"
},
{
"section": "选择",
"bullets": "1. 故事描述:庄子的两难选择 2. 决策过程中的智慧与勇气 3. 启示:在生活中做出选择时,要听从内心,勇敢前行"
},
{
"section": "心态",
"bullets": "1. 故事总结:庄子的心态哲学 2. 积极心态的重要性及其影响力 3. 启示:培养积极心态应对生活挑战,提升幸福感"
}
]
}
2.输出

下面是整个迭代节点的输出,根据副标题和大纲生成相应章节内容。

{
"output": [
"### 关于评价\n\n在庄子的哲学世界中,评价不仅是对事物的判断,更是一种相对的存在。庄子与他的弟子之间的故事常常揭示了这一点。在一次闲聊中,弟子向庄子请教:“老师,您认为一个人的价值如何评判?”庄子微微一笑,回答道:“就像一只蝴蝶,有人觉得它美丽,有人却认为它平凡。每个人的眼光不同,自然会得出不同的结论。”\n\n这个故事背景为我们提供了一个重要的视角:评价是相对的。无论是对他人的看法还是自我的认知,都受到个人经历、文化背景和情感状态等多重因素的影响。因此,在面对外界评价时,我们应当意识到,这些声音并不一定反映真实的自我,而只是他人视角下的一种解读。\n\n进一步地,这种相对性引发了我们对于如何看待他人评价的思考。庄子曾说:“道之所存,心之所安。”这句话提醒我们,在纷繁复杂的社会中,保持内心的平和尤为重要。当我们遭遇批评或赞扬时,不妨停下来思考:这些评价是否真正符合自己的价值观?又或者,它们只是他人情绪的一种投射?通过这样的反思,我们可以更好地理解自己,从而不被外界所左右。\n\n因此,从庄子的智慧中,我们获得了一种启示:在生活中,无论面对怎样的评价,都要保持内心的宁静与坚定。只有这样,我们才能在纷扰的人生旅途中找到属于自己的方向,而不被他人的声音所迷惑。这不仅有助于我们的精神成长,也能让我们在复杂的人际关系中游刃有余,活出真实而充实的人生。",
"### 得失\n\n在庄子的哲学世界中,得失的观念常常被重新审视和解构。一个著名的故事讲述了庄子与一位渔夫之间的对话,这段对话不仅揭示了物质与精神之间的深刻关系,也为我们提供了关于如何看待得失的重要启示。\n\n故事发生在一个宁静的早晨,庄子漫步于河边,偶然遇见了一位正在捕鱼的渔夫。渔夫面带微笑,悠闲地将鱼网抛入水中,似乎并不急于捕捞。他用简单而朴素的话语告诉庄子:“我每天只需捕够几条鱼,就能满足我的生活。我不追求更多,因为那样会让我疲惫不堪。”\n\n庄子听后,不禁思索:这位渔夫所拥有的,不仅是他手中的鱼,更是一种超脱于物质之外的心态。他明白,真正的富足并非来自于外界的积累,而是内心对当下生活状态的珍惜与满足。这种从容淡泊、知足常乐的态度,让他在平凡中找到了幸福。\n\n随着对话深入,庄子向渔夫提出了一个问题:“如果你能够捕到更多的鱼,你是否会感到更快乐?”渔夫摇摇头,回答道:“我并不需要更多。追求过多只会让我失去现在所拥有的一切,我宁愿享受这份宁静。”这一番话让庄子深受触动,他意识到,在现代社会中,人们往往被物质欲望驱使,而忽略了精神层面的追求。\n\n通过这次交流,庄子的得失观念也发生了转变。他开始反思自己曾经对于成功和财富的不懈追求,并逐渐领悟到:人生最重要的是珍惜当下、放下执念。无论外界环境如何变化,我们都应保持内心的平和与满足。正如那位渔夫所展现出的智慧一样,真正值得追求的是一种内心深处的安宁与自在。\n\n这个故事给我们的启示是深远而持久的。在快节奏、高压力的现代生活中,我们常常迷失在对物质利益的不懈追逐之中。然而,通过学习渔夫那种简单而纯粹的人生态度,我们可以学会珍惜眼前的一切,从而减轻精神负担,实现自我治愈。在每一个瞬间找到快乐,让生命充满意义,这才是真正的人生智慧。",
"### 困境\n\n在庄子的生活中,曾有一段时间,他面临着巨大的困境。那是一个风雨交加的夜晚,庄子独自坐在山顶,四周寂静无声,只有风声和雨滴敲打岩石的声音。他的心中充满了迷茫与不安:作为一位哲学家,他常常思考人生的意义,但此刻却被现实的压力所困扰。朋友们对他的期望、社会对他的评价,以及他自身对理想生活的追求,都让他感到无比沉重。\n\n在这样的困境中,庄子开始反思自己的处境。他意识到,这些外部因素虽然给他带来了压力,却也促使他深入思考内心真正渴望的是什么。他回忆起自己曾经教导弟子的道理:“道生一,一生二,二生三,三生万物。”这句话提醒他,无论多么复杂的问题,其实都可以归结为简单的选择和理解。于是,他决定不再被困扰,而是要从这场风暴中寻找出路。\n\n通过深刻的自省和思考,庄子逐渐领悟到困境并非绝境,而是一种成长的契机。他开始尝试调整自己的心态,将注意力从外界转向内心。他明白,在面对困难时,不应只关注问题本身,而应寻找解决之道。正如大海中的波涛汹涌,总会有平静的一刻,只要耐心等待,就能找到方向。\n\n这一过程不仅让庄子重新审视了自己的价值观,也使他更加坚定了追求内心宁静的重要性。在经历了这场精神上的洗礼后,他终于找到了应对困境的方法:保持冷静、积极面对,并相信每一次挑战都是通往更高智慧的一步。\n\n这个故事告诉我们,当我们身处困境时,不妨像庄子一样,从内心出发进行反思与调整。面对困难,我们可以选择放下执念,以开放的心态去探索解决之道。这不仅能帮助我们走出当下的阴霾,更能在未来的人生旅途中,让我们拥有更强大的内心力量。",
"### 选择\n\n在庄子的哲学世界中,选择常常是一个令人深思的话题。故事发生在一个阳光明媚的早晨,庄子与他的弟子漫步于山间小径,享受着大自然的宁静与美好。突然,他们遇到了一条河流,河水清澈见底,但却流速极快。在河的两岸,各有一条小路,一边通往繁华的市集,另一边则引向幽静的山林。\n\n弟子面临着一个两难的选择:他可以选择前往市集,追求物质上的富足和名利;也可以选择进入山林,追寻内心的宁静与自我修养。面对这个抉择,他感到无比困惑,不知该如何决断。\n\n庄子看出了弟子的犹豫,于是开始引导他思考。他告诉弟子:“人生就像这条河流,有时我们不得不做出选择,而每个选择都有其独特的意义。”庄子接着分享了自己的智慧,他认为,无论是追求物质还是精神,都没有绝对的对错。关键在于,我们是否能够倾听内心真实的声音,并勇敢地迈出那一步。\n\n经过一番深思熟虑,弟子终于意识到自己真正渴望的是内心的平和,而非外界的喧嚣。他决定放弃前往市集的诱惑,转而走向那片幽静的山林。在那里,他感受到大自然带来的宁静与安详,也找到了自我反省与成长的机会。\n\n这个故事给我们的启示是,在生活中做出选择时,我们常常会面临各种各样的诱惑和压力。然而,真正重要的是要倾听自己的内心,不被外界所左右。勇敢地去追寻那个让自己感到充实和快乐的人生方向,这才是我们应当努力践行的人生哲学。\n\n通过庄子的智慧,我们明白了:每一次选择都是一次自我发现之旅,只要我们坚定信念、勇敢前行,就能找到属于自己的道路。这种勇气不仅能帮助我们克服眼前的困境,更能治愈我们精神上的疲惫,让生命焕发出新的光彩。",
"### 心态\n\n庄子的心态哲学是其思想体系中不可或缺的一部分,他通过生动的故事传达了对生活的深刻理解。在庄子的著作中,常常可以看到他对心态的重视。他认为,心态不仅影响个人的感受与体验,更在很大程度上决定了一个人如何面对生活中的各种挑战。\n\n#### 故事总结:庄子的心态哲学\n\n有一次,庄子和他的弟子们在河边散步,他们看到一只小鸟在树枝上欢快地鸣叫。弟子们纷纷赞叹这只小鸟的自由与快乐,而庄子却微微一笑,说道:“你们可曾想过,这只小鸟并不为明天而忧虑,也不为过去而懊悔,它只是活在当下,享受此刻。”这个简单的故事让弟子们意识到,真正的快乐源于一种无拘无束、随遇而安的心态。庄子的智慧在于,他教导人们要放下对未来的不安与对过去的执念,以一种平和、开放的心态去面对生活。\n\n#### 积极心态的重要性及其影响力\n\n积极心态的重要性体现在多个方面。首先,它能够帮助我们更好地应对压力和困难。当我们以积极的眼光看待问题时,我们会发现解决方案往往比想象中更容易找到。其次,积极心态还能够提升我们的幸福感和满足感。研究表明,那些拥有积极思维的人通常更容易感受到生活中的美好,并能更有效地建立良好的人际关系。此外,积极心态也具有一定的感染力,它能激励周围的人共同向上,使整个环境变得更加和谐。\n\n#### 启示:培养积极心态应对生活挑战,提升幸福感\n\n从庄子的故事中,我们可以得到启示:培养积极心态是应对生活挑战的重要策略。在日常生活中,我们可以通过一些简单的方法来增强自己的积极思维。例如,每天花几分钟时间反思自己所拥有的美好事物,无论是家人的陪伴、朋友的支持还是工作的成就,都值得我们去珍惜。同时,在面对困难时,不妨尝试将问题视为成长机会,而不是障碍。这种转变不仅能减轻心理负担,还能让我们在逆境中找到前行的动力。\n\n总之,通过学习庄子的心态哲学,我们能够更深入地理解如何调整自己的内在状态,以便更从容地面对生活中的风风雨雨,从而提升我们的整体幸福感。在这个过程中,让我们一起努力培养一种乐观、开放且包容的心态,让生命之花绚烂绽放。"
]
}

五.代码(代码节点)

输入是list,输出是把list中的元素通过"\n"拼接:

def main(articleSections: list):
data = articleSections
return {
"result": "\n".join(data)
}

六.回答(直接回复节点)

代码的输出就是回答的输入,直接输出即可。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询