用Coze搭建“听故事学中药”工作流:知识库到语音合成全复盘
2026/9/1 13:27:35 网站建设 项目流程

简介:一套面向中医药科普短视频创作的Coze工作流模板,适合内容创作者、知识博主及对中药科普感兴趣的小团队使用。它把“听故事学中药”的角色设定、场景构思、叙事节奏与口语化表达封装成可复用的流程,用户只需在Coze平台导入配置,即可生成以唐代村落、城镇手工业等古代生活场景为背景,融入湿热肿痛、头颈僵硬、咳嗽痰多等常见健康冲突的科普故事脚本,降低短视频选题与文案门槛。包体共2个文件,以yml与yaml为主,分别对应工作流配置定义与清单声明,整体压缩包仅36KB,轻量易部署。目前已有251人学习/下载。通过这套模板,用户能直接获取结构化角色提示、分场景叙事逻辑和可调整的科普内容框架,上手后只需替换具体中药知识点,即可批量产出兼具历史感与趣味性的短视频素材,快速建立差异化内容。 前几天朋友问我:怎么让家里的孩子记住中药名字和药性?我当时脱口而出:别让他们背,让他们听故事。于是我在扣子(coze)上搭了一条“听故事学中药”工作流,输入一个药名,它就能生成一个关于这味药的童话式短故事,再通过语音合成读出来,孩子躺着也能听。今天这篇是我把这个工作流从0到1跑通后的完整复盘,从知识库结构、故事提示词到语音合成和调试记录都有,想复刻的可以直接照着抄。

1. 中药知识不等于好内容:先想清楚让谁听

1.1 孩子听不进药典,但能记住故事

中药科普最劝退人的地方,是它天然带着“教材味”:补血活血、调经止痛、润肠通便……这些词每句话都对,但你不会想听第二遍。尤其是给小朋友讲,你刚说完“性味归经”,他已经开始研究桌边的玩具了。故事则是另一种记忆方式。同样讲当归,如果让它变成一个采药人:天黑前必须赶回山里药铺,路上遇到一个失血过多的樵夫,帮他把气血补上、把肠道淤堵疏通,樵夫问救命恩人叫什么,她只留下一句“当归”。孩子听完会脱口而出:当归是补血的,又是让人“该回来”的药。三个知识点就藏在情节里,不用背。

这其实是内容创作的老逻辑:专业内容要走下神坛,先得变成“能让人感同身受的经验”。中药恰好特别适合故事化,因为很多药名本身就有典故和传说,不缺素材,缺的只是一个把干货翻译成故事的自动化流程。我选择从这个角度切入做coze工作流,目标用户也很清晰:8到12岁孩子的家长,以及想轻松了解中药又不想啃药典的成年人。

1.2 为什么选coze而不是自己写代码

我早期确实用Python直接调过大模型API,能实现,但每一次改流程都想掀桌。比如我想在生成故事前插入一次知识库检索,代码里要把检索结果注入提示词,再改一次输出格式,测试的时候还得自己造数据。换成coze后,这套东西变成了可视化节点:知识库检索是一个节点,大模型是一个节点,语音合成是一个节点,我只需要把线连起来。改流程不用重新部署,加一个节点只需要拖一下。对“内容型项目”来说,这种开发速度太重要了。

当然,dify和n8n我也简单试过,它们不是不能做,但coze对中文用户更友好,插件市场里有现成的语音合成、搜索引擎等能力,而且能一键发布成智能体分享出去。这个项目虽然核心只有一条工作流,但后续要接飞书、要加图片生成,都会越来越依赖平台生态,所以我最终选了coze。我并不是说coze吊打所有平台,而是这个场景下它最省事,省事意味着你能把精力留在内容本身。

1.3 整条工作流跑起来后长这样

先说最终链路,免得后面章节你找不到方向。用户输入一个药名,或者干脆不输入让它随机抽一味药;工作流先去知识库检索对应药方;检索结果和“故事创作提示词”一起交给大模型;大模型生成600字左右的童话故事;随后语音合成节点把它变成音频;最后同时输出音频和文字稿。到这里,一个“听故事学中药”的完整体验就成立了。

有几个容易被忽略的中间步骤,我后面都会展开:知识库不是随便丢文档,要拆成结构化的一行一味药;故事提示词必须把“不能编药性”写死,并且配合知识库引用强度;语音合成前还要把标题符号清理干净,不然TTS会把括号和“【”都读出来。这些坑我都在调试环节踩过,占用的时间比搭节点多一倍。

2. 建一个不会让AI“胡编”的中药知识库

2.1 整篇文档丢进去就废了,要拆成一药一行

