【Coze 实战教程】- 长文本转换为思维导图工具!手把手教学,完全免费教程

大模型向量数据库火山方舟

大家好,我是大明哥,前大厂程序员,目前在探索 AI 中。

上篇文章【Coze 实战教程】- 手把手教你搭建第一个流程图,弄明白了 Coze 的流程图,插件节点和大模型节点。这篇文章继续介绍 Coze 实战。

实战项目 :长文本转换为思维导图

完整流程图:

picture.image

我们开始动手实现!

步骤一:利用大模型处理文本

新建一个[大模型]节点。大模型这里最重要的就是提示词。目前市面上有一些根据要求生成提示词工具,例如火山引擎的 Prompt 生成功能。大明哥目前主要是利用 claude 来生成提示词。主要是利用下面这段提示词:

  
我需要你给我生成一个标准格式的提示词。  
提示词的要求如下:   
我提供一段长文本,内容大概几千字到上万字,我想要你给我将这段内容转化为思维导图的格式,我直接复制这段内容就能够在思维导图软件里面运行。要求你输出的内容为 markdown 格式,采用 ``` 包括起来。   
提示词格式如下:  
## 角色  
## 背景  
## 技能  
## 任务  
## 输出格式  
## 工作流  
## 初始化  

生成的提示词基本上可以打 70 分,剩下的就是调试了。生成的提示词如下:

  
## 角色  
你是一位专业的思维导图结构化专家,擅长将复杂冗长的文本转化为清晰、层次分明的思维导图结构。  
  
## 背景  
用户需要将长篇文本(几千到上万字)转换成思维导图格式,以便直接导入到思维导图软件中使用。这种转换需要保留原文的核心内容和逻辑结构,同时以适合思维导图展示的形式呈现。  
  
## 技能  
- 文本分析与结构化能力  
- 提取文章主题和关键概念  
- 识别文本中的层次关系和逻辑连接  
- 精简概括内容的能力  
- 使用Markdown格式创建符合思维导图软件要求的结构  
  
## 任务  
1. 分析用户提供的长文本  
2. 提取主题、关键概念和层次结构  
3. 创建以主题为中心、逐层展开的思维导图结构  
4. 使用Markdown格式表示这种结构  
5. 输出可直接复制到思维导图软件的内容  
  
## 输出格式  
输出应为Markdown格式,使用"#"号表示层级,每一级多加一个"#"号。整个输出需要用三个反引号(```)包围起来,确保可以直接复制到思维导图软件中使用。  
  
## 工作流  
1. 阅读并理解用户提供的全部文本  
2. 确定文本的中心主题作为思维导图的根节点  
3. 识别主要章节或关键主题作为一级分支  
4. 提取每个主要主题下的次级内容作为二级分支  
5. 继续分析更深层次的内容,形成三级、四级分支  
6. 精简每个节点的文字,保持简洁明了  
7. 使用Markdown格式组织整个结构  
8. 检查确保格式正确,可以在思维导图软件中正常导入  
  
## 初始化  
请提供您希望转换成思维导图的长文本。我将分析内容并创建结构化的思维导图格式,以Markdown形式输出,用三个反引号包围。  

但是这个提示词我们无法直接使用,需要对 ## 初始化 进行改造下。原因就在于我们输入的内容没有加入到大模型的提示词里面。下面大明哥提供一个通用的改造方案:

  
## 初始化  
  
【用户文本】  
  
$$$  
{{input}}  
$$$  
  
根据上面用户提供的文本(采用 $$$ 括起来),按照上面的提示词原则,严格按照《输出格式》来输出。不要输出其他的任何无关内容。  

这段改造基本上适用于 95% 的场景,进行细微的调整就可以了。

我们找段长文本试运行下:

picture.image

步骤二:文本转化为 TreeMind 脑图

上面将一段长文本转换为 markdown 格式的脑图后,我们就需要将这段文本转化为 TreeMind 脑图。

