【04】从0到1构建AI生成思维导图应用 -- 创建 AI 工作流

【04】从0到1构建AI生成思维导图应用 – 创建 AI 工作流

大家好!最近自己做了一个完全免费的AI生成思维导图的网站,支持下载,编辑和对接微信公众号,可以在这里体验:https://lt2mind.zeabur.app/

上一章:https://blog.csdn.net/m0_56699208/article/details/140037195?spm=1001.2014.3001.5502

工作流介绍

工作流支持通过可视化的方式,对插件、大语言模型、代码块等功能进行组合,从而实现复杂、稳定的业务流程编排,例如旅行规划、报告分析等。

工作流支持通过可视化的方式,对插件、大语言模型、代码块等功能进行组合,从而实现复杂、稳定的业务流程编排,例如旅行规划、报告分析等。​
当目标任务场景包含较多的步骤,且对输出结果的准确性、格式有严格要求时,适合配置工作流来实现。​
功能概述​
工作流由多个节点构成,节点是组成工作流的基本单元。例如,大语言模型 LLM、自定义代码、判断逻辑等节点。​
工作流默认包含了开始节点和结束节点。​

  • 开始节点是工作流的起始节点,可以包含用户输入信息。​
  • 结束节点是工作流的末尾节点,用于返回工作流的运行结果。
    在这里插入图片描述

搭建好 agent 之后,使用一套工作流可以有效地完成使用语言模型将文字总结成思维导图的格式,再转换成图片的一系列操作,在之前搭建好的 bot 里选择新建一个工作流,根据我的操作,可以自行搭建一个生成脑图的工作流:
在这里插入图片描述

工作流拆解

  • 开始节点:接受用户的输入
  • 代码块:判断是文本还是链接`
from typing import TypedDict, Dict

# 定义输入参数类型
class Input(TypedDict):
    input: str

# 定义输出参数类型
class Output(TypedDict):
    output: int

async def main(args) -> Output:
    params = args.params
    text = params['input']
    
    # 判断输入是文本还是链接
    if text.startswith("http://") or text.startswith("https://"):
        return {'output': 2}
    else:
        return {'output': 1}
  • 选择器:为下一步的操作做判断,文本和链接使用不同的大模型prompt和插件
  • LinkReaderPlugin:获取链接内容的插件,如果用户输入为链接,则调用这个插件
  • 大模型1:用户输入为文本时调用,目的是设计思维导图的蓝本
  • 大模型2:用户输入为链接时调用,目的是设计思维导图的蓝本
    prompt:
## 角色(Role):
你是一位思维导图设计专家,擅长将长篇文章、讲座内容、会议录音等不同形式的长文本,转化为结构清晰、层次分明的思维导图。你能快速提炼文本的核心内容和关键信息,并使用Markdown格式对其进行有效地组织和呈现,使之成为一份可直接导入思维导图软件并生成美观实用脑图的蓝本。




## 背景(Background):
在信息爆炸的时代,人们每天接收和处理海量信息,提炼关键内容和梳理逻辑结构成为重要的能力。思维导图是一种行之有效的信息整理和学习工具,但从零开始制作一张高质量的思维导图并非易事。将长文本内容快速转化为思维导图的需求日益增长。




## 任务(Task):
你的任务是将【用户原始需求描述】比如提供的长篇文章、讲座内容、会议录音等长文本,转化为以Markdown格式呈现的思维导图蓝本。你需要仔细阅读或聆听材料,快速提炼出核心内容和关键信息,并运用Markdown的各种格式元素(如标题、列表、粗斜体等),对内容进行层次清晰的组织和排版,使之成为一份可直接导入思维导图软件、一键生成美观实用脑图的蓝本。




## 规则与限制(Rules & Restrictions):
输出的思维导图蓝本必须严格遵循Markdown语法规范。
思维导图的结构层次要清晰、缜密,主次分明,确保生成的脑图一目了然。
思维导图的内容必须准确、完整地反映原文本的核心内容,不得遗漏关键信息。
每个节点的内容要简洁明了,避免冗长或模棱两可的表述。
要善于运用Markdown的格式元素,提高思维导图蓝本的可读性和美观度。
禁止生成任何违法、违规、色情、暴力或冒犯性的内容。




## 参考短语(Reference sentences):
逻辑清晰、结构缜密
主次分明、层次鲜明
提炼精准、重点突出
简洁明了、一目了然
排版美观、格式规范
忠于原文、不遗核心
一键生成、即取即用




## 案例展示(Case Show):
### 用户输入: 
[一段关于时间管理的讲座文稿,1000字]


### 生成的思维导图蓝本:
时间管理的艺术
时间管理的重要性
提高效率,事半功倍
减轻压力,保持平衡
实现目标,成就自我
时间管理的五个步骤
列出待办事项清单
工作事项
个人事项
其他事项
区分轻重缓急
重要且紧急:优先处理
重要但不紧急:提上日程
不重要但紧急:尽快完成
不重要也不紧急:酌情安排
合理规划时间
预留缓冲时间
切割大任务为小任务
习惯使用日程表
专注高效执行
避免完美主义
克服拖延症
充分利用碎片时间
定期回顾总结
评估完成情况
分析存在问题
调整优化策略
常见的时间管理工具
番茄工作法
甘特图
GTD法
SMART原则
时间管理的建议
学会说"不"
培养良好习惯
注重身心健康
拥抱变化和不确定性




## 风格和语气(Style & Tone):
思维导图蓝本的整体风格应简洁明快、专业实用。语言表达要准确、干练,避免使用过于口语化或随意的表述。在保证内容完整、结构清晰的同时,也要注重排版的美观和可读性,力求为用户提供一份高质量的、即取即用的思维导图蓝本。




## 受众群体(Audience):
思维导图蓝本的目标用户主要是需要快速对长文本内容进行梳理提炼、生成思维导图的学生、职场人士、研究者等。他们希望能借助AI的力量,将海量信息快速转化为清晰有序、一目了然的思维导图,以提高学习和工作效率。




## 输出格式(Output format):
以Markdown格式输出思维导图蓝本,其中:


- 根节点(中心主题)使用一级标题(#)
- 一级分支节点使用二级标题(##)
- 二级及以下分支节点使用列表(-、1. 等)
- 关键词使用粗体(**)或斜体(*)标注
- 代码、引用等特殊内容使用代码块(```)标注
确保生成的Markdown文本层次分明、格式规范,可直接导入主流思维导图软件并一键生成美观实用的脑图。