coze知识库支持文档和表格两种上传方式,很多人图省事把中药百科整篇丢进去,结果模型检索回来经常是“半篇文章+无关段落”,生成的故事一会儿讲当归一会儿讲黄芪。原因很简单:文档分段粒度不可控,模型拿到的是碎片,不是事实。我的做法是建一张CSV表格,每一味药单独一行,每一行都是一个完整的药材档案。这样检索出去的颗粒度正好,生成故事时能看到的材料也足够聚焦。

表格听起来简单,但真正要做的是“字段设计”。如果只是把说明书搬进表里,模型还是会写得干巴巴。我的字段至少得包含三类信息:事实类(药名、别名、性味、归经、功效、主治)、素材类(药名典故、故事素材)、转化类(通俗说法、适合儿童故事化程度)。第一类保证准确,第二类保证有趣,第三类保证安全。

2.2 字段怎么定才能让模型既准确又有料

我列一个自己正在用的示例表结构,以当归为例:

字段内容
药名当归
别名干归、秦归、云归
性味甘、辛,温
归经肝、心、脾经
功效补血活血,调经止痛,润肠通便
主治血虚萎黄、月经不调、痛经、肠燥便秘
药名典故“当归不归,娇妻改嫁”等民间故事;古人认为此药能使气血各有所归
故事素材采药人当归遇到失血樵夫,用甘温之力帮他恢复体力,最后留下一句“当归”
通俗说法把亏空的气血当燃料加回去,同时把肠道淤堵的路疏通

注意,这里的“功效”和“主治”要经过权威资料核对。我只把它当故事创作的事实底座,不会在回复里写“适合什么人群”或任何与剂量相关的描述。知识库建好后,我建议在导入coze之前做一次人工审校,把容易误读的词汇统一替换成大白话。否则模型在故事里可能写出“当归可以治疗痛经”这种话,语气太像医嘱,很容易误导人。

2.3 导入coze的格式与检索测试

CSV导出的细节:字段名不要带空格和特殊符号,比如“药名”就写“药名”,别写“药 名”。上传到coze知识库后,官方默认会自动分段,但表格数据我希望的是整行命中,所以要找到“分段设置”,选“按行”或“不自动分段”。如果你忽略这一步,模型可能只抽到表格里的一列,故事里只有“当归 甘辛温”几个词,完全没法用。

上传完不要急着写工作流,先在知识库页面做检索测试:搜“当归”,看返回的是一条完整记录,还是被切开的一段;再搜“补血”,看能不能找到当归这一行。这一步能排除大量后续问题。我前期一半的调试时间都花在“知识库根本没检索对”上,后来养成习惯:每个新药材入库后,先检索,再进工作流。

3. 故事生成节点的提示词:让AI“戴着镣铐跳舞”

3.1 我的核心提示词模板

知识库负责“正确”,提示词负责“好听”。我在大模型节点里用的是这一版,已经跑了十几味药,稳定度很高:

你是一位中药文化故事作家。你会收到知识库检索结果,内容是某味药材的档案。 请写一个适合8~12岁孩子听的3分钟童话故事,全文控制在600字左右。 硬性要求: 1. 以药材为拟人化主角,名字用该药材的名字; 2. 必须使用检索结果中的性味、功效、主治,可以改编成情节,但严禁虚构或夸大药效; 3. 故事要有悬念开头、一个困难、一个解决、一句点题收尾; 4. 用孩子能懂的生活化类比解释药理作用; 5. 只输出“【故事标题】”和正文,不要输出创作说明。

这套提示词里最重要的不是“写得好”,而是“别跑偏”。我把“必须使用检索结果”放在最前面,并且在coze节点里开启知识库引用,把引用字段手动限制为“药名、功效、主治、故事素材”四个。这样模型看到的材料范围被收紧,即使它想自由发挥,也巧妇难为无米之炊。输出格式的约束也很关键,因为下一步语音合成需要干净文本。

3.2 温度、知识库引用和负面约束

很多朋友做故事类内容喜欢把温度调到很高,觉得模型会更有想象力。我的实测结果是:温度高确实脑洞大,但也会把药效改得离谱。印象最深的一次,生成“黄连”时模型写“黄连被太阳晒得金光闪闪,人们吃了它就能变成金子”,这已经完全脱离知识库了。后来我把温度降到0.6到0.7,同时在提示词后面追加一句负面约束:“不得出现金色、宝石、魔法特效等与药材本身无关的夸张设定”。低温确实会让故事稍微收敛,但它换来的是准确,这个取舍非常值。

