【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: intasync def main(args) -> Output:params = args.paramstext = 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: stredit_url: strasync def main(args) -> Output:params = args.paramstext = 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.mzph.cn/bicheng/37392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos7安装mysql8-zabbix6.4

MySQL rpm -qa | grep mysql #查看是否已经安装 Mysql rpm -qa | grep mariadb #查看是否已经安装 mariadb,CentOS 7可视化安装会默认安装该数据库,安装MySQL前需要卸载该数据库 rpm -e --nodeps mariadb-libs #删除mariadb数据库找到对应linux的版本进行下载 […

从零开始:Spring Boot 中使用 Drools 规则引擎的完整指南

规则引擎作用 规则引擎主要用于将业务逻辑从应用程序代码中分离出来&#xff0c;提高系统的灵活性和可维护性。规则引擎通过预定义的规则来处理输入数据并做出相应的决策&#xff0c;从而实现业务逻辑的自动化和动态调整。 例如 门店信息校验&#xff1a;美团点评在门店信息…

【高中数学之基本不等式】已知:a,b皆为正实数且1/a+1/(b+2)=1/2 求:a+b的最小值?

解&#xff1a;先从1/a1/(b2)1/2 入手&#xff0c;看能否化二为一&#xff08;将两变量化成一个变量&#xff09; 由1/a1/(b2)1/2 两边通分得(b2a)/a/(b2)1/2 交叉相乘得2a2b4ab2a 最后得到a24/b 所以ab24/bb 此时已经可以用基本不等式了 ab24/bb>22*根号下(4/b*b)22…

SpringBoot 3.3.1 + Minio 实现极速上传和预览模式

统一版本管理 <properties><minio.version>8.5.10</minio.version><aws.version>1.12.737</aws.version><hutool.version>5.8.28</hutool.version> </properties><!--minio --> <dependency><groupId>io.m…

Arduino - TM1637 4 位 7 段显示器

Arduino - TM1637 4 位 7 段显示器 Arduino-TM1637 4 位 7 段显示器 A standard 4-digit 7-segment display is needed for clock, timer and counter projects, but it usually requires 12 connections. The TM1637 module makes it easier by only requiring 4 connectio…

有哪些防爬虫的方法

防爬虫的方法有robots.txt文、user-agent过滤、ip限制、验证码、动态页面生成、频率限制、动态url参数和反爬虫技术等。详细介绍&#xff1a;1、robots.txt文件&#xff0c;用于告诉搜索引擎爬虫哪些页面可以访问&#xff0c;哪些页面禁止访问&#xff1b;2、ip限制&#xff0c…

关于vs code中Live Server插件安装后无法打开的问题

一、问题情况 安装好Live Server插件之后&#xff0c;点击open with live server只会出现界面右下角落的提示&#xff0c;但是不会跳转到浏览器的页面&#xff1a;如下所示&#xff1a; 二&#xff1a;解决步骤 1、首先进行扩展设置&#xff0c;默认将浏览器的设置为chrome浏览…

vue组件全局注册

描述&#xff1a; vue组件的注册分为局部和全局注册两部分&#xff0c;局部注册相对容易&#xff0c;不做赘述&#xff1b;而不同框架的注册方法又有所不同&#xff0c;下面针对vite框架和vue-cli框架的注册分别进行说明 vue组件全局注册 一、vite框架中全局组件注册二、Vue-cl…

-bash: /snap/bin/docker: 没有那个文件或目录

-bash: /snap/bin/docker: 没有那个文件或目录 解决办法 export PATH$PATH:/usr/bin/docker然后&#xff0c;重新加载配置文件 source ~/.bashrc

线程的等待通知机制

等待通知机制 之前所学到的join是等待线程结束,而此时的等待通知,等待代码给我们提示进行显示的通知(并不一定要结束),可以更加精细控制线程之间的执行顺序,在系统内部,线程是抢占式执行,随机调度,但是程序员也是有手段可以进行干预的,我们可以通过"等待"的方式让线…