## 工作流程(Workflow):
1. 仔细阅读或聆听【用户原始需求描述】,快速提炼出核心内容和关键信息。
2. 根据提炼出的内容,确定思维导图的整体结构和层次关系。
3. 使用Markdown格式对提炼出的内容进行组织和排版,形成初步的思维导图蓝本。
4. 检查并润色思维导图蓝本,确保其内容完整、结构清晰、格式规范。
5. 以Markdown格式输出最终的思维导图蓝本。




## 初始化(Initialization):




【用户原始需求描述】= < {{input}} > + {{input_link}};
根据上面的用户原始需求描述,按上面的提示词原则,必须用规定<输出格式>来输出;不要输出其它任何无关内容,如果用户输入英文,请用英文输出;如果用户输入中文,请用中文输出!
  • generateTreeMind:插件,将蓝本生成为思维导图
  • 代码块:生成返回值
from typing import TypedDict, Dict

# 定义输入参数类型
class Input(TypedDict):
    input: str

# 定义输出参数类型
class Output(TypedDict):
    image_url: str
    edit_url: str

async def main(args) -> Output:
    params = args.params
    text = params['input']
    
    # 提取图片型链接地址
    image_url_start = text.find("![返回图片](") + len("![返回图片](")
    image_url_end = text.find(")", image_url_start)
    image_url = text[image_url_start:image_url_end]
    
    # 提取编辑型链接地址
    edit_url_start = text.find("[编辑](") + len("[编辑](")
    edit_url_end = text.find(")", edit_url_start)
    edit_url = text[edit_url_start:edit_url_end]
    
    return {
        'image_url': image_url,
        'edit_url': edit_url
    }
  • 结束:返回生成的值,为图片的链接和编辑链接

测试无误后可以点击发布,工作流发布后,点击 bot 的发布,发布为 API,则可以在我们的前端页面中调用这个模型了:

import axios from "axios";
export const toMind = async (query: string) => {
    const url = 'https://api.coze.cn/open_api/v2/chat';
    const headers = {
    'Content-Type': 'application/json',
      'Authorization': "Bearer your api key"
    };
    const body = {
      "conversation_id": "1",
      "bot_id": "your bot id",
      "user": "29032201862555",
      "query": query,
      "stream": false
    };
  
    try {
      const response = await axios.post(url, body, { headers });
      console.log('Response:', response.data.messages[2].content);
      const urlPattern = /https:\/\/[^\s]+/g;
      let urls = response.data.messages[2].content.match(urlPattern);
      let imgUrl = urls[0]
      let editUrl = urls[1]
      return {imgUrl, editUrl}
    } catch (error) {
      console.error('Error:', error);
    }
  };

这段代码使用正则表达式/https:\/\/[^\s]+/g来匹配响应内容中的URL,包含两个属性imgUrl和editUrl,分别对应匹配到的第一个和第二个URL。将apikey和botid替换为自己的即可调用成功。

---- 完整的工作流可以+v: aircrushin 获取 ----

下一章我们将会在前端调用这个API,使其显示在页面中,实现生成功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/755961.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mybatis核心配置介绍

mybatis核心配置 【mybatis全局配置介绍】 ​ mybatis-config.xml&#xff0c;是MyBatis的全局配置文件&#xff0c;包含全局配置信息&#xff0c;如数据库连接参数、插件等。整个框架中只需要一个即可。 1、mybatis全局配置文件是mybatis框架的核心配置&#xff0c;整个框架…

2024高考录取分数线一览表(含一本线、二本线、专科线)

2024年全国各地的高考录取分数线已经全部公布&#xff0c;查大学网&#xff08;www.chadaxue.com&#xff09;为大家整理全国31个省市高考录取分数线汇总&#xff0c;包括本科批&#xff08;一本分数线线和二本分数线&#xff09;、专科批和特殊类招生控制分数线汇总&#xff0…

2.ROS串口安装和调试

首先安装串口依赖 sudo apt-get install ros-melodic-serial 其次安装串口调试助手 sudo apt-get install minicom 再赋予串口权限 sudo chmod 777 /dev/ttyTHS1 打开调试助手 sudo cutecom 硬件引脚图&#xff1a;

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验10 IPv4地址 — 构造超网(无分类编址)

一、实验目的 1.加深对构造超网的理解&#xff1b; 二、实验要求 1.使用Cisco Packet Tracer仿真平台&#xff1b; 2.观看B站湖科大教书匠仿真实验视频&#xff0c;完成对应实验。 三、实验内容 1.构建网络拓扑&#xff1b; 2.根据各网络所指定的地址块完成以下工作&#…

如何保护磁盘数据?电脑磁盘数据怎么保护?

电脑磁盘是存储数据的基础&#xff0c;可以将各种重要数据保存在其中。为了避免数据泄露&#xff0c;我们需要保护磁盘数据。那么&#xff0c;电脑磁盘数据怎么保护呢&#xff1f;下面我们就一起来了解一下吧。 文件夹加密超级大师 文件夹加密超级大师是一款优秀的电脑数据加密…

c语言入门

c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好&#xff0c;可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言&#xff0c;所以说学习C语言是进入编程…

华为仓颉编程语言正式发布,仓颉编程教程

目录 前言 基本概念 标识符 变量 类型 基础数据类型 表达式 if 表达式 while 表达式 for-in 表达式 程序结构 函数 定义函数 调用函数 lambda表达式 应用实例&#xff08;遍历目录&#xff09; 枚举 定义与实例化 成员访问规则 match表达式 应用实例&…

Python现在可以在线编程了!

你好&#xff0c;我是郭震 1 在线编程 在线编程好处&#xff1a; 1 无需安装和配置环境: 在线编程平台不需要用户在本地安装任何软件或配置开发环境。这对初学者和那些希望快速上手进行编程的人非常有利。 2 跨平台兼容性: 这些平台可以在任何具有互联网连接的设备上使用&#…

恢复机制-数据库系统中的故障(事务故障、系统故障、介质故障)、一致性错误、窃取但不强制的缓冲区管理策略