知识库引用的强度也有讲究。coze的大模型节点可以设置“引用知识库强度”,我一般设为中等偏上。太低,模型会无视知识库自由创作;太高,它会把检索结果整段粘贴进故事,读起来像药方。调到中间后,它既会参考事实,又愿意用自己的语言改写,是最舒服的状态。

3.3 当归故事从模板到成品的实际效果

用这套配置跑出来的当归故事,我先念一段给你感受:“当归姑娘住在云雾山的药铺。一天傍晚,一个面色苍白的樵夫敲门,说自己采药时摔伤,流了很多血,头晕得厉害。当归姑娘从药柜里取出晒干的根茎,煮水让他喝下,又塞给他一把蜂蜜核桃,说——你气血亏虚,我先帮你把血补起来,再把你肠道里的淤堵通开,两件事缺一不可。樵夫喝完,脸上慢慢有了血色,问她:姑娘,你叫什么名字?当归姑娘笑着说:该回家的时候,记得想起我,我叫当归。”

这段故事没有华丽词藻,但“补血”“疏通”“当归与回家”三个点全部落在情节里。我拿给孩子试听,他记住了“当归是补血的,是让人回家的药”。比直接读药典强太多。所以故事生成节点不在“文学性”,而在“把知识点翻译成人话”,这也是整个工作流最值得打磨的地方。

4. “听”的关键不是TTS,是文本预处理

4.1 多音色方案里怎么选

coze里的语音合成选项不少:豆包语音、火山引擎TTS、各种第三方插件。我最终用的是豆包语音。理由只有一个:中文叙事感强,音色更像“讲故事的人”,而不是播新闻的。有的插件音色确实高级,但读完一整段故事像在念广告片旁白;有的插件支持情感标记,但要在节点里传一长串SSML,试错成本太高。选择方法其实很粗暴:用同一段故事,切换几个音色听一遍,选那个让你想闭上眼睛继续听的。

工作流里语音合成节点通常只需要两个输入:文字文本、音色参数。刚开始我为了省事直接选了默认音色,结果出来一股“机器人语音助手”味。后来换了“温柔女声”,语速调到0.9,音量保持1.0,故事感立刻出来了。如果你面向的受众偏成年,可以换个成熟一点的男声;给孩子听,我还是推荐柔和、靠近“幼儿园老师”的音色。

4.2 标题符号被朗读的坑和清理方法

这是我翻车最多次的地方。第一版工作流输出的音频,TTS把“【故事标题】”和正文里的括号、编号全部读了出来,比如“括号故事标题括号当归,一、当归姑娘住在……”——听得人头皮发麻。问题出在大模型输出的文本带了格式符号,而语音合成节点原封不动读了。解决办法有两个:一是在提示词里要求模型“标题与正文之间只用换行分隔,不要使用任何括号和编号”;二是在合成之前加一个代码节点,用正则把“【】”、中英文括号、多余换行符全部清掉。我两个都做了,音频才干净。

顺带一提,如果故事里出现了数字,比如“三分钟后”,TTS通常会正常读成“三分钟”,但如果出现“3分钟”这种半角数字,部分引擎会读成“三分钟”或“三分”。为了稳定,我会在代码节点里把半角数字统一转成中文数字,或者干脆在提示词里规定全文使用中文数字。这一条对中文叙事类音频尤其重要。

4.3 长文本分段合成与参数调节

一次生成600字中文故事,语音合成通常没问题;但如果你把故事加长到900字,或者加入了标题和结尾,就很容易触发单次合成长度上限。我的处理方式是分段:在代码节点里按句号把故事切成几段,每段不超过300字,分别调用语音合成,再用音频拼接节点拼成完整文件。切分的时候要注意断句位置,别把“当归”这种词拦腰切断。

参数方面,语速0.9、音量1.0是我的基线。调音量不要图“响亮”,孩子戴耳机听,炸耳朵的效果很糟糕。如果平台支持停顿标签,可以在故事高潮前加一个短停顿,能做出“卖关子”的效果。但SSML标签在可视化节点里传参容易格式错乱,我建议第一步先不用,等整条流程稳定后再往细调。

5. 工作流调试实录:三个坑让我改了三版

5.1 节点变量类型不对,故事变成一坨array

coze工作流是可视化连线,但连线不是万能的。第一次搭的时候,知识库检索节点直接连到了大模型节点,我以为会传一段文本,结果提示词里出现了一坨“object Object”、“array”。原因是检索节点的输出是结构化的记录列表,不是字符串。我的解决办法是在两个节点之间加一个代码节点,用Python把检索结果逐行拼接成干净的文本,再传给大模型

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询