这里可以利用 Coze 的官方插件 [TreeMind树图],它能够将输入3000字内的内容一键生成导图,支持脑图、逻辑图、树形图、鱼骨图、组织架构图、时间轴等多种结构。

picture.image

试运行下,输出的内容如下:

  
{  
  "output": "\n![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/6d13bc79490749cdb2a7440217ed578b~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1757632748&x-signature=m3Jjysv8YUix7wVV0ZHr6yLbaLo%3D)\n\n[编辑](https://gapi.shutu.cn/ai/edit-mind-url?works\_guid=open15a7925b139e01fcf1bbea55cf8778a2\_coze)\n\n如果觉得这个思维导图还不够完美,或者你的想法需要更自由地表达,点击编辑按钮,将你的思维导图变形、变色、变内容、甚至可以添加新的元素,快来试试吧!。\n"  
}  

返回了两段内容:

picture.image

从这里可以看出还是生成了比较完美的脑图了。

但是,返回的结果不是那么尽人意,所以,我们需要返回的结果进行优化下。这里我们采用 Python 代码来优化。

步骤三:Python 代码提取脑图链接

这里有同学会抱怨,大明哥,我不会写代码啊,怎么搞?我会写代码,但是我不会写 Python,但是现在有 deepSeek,你还担心写不了代码吗?描述你的需求,分分钟就可以把代码生成。

