效果先行,先看看效果:
思维导图给标题就完成啦
最初,看到一个思维导图的提示词,拿来就用, 但是显示也很简单,如图所示一样的目录图:
既然是大家用的,想必也是够好用的,拿来当工具就行了,人家说我这个画面的配色太辣眼睛,就换了个配色,有人说这个拿来好装x,想做。我想了一下,也许提示词就能搞定,就开始动手。
首先看前端架构是否有现成的可以用,后来找到一个jsmind,感觉不错,更复杂用起来头疼,这个刚刚好,对接的也很简单,给它提供json数据就行了。那么问题就化解为将刚才的树形图转化为json就行,这样一个问题当然是丢给人工智能了。可惜非常可惜,最强大的chat-gpt-4o也干不好这活,专业代码生成器也试了几个,流行的国内外的各个模型试了大部分,每一个正常解析的。好吧,这活我真能干,可是有人工智能干脏活,我为什么还要动脑。于是我又查了些资料,发现突破口,绕道而行即可。直接转它不会,有个格式的他们理解,就是mermaid格式,这个格式有人做过,那肯定比较通用,而mermaid这样简单的格式,大概率可以转为json。于是我又开始调教人工智能了,它很笨,基本的结构可以做,可是它会把中文做成键,让一个古代程序员看到会很生气,而且它只喜欢用对象,不喜欢用数组,于是我我再次绕道,分步骤让它转化成我想要的json,就这样一步步得到了目标json,正在我狂喜,把整个步骤总结给它,让它一次性完成任务时,又发生了意外,步骤多了,它可不一步步给你完成,它又搞出它想象的中文做键各种问题。
我思考了一下,大不了给它分多个步骤,实际上,两个步骤就够用了,第一步:让它按标题生成mermaid格式数据,第二步:按如下步骤生成json,丢给客户端:
对mermaid格式转化为json格式了,转化方法如下: 1.所有的文字描述都成为topic的值,比如 A[人工智能短视频工具] 就是 topic:"人工智能短视频工具" 2. 父子关系用children":[]来表达,比如 A[人工智能短视频工具] --> B[核心功能] 就是 "topic": "人工智能短视频工具","children": [ "topic": "核心功能", 3. 目前的结构类似如下: { "topic": "人工智能短视频工具", "children": [ { "topic": "核心功能", "children": [ {"topic": "自动剪辑"}, {"topic": "智能配乐"}, {"topic": "语音识别与字幕生成"}, {"topic": "面部识别与表情分析"}, {"topic": "视频增强"}, {"topic": "内容推荐"}, {"topic": "虚拟主播"}, {"topic": "交互式视频"}, {"topic": "版权检测"}, {"topic": "自动化发布"}, {"topic": "数据分析"} ] },... 对每一个topic都会对应一个id,当然id是唯一的,比如 "topic": "人工智能短视频工具", 就在其后增加一个id带上数字变化以保证唯一性 "topic": "人工智能短视频工具", id="node1" 接着 "topic": "核心功能", 就改成 "topic": "核心功能", id="node2",如此类推 得多类似结构: { "topic": "人工智能短视频工具", "id": "node1", "children": [ { "topic": "核心功能", "id": "node2", "children": [ {"topic": "自动剪辑", "id": "node3"}, {"topic": "智能配乐", "id": "node4"}, {"topic": "语音识别与字幕生成", "id": "node5"}, {"topic": "面部识别与表情分析", "id": "node6"}, {"topic": "视频增强", "id": "node7"}, {"topic": "内容推荐", "id": "node8"}, {"topic": "虚拟主播", "id": "node9"}, {"topic": "交互式视频", "id": "node10"}, {"topic": "版权检测", "id": "node11"}, {"topic": "自动化发布", "id": "node12"}, {"topic": "数据分析", "id": "node13"} ] },... 4.凡是有children的节点,都加上这两项 ,"direction":"right","expanded":true 如上所给示例的最后结果如下: { "topic": "人工智能短视频工具", "id": "node1", "children": [ { "topic": "核心功能", "id": "node2", "direction": "right", "expanded": true, "children": [ {"topic": "自动剪辑", "id": "node3"}, {"topic": "智能配乐", "id": "node4"}, {"topic": "语音识别与字幕生成", "id": "node5"}, {"topic": "面部识别与表情分析", "id": "node6"}, {"topic": "视频增强", "id": "node7"}, {"topic": "内容推荐", "id": "node8"}, {"topic": "虚拟主播", "id": "node9"}, {"topic": "交互式视频", "id": "node10"}, {"topic": "版权检测", "id": "node11"}, {"topic": "自动化发布", "id": "node12"}, {"topic": "数据分析", "id": "node13"} ] },
好的,你看到上面这么一大段都是提示词,算是一次比较好的提示词实践了,完成后,开心把玩一下,感兴趣的自己看代码:
代码地址:https://gitee.com/qingtinggit/talks