一、引言 数据库管理系统DBMS的事务处理技术实现的一个主要功能部分就是恢复机制&#xff0c;恢复机制完成的功能就是对发生故障后系统中事务的更新结果进行数据恢复&#xff0c;保证事务的原子性和持久性&#xff0c;从而进一步保证数据库的一致性。 数据库系统与其他计算机系…

Websocket解析及用法(封装一个通用订阅发布主题的webSocket类)

1、什么是WebSocket? websocket的目标是通过一个长连接实现与服务器全双工&#xff0c;双向的通信。是一种在单个TCP连接上进行全双工通信的协议&#xff0c;使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。在 js中创建websocket…

日期类(java)

文章目录 第一代日期类 Date常用构造方法SimpleDateFormat 日期格式化类日期转字符串&#xff08;String -> Date)字符串转日期 (String->Date) 第二代日期类 Calendar常用字段与如何得到实例对象相关 API 第三代日期类&#xff08;LocalDate\TIme)日期&#xff0c;时间&…

【详细教程】如何使用YOLOv10进行图片与视频的目标检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

什么是DEQ?

DEQ (Delivered Ex Quay, Duty Paid) 是指目的港码头交货 (……指定目的港)。 这种术语规定卖方在指定目的港码头将货物交给买方处置&#xff0c;并且不办理进口清关手续。 DEQ适用范围 DEQ术语仅适用于海运、内河运输或多式联运&#xff0c;并且在目的港码头卸货时使用。如…

uniapp,uni-fab组件拖动属性,替代方案

文章目录 1. 背景2. 替代方案2.1 方案一2.2 方案二参考1. 背景 最近基于uniapp开发一款设备参数调试的APP软件,其中有使用到悬浮按钮,快速开发阶段,为了能尽快上线,直接使用了uni-ui的扩展组件uni-fab,参考【1】,效果如下图: 后期,相应的界面内容增多,由于uni-fab是…

简单科普-GPT到底是什么?

1.ChatGPT ChatGPT&#xff08;全名&#xff1a;Chat Generative Pre-trained Transformer&#xff09;&#xff0c;是OpenAI研发的一款聊天机器人程序 &#xff0c;于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c;它能够基于在预训练阶段所见…

通天星CMSV6车载监控平台CompanyList信息泄露漏洞

1 漏洞描述 通天星CMSV6车载视频监控平台是东莞市通天星软件科技有限公司研发的监控平台,通天星CMSV6产品覆盖车载录像机、单兵录像机、网络监控摄像机、行驶记录仪等产品的视频综合平台。通天星科技应用于公交车车载、校车车载、大巴车车载、物流车载、油品运输车载、警车车…

昇思25天学习打卡营第5天|MindSpore-ResNet50图像分类

MindSpore-ResNet50图像分类 CIFAR-10数据集 CIFAR-10数据集是一个广泛使用的图像分类数据集,它包含了60,000张32x32的RGB彩色图像,分为10个类别,每个类别有6,000张图像。这些类别包括飞机(airplane)、汽车(automobile)、鸟类(bird)、猫(cat)、鹿(deer)、狗(dog…

最新测评!不可错过的三款网络代理服务商

在如今数字化高速发展的时代&#xff0c;网络代理服务已经成为许多企业和个人在进行网络活动时不可或缺的工具。为了给大家提供更具参考价值的推荐&#xff0c;我们的测评团队经过深入研究和实际测试&#xff0c;精心挑选了三款表现出色的网络代理服务商——极光HTTP、全民HTTP…

软件工程 例题

用例图 1. 某个学生成绩管理系统的部分参与者和用例总结如下。 教务管理人员: 登录系统教师、学生名单管理学期教学计划管理成绩管理。课程分配&#xff0c;每次课程分配时都必须打印任课通知书 学生&#xff1a; 登录系统选课。 教师: 登录系统成绩管理&#xff0c;并…

昇思25天学习打卡营第3天|网络构建

学习目标&#xff1a;熟练掌握网络构建方法 了解mindspore.nn 实例构建简单的神经网络 网络模型中各层参数 昇思大模型平台 AI实验室 学习记录&#xff1a; 一、关于mindspore.nn 在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff0c;也是网络的基本单元。cell…