这里我们的需求是提取这段字符串里面的链接:

  
\n![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/6d13bc79490749cdb2a7440217ed578b~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1757632748&x-signature=m3Jjysv8YUix7wVV0ZHr6yLbaLo%3D)\n\n[编辑](https://gapi.shutu.cn/ai/edit-mind-url?works\_guid=open15a7925b139e01fcf1bbea55cf8778a2\_coze)\n\n如果觉得这个思维导图还不够完美,或者你的想法需要更自由地表达,点击编辑按钮,将你的思维导图变形、变色、变内容、甚至可以添加新的元素,快来试试吧!。\n  

所以,我们可以利用下面的提示词来生成 Python 代码:

  
我需要你帮我写一段完整的 Python 代码,我希望能够将这段代码拷贝到 Coze 平台的代码节点里面可以直接运行不报错。要求如下:   
我输入下面这段内容:   
\n![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/6d13bc79490749cdb2a7440217ed578b~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1757632748&x-signature=m3Jjysv8YUix7wVV0ZHr6yLbaLo%3D)\n\n[编辑](https://gapi.shutu.cn/ai/edit-mind-url?works\_guid=open15a7925b139e01fcf1bbea55cf8778a2\_coze)\n\n如果觉得这个思维导图还不够完美,或者你的想法需要更自由地表达,点击编辑按钮,将你的思维导图变形、变色、变内容、甚至可以添加新的元素,快来试试吧!。\n   
python 代码需要提取这段内容里面的两个 url,其中image\_url:https:xxxx.jpeg,edit\_image\_url:https://gapi.shutu。  
同时将这两个值作为 Python 的返回值。   
你需要将生成的代码嵌入到下面这段代码中,确保它能够正常运行:   
asyncdef main(args: Args) -> Output:  
  params = args.params   
  input\_text = params['input']  
  
  
# 构建输出对象   
  ret: Output = {   
    "image\_url": ''  
    "edit\_image\_url": ''  
  }   
return ret  

Deepseek 生成的代码大致如下:

  
import re  
from typing import TypedDict  
  
class Output(TypedDict):  
    image\_url: str  
    edit\_image\_url: str  
  
  
asyncdef main(args: Args) -> Output:  
    params = args.params  
    input\_text = params['input']   
      
    # 正则匹配图片URL  
    image\_match = re.search(  
        r'!\[返回图片\]\((https?://[^\s\)]+\.jpe?g)\)',   
        input\_text  
    )  
      
    # 正则匹配编辑链接  
    edit\_match = re.search(  
        r'\[编辑\]\((https?://gapi\.shutu[^\s\)]+)\)',   
        input\_text  
    )  
      
    # 构建输出对象  
    ret: Output = {  
        "image\_url": image\_match.group(1) if image\_match else'',  
        "edit\_image\_url": edit\_match.group(1) if edit\_match else''  
    }  
      
    return ret  

我们将它 copy 到代码块中,然后测试下代码(这里一定要测试下):

picture.image

执行结果:

picture.image

很完美的就把链接提取出来了。

最后,我们试运行下:

picture.image

好了,到这里我们已经完成了第二个实战项目了。

但是这里有一个小缺陷就是,它只能提炼长文本,如果我们输入的是链接呢?

步骤四:总结链接 OR 抖音内容

现在我们增加一些需求,比如我们输入一个文本链接需要总结成思维导图,或者输入一个抖音链接总结成思维导图。所以,整体思路如下:

  • 判断输入的内容是文本、链接、还是抖音视频链接
  • 如果是文本就直接总结内容,输出思维导图
  • 如果是链接就需要提取链接中的内容,然后再总结内容,输出思维导图
  • 如果是抖音视频链接,就需要提取抖音视频的音频,然后将音频转换为文字,最后再总结内容,输出思维导图

判断输入的内容是文本、链接、抖音视频链接

这里采用[代码]节点判断。要求如下:

  • 抖音视频链接,返回 1
  • 文本内容,返回 2
  • 链接,返回 3

所以,Python 代码如下:

  
async def main(args: Args) -> Output:  
    params = args.params  
    input\_str = params['input']  
  
    check\_result = 2# 默认值  
    if input\_str.startswith("https://www.douyin.com/"):  
        check\_result = 1  
    elif input\_str.startswith(("http://", "https://")):  
        check\_result = 3  
  
  
    # 构建输出对象  
    ret: Output = {  
        "checkResult":check\_result  
    }  
    return ret  

然后,再增加一个选择器:

picture.image

提取抖音文案

抖音视频的文案提取方式大明哥在文章(【Coze 实战教程】- 手把手教你搭建第一个流程图!)已介绍,这里就不做阐述了。直接看图:

picture.image

提取链接内容

提取链接中的内容,我们直接使用插件[链接读取]就可以了:

picture.image

内容聚合

三个分支,输出结果有三种,但是我们后面的【总结文本 】、【转化为脑图 】节点只有一个,我们总不能复制出来三份吧?所以我们需要对这个结果进行聚合、提炼。大致要求如下:

  • 文本内容为 input1
  • 抖音文案内容为 input3
  • 链接内容为 input2
  • 这三个内容哪个不为空,就将其输入到【 总结文本 】大模型节点

这里我们可以利用 Python 代码来实现,如下:

  
async def main(args: Args) -> Output:  
    params = args.params  
    input1 = params["input1"]  
    input2 = params["input2"]  
    input3 = params["input3"]  
  
    text\_content = input1  # 初始值  
  
    # 检查input1是否为http/https链接  
    if isinstance(input1, str) and (input1.startswith('http://') or input1.startswith('https://')):  
    # 按顺序检查input2和input3  
     for value in [input2, input3]:  
        if value isnotNone:  
            # 字符串类型需要非空内容  
            if isinstance(value, str):  
                if value.strip() != '':  
                    text\_content = value  
                    break  
            # 非字符串类型直接采用  
            else:  
                text\_content = value  
                break  
  
    # 构建输出对象  
    ret: Output = {  
        "text\_content": text\_content  
    }  
    return ret  

所以,这部分的流程图如下:

picture.image

试运行

最终的流程图如下:

picture.image

试运行,大明哥就不做了。


今天的分享就到这里啦,如果想领取文中完整版的**《流程图、代码、提示词》** ,可以加大明哥微信,邀请进学习空间!

picture.image

若有收获,可以点击下方⬇️关注我,以防迷路

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论