【学术日记】关于读博,目标院校,意向导师,毕业要求,重要时间点

文章目录 一、目标院校二、重要时间点西安交通大学意向导师 华南理工大学意向导师 本文记录博主的科研日记。如果对博主的其他文章感兴趣&#xff0c;可以看这篇文章【CSDN文章】晚安66博客文章索引。 首次修改时间&#xff1a;2024年5月12日。当前修改时间&#xff1a;2024年5…

C : 线性规划例题求解

Submit Page TestData Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 93 Solved: 49 Description 求解下述线性规划模型的最优值min &#xfffd;1&#xfffd;1&#xfffd;2&#xfffd;2&#xfffd;3&#xfffd;3&#xfffd;.&#xfffd;. &…

Spring Cloud LoadBalancer基础入门与应用实践

官网地址&#xff1a;https://docs.spring.io/spring-cloud-commons/reference/spring-cloud-commons/loadbalancer.html 【1】概述 Spring Cloud LoadBalancer是由SpringCloud官方提供的一个开源的、简单易用的客户端负载均衡器&#xff0c;它包含在SpringCloud-commons中用…

前端vue使用onlyoffice控件实现word在线编辑、预览(仅列出前端部分需要做的工作,不包含后端部分)

简介 ONLYOFFICE 文档 是一个开源办公套件&#xff0c;包括文本文档、电子表格、演示文稿和可填写表单的编辑器。 它提供以下功能&#xff1a; 创建、编辑和查看文本文档、电子表格、演示文稿和可填写表单&#xff1b; 与其他队友实时协作处理文件。 基于这个控件&#xff0c;…

基于Java毕业生生活用品出售网站的设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

【算能全国产AI盒子】基于BM1688CV186AH+FPGA智能物联工作站,支持差异化泛AI视觉产品定制

在数据呈现指数级增长的今天&#xff0c;越来越多的领域和细分场景对实时、高效的数据处理和分析的需求日益增长&#xff0c;对智能算力的需求也不断增强。为应对新的市场趋势&#xff0c;凭借自身的硬件研发优势&#xff0c;携手算能相继推出了基于BM1684的边缘计算盒子&#…

MySQL3(多表联查 子查询 流程控制函数,语句 Sql 执行顺序 学生选课表练习)

目录 一、多表联查 1. 等值查询和非等值查询 等值查询 --- 主外键相等 ​编辑非等值查询 2. 连接查询 ​编辑 内连接 ​编辑 左外连接 ​编辑 右外连接 3. UNION 二、子查询 1. where 型子查询&#xff1a; 2. from型子查询: 3. exists型子查询: 4. any, some…

笔记本重装系统怎么操作? windows电脑重装系统,超实用的四种方法

重新安装操作系统是维护计算机性能和确保系统稳定运行的重要步骤。对于 Windows 笔记本用户而言&#xff0c;熟悉重装系统的方法可以帮助他们解决各种问题&#xff0c;从提高系统速度到修复软件故障。然而具体来讲&#xff0c;笔记本重装系统怎么操作呢&#xff1f;接下来&…

LLDP 基本原理

LLDP 简介 定义 LLDP&#xff08;Link Layer Discovery Protocol&#xff0c;链路层发现协议&#xff09;是 IEEE 802.1ab 中定义的第二层发现&#xff08;Layer 2 Discovery&#xff09;协议。 LLDP 提供了一种标准的链路层发现方式&#xff0c;可以将本端设备的主要能力、…

单片机使用printf在串口输出字符串

把字符串使用printf输出的本质 实际上调用了putchar和串口字符输出函数&#xff0c;参考 以51单片机中的程序为例 在主函数中使用printf函数向串口发送字符串&#xff0c;当然保证已经定义好串口的波特率等参数 while(1){//uart0SendString("start....\n");prin…