手把手教你打造一个AI常识图谱生成帮手

手把手教你打造一个AI常识图谱生成帮手

背景

2023年真可谓是大模型与AIGC爆发之年了,在整个 2023 年期间,我国乃至国际上各大互联网厂商都在正向退出自己的大模型与 AIGC 运用,并不断地在各种运用场景深入探究尝试,像是阿里的通义千问、百度的文心一言等通用大模型,以及网易有道的 子曰 这样的某个垂直范畴的大模型,都放入雨后春笋般的纷纷涌现而出,可谓是百家争鸣,让人眼花缭乱。

而作为开发者的咱们,更是要把我这个千载难逢的年代契机,以大模型为铠甲装备自己,用 AIGC 作为咱们用于开疆扩土的利剑,助咱们讨伐出一片不一样的天地。咱们应该时刻地用:“不会运用 AI 的人,终将被AI筛选”这句话来警醒自己。

恰逢 纽扣(coze.cn) 上线,咱们们广阔开发者供给了愈加便捷的方法与才能,让许多原本没有什么时机触摸 AIGC 的开发同学,能够低成本的打造自己的 AIGC 运用。因而,自己也借此刻机深入体会了一下 纽扣 渠道,而且尝试完结了一个用于生层思想导图的 “AI常识图谱生成帮手”的东西,带大家一同看一下,咱们应该怎么运用这个渠道,都有什么需求注意的地方。

运用场景

我为什么想要做一个 “常识图谱生成帮手” 呢?因为咱们大部分长将下面,触摸的常识都是零散的,非结构化的,这不只让咱们比较难以回忆,就算强行记一下来也很简单忘记。假如能够将咱们想要记住的某一个常识点,某一个重要的事情头绪,经过思想导图的方法进行结构化的表达和收拾,关于咱们把握这些常识和紧记这些重要事情的头绪对错常有帮助的。因而,这个东西,适用范围仍是挺广的,包含但不限于:

  • 教育场景的常识点辅佐回忆
  • 工作场景的会议纪要收拾
  • 日子场景的今天TODO
  • 旅行场景的旅行攻略和方案

思路

首要,咱们在创立一个 AIGC 运用之前,咱们要先清晰你要创立的运用究竟是用来干嘛的,它能帮咱们做些什么,适合那些运用场景,只有清晰了这些之后,咱们才能有的放矢,更好的完结咱们的 AIGC 运用。

咱们想要做一个 AI常识图谱生成器 ,其实说白了便是一个思想导图的生成器,他需求有以下的一些才能:

  • 输入剖析才能:用户输入或许为所欲为,咱们或许没办法强求用户必定要怎样输入,不太或许也不太合理,假如强行限制的话,或许会影响咱们运用的灵敏性,咱们最多便是规定一下用户输入的一些格局,在格局答应的范围内,应该答运用户自有发挥。因而,这需求咱们的运用具有必定的对用户输入内容的剖析才能。这个才能,咱们能够经过 提示词 来完结,这个咱们在后文中会具体介绍。
  • 检索才能:咱们的这个帮手,能够依据用户供给的一个要害词,如:“光合作用的光暗反响全过程细节”,咱们仅仅给出这样的一个描绘,就需求帮手自行想办法从网络中检索相关的数据,例如:光合作用应该是归于生物学范畴的,就从网络中查询相关的的一些常识细节,才能够得到后续用于生成思想导图的要害信息。
  • 信息提炼才能:经过上面的检索得到一些要害信息之后,还需求帮手能够从这些要害信息傍边排除干扰项,剔除一些无关紧要的信息,将咱们需求的要害节点信息提炼收拾出来。
  • 格局收拾才能:将信息提炼收拾成一个个要害词之后,就需求依据这些要害词,依照指定的输出格局进行内容收拾与合并了,例如,咱们要生成 *.json 格局的文件,就需求依照 json 格局文件来组织这些要害词的层次结构和信息。
  • 思想导图在线预览才能:现已有了收拾好的思想导图数据了,怎么展现是一个问题,现在 纽扣 如同展现无法在线预览这些思想导图,而其它的一下在线思想导图的渠道基本都是需求注册登录的,也不太适合,因而,只能考虑另一种方法,将生成的内容保存到文件中,直接在本地打开预览了。
  • 文件下载才能:咱们假如想要更好的体会,最好是能够将生成的结构直接输出到文件中,然后供给用户下载功用,让用户点击下载。然而,现在 纽扣如同也没有供给保存文件的插件或 api ,咱们暂时只能手动的将成果仿制出来,然后保存在本地文件中了。

创立一个 bot

咱们现已收拾清楚想要做的功用了,接下来就在 纽扣上正式创立一个 bot。在 纽扣上要创立一个 bot 也是很简单的,用一句话描绘便是:“用AI帮手帮你创立AI帮手”。能够打败 AI 只有 AI。

首要,咱们进入 纽扣 官网首页:coze。进入后,就会有个体系帮手,此刻,咱们能够在输入框中输入:“我想创立一个 Bot”,这样,体系帮手就会开启一个创立一个 Bot 的流程,并问询你这个 Bot 运用来做什么的,体系帮手会依据你的描绘,为你的 Bot 取一个恰当的名字,并为你创立这个 Bot

创立成功之后,咱们只需求点击链接就能够对咱们创立的 Bot 进行更进一步的调试了。

提示语

作为一个 AIGC 运用,最重要的莫过于提示词(在 纽扣 中被称之为“人设与回复逻辑”)了,一个优秀的提示词,能够让 AI 更简单了解你要表达的含义,让他愈加有条理的履行你所安置的使命。针对咱们这个 常识图谱生成器Bot,咱们的提示语中的中心点首要有以下几点:

  • 人物描绘:即咱们这个机器人的人设,你想让他扮演怎样的一个人物,后续的处理成果,会跟你所给的这个人设休戚相关,不同的人设,针对输入的成果,一般会得到不同的回答

    你是一个高级智能查找引擎,能够依据用户供给的要害词,主动查找网络常识库,并生成多种格局的思想导图。
    
  • Skills:即技术,也便是咱们这个 Bot 所具有的中心才能

    ## Skills
    ### 技术 1: 查找网络常识库
    - 侦听用户的要害词恳求,如:杭州一日游。
    - 运用要害词在网络常识库中进行全面查找。
    - 依据查找出来的成果提炼要害节点
    - 将要害节点依照输出格局要求生成输出文本
    ​
    ### 技术 2: 生成思想导图
    - 依据查找成果生成思想导图。
    - 供给多种格局的思想导图供用户挑选,支撑的格局包含:*.mm, *.md, *.opml。
     - *.mm格局如下:
     <map version="1.0.1"> <node text="杭州一日游攻略"> <node text="早餐"> <node text="杭州特色早餐"></node> </node> <node text="上午"> <node text="西湖"></node> <node text="灵隐寺"></node> </node> <node text="午饭"> <node text="杭帮菜"></node> </node> <node text="下午"> <node text="宋城"></node> <node text="龙井茶园"></node> </node> <node text="晚餐"> <node text="小籠包"></node> <node text="东坡肉"></node> </node> <node text="晚上"> <node text="杭州歌剧院"></node> <node text="西湖夜游"></node> </node> </node> </map>
      - *.opml
     <?xml version="1.0"?><opml version="2.0"><head><title>杭州一日游攻略</title></head><body><outline text="西湖"><outline text="游船" /><outline text="断桥残雪" /><outline text="苏堤春晓" /></outline><outline text="灵隐寺"><outline text="大雄宝殿" /><outline text="飞来峰" /></outline><outline text="宋城"><outline text="宋城千古情" /><outline text="宋城大街" /></outline><outline text="龙井茶园"><outline text="品茗" /><outline text="采茶体会" /></outline><outline text="美食"><outline text="西湖醋鱼" /><outline text="龙井虾仁" /><outline text="东坡肉" /></outline><outline text="购物"><outline text="河坊街" /><outline text="南宋御街" /></outline></body></opml>
    
  • 束缚:也便是想让机器人特别注意的一些点,一般,咱们需求向机器人强调的一下要害点,就能够放在束缚里边,例如:强调输出格局应该是怎样的,输出字数是多少,以怎样的口吻回答等等。

    ## 束缚
    - 只能处理与要害词查找和思想导图生成相关的恳求。
    - 输出格局假如是 *.mm , *.opml 有必要参阅输出示例的格局进行输出,*.md 依据 markdown 格局输出即可。
    
  • 输入阐明:假如咱们的机器人要求用户输入必定格局的数据的话,咱们能够在这里跟机器人讲清楚,应该怎么去了解用户的输入,例如:

    ## 输入阐明
    ​
    用户输入时输入的 “格局:” 后边的内容作为 mind_flow 工作流的 “ext” 变量,“要害词:”后边的内容作为 “mind_flow” 工作流的 “keyword” 变量,如:
    格局:mm,要害词:北京一日游
    上面输入中,ext 为 mm, keyword 为 北京一日游
    也便是说,在用户输入傍边,“格局:” 对应了 ext,“要害词:” 对应 “keyword”
    
  • 示例:为了能够让机器人更好的了解你所描绘的人物,咱们还需求供给一些输入输出示例,让他能够参阅了解,防止机器人的了解跟你的认知出现误差

    ## 示例
    ​
    ### opml 输入示例
    ​
    杭州一日游,输出格局:*.opml
    ​
    ### opml 输出示例
    ​
    <?xml version="1.0"?><opml version="2.0"><head><title>杭州一日游攻略</title></head><body><outline text="西湖"><outline text="游船" /><outline text="断桥残雪" /><outline text="苏堤春晓" /></outline><outline text="灵隐寺"><outline text="大雄宝殿" /><outline text="飞来峰" /></outline><outline text="宋城"><outline text="宋城千古情" /><outline text="宋城大街" /></outline><outline text="龙井茶园"><outline text="品茗" /><outline text="采茶体会" /></outline><outline text="美食"><outline text="西湖醋鱼" /><outline text="龙井虾仁" /><outline text="东坡肉" /></outline><outline text="购物"><outline text="河坊街" /><outline text="南宋御街" /></outline></body></opml>
    ​
    ### mm 输入示例
    ​
    杭州一日游,输出格局:*.mm
    ​
    ### mm 输出示例
    ​
    <map version="1.0.1"> <node text="杭州一日游攻略"> <node text="早餐"> <node text="杭州特色早餐"></node> </node> <node text="上午"> <node text="西湖"></node> <node text="灵隐寺"></node> </node> <node text="午饭"> <node text="杭帮菜"></node> </node> <node text="下午"> <node text="宋城"></node> <node text="龙井茶园"></node> </node> <node text="晚餐"> <node text="小籠包"></node> <node text="东坡肉"></node> </node> <node text="晚上"> <node text="杭州歌剧院"></node> <node text="西湖夜游"></node> </node> </node> </map>
    

以上便是咱们在 纽扣 傍边,关于 常识图谱生成帮手人设与回复逻辑 的设定。除了咱们手动添加之外, 纽扣 还给咱们供给了智能优化的按钮,运用 AI 帮咱们智能优化这部分内容,可谓是将 AI 的剩余价值榨取地一尘不染了,有木有。

技术

插件

在纽扣傍边,供给了丰厚的插件生态,让咱们能够在自己的 AIGC 运用傍边,能够具有愈加强大的才能,例如查找引擎查找插件、图片了解插件等等,咱们能够在这边挑选自己需求的插件合作咱们的需求运用,例如,在咱们的这个常识图谱生成帮手傍边,也需求具有常识检索的才能,就能够合作查找引擎查找的插件,让 AI 依据用户输入的要害词在网络上查找一些内容作为后续内容的备选。当然,咱们假如线程的插件没办法满足沃恩的需求,咱们也能够考虑自己依据供给的 API 开发一个更符合事务场景的插件。

工作流

由于现在的插件关于咱们想要完结的需求来说,都不太试用,这边并没有运用第三方插件,而是创立了自己的一个工作流来完结咱们的中心使命。

咱们能够在这里挑选一些公共的现已发布的工作流,也能够依据自己的需求创立一个工作流。

在 纽扣 傍边,运用了流程节点自由编排组合的形式来完结工作流,这让咱们能够愈加灵敏自由的将各种节点彼此组合,以上一个节点的输出作为下一个节点的输入。而咱们一切的工作流都会有一个仅有的输入和仅有的输出节点,输入节点便是用户在外部自定义输入的文案,而输出节点输出的成果则会交由 纽扣 进行合理的展现。

在咱们这个的机器人傍边,没有运用太复杂的流程节点,首要包含以下几个:

  • 开始节点:用于承受用户输入,能够承受多个参数,纽扣会将用户输入进行开始的辨认和分类,在调用工作流时智能的将相应的值传入进来。例如上图中,咱们的输入节点定义了两个变量:keywordext,而用户的输入则是形如:“格局:mm,要害词:北京一日游”的文案。

    咱们能够看到,在调用咱们的工作流的时分,纽扣并不是将用户的输入原原本本传给工作流的,是是经过了必定的剖析匹配,从用户输入里边,找到匹配 extkeyword 定义描绘的内容,并作为工作流的入参传进去

  • 挑选器:为了添加咱们运用程序的容错性和提高功率,咱们会对传入内容的格局字段format进行必定的判断,有必要是支撑的 mmmdopml 类型中的一个,咱们才持续后续的检索和内容生成流程,不然就直接完毕流程,返回空的成果,因为假如格局不对的话,咱们就没必要进行后续操作了。(PS: 我原本像要支撑添加默认值的,比如外部辨认格局的时分,没能正常辨认,就运用默认值,这样就一直都能得到一些成果了,但现在 纽扣 并不支撑,期望以后能够支撑起来)。

  • 大模型节点:这个节点是咱们整个流程中最中心的额节点,便是运用内置大模型关于语言处理的才能,将咱们输入的 keyword 作为要害词在查找引擎和预定常识库中检索,并将得到的成果进行提炼组织成目标输出格局文本,并将其输出。

  • 输出节点:将工作流最终处理的成果输出给 纽扣用于展现

常识库

假如咱们自己开发的东西有自己的一些常识库用户愈加专业和精确的检索的话,咱们也能够装备常识库,例如客服机器人,文档机器人等等,这边由于用户输入的内容不确定性过大,因而没有运用到这个功用。

开场白

手把手教你打造一个AI常识图谱生成帮手

用于用户打开你的机器人时向用户展现的开场白,一般咱们会写一写用于介绍咱们这个机器人的简要阐明,以及怎么运用的介绍,也能够加几个预设的运用示例,方便用户能够快速的体会你的功用。

至此咱们就现已完结了生成思想导图的文本内容的工作了,受限于现在 纽扣 的功用,咱们没办法在线预览和下载文件,咱们智能将工作流返回的成果仿制下来,保存到本地,并命名为:光合作用光暗反响全过程.opml

<opml version="2.0">
  <head>
    <title>光合作用光暗反响全过程</title>
  </head><body>
    <outline text="光合作用">
      <outline text="光反响">
        <outline text="原初反响"></outline>
        <outline text="电子传递"></outline>
        <outline text="光合磷酸化"></outline>
      </outline>
      <outline text="暗反响">
        <outline text="卡尔文循环">
          <outline text="CO2 固定"></outline>
          <outline text="还原阶段"></outline>
          <outline text="RuBP 再生阶段"></outline>
        </outline>
      </outline>
    </outline>
  </body>
</opml>

然后在思想导图东西,如:xmind 中打开

手把手教你打造一个AI常识图谱生成帮手

coze的定见与主张

总的来说,纽扣的整体体会还对错常棒的,让许多没有变成开发才能的同学,也能够享受到大模型年代带来的盈利,创立归于自己的 AIGC 运用。但因为刚刚发布,或许许多细节上尚未完善,这边总结一些自己遇到的一些问题和定见,期望未来能够得到官方的支撑:

  • 问题:在主动辨认用户输入转换为 flow 输入时,常常会出现辨认反常的状况,如:格局:mm,要害词:北京一日游,有时能够正常辨认出 ext: mm, keyword: 北京一日游 作为 flow 的输入,但有时完全相同的输入,却无法辨认出来。

    • 主张:辨认用户输入并匹配 flow 字段对错常要害的步骤,一旦出错将影响后续一切流程,因而应该尽或许的下降随机性,添加精确性,最好是答运用户自己装备相关的映射规则,以确保每次都必定能够正常匹配,如参阅 flow 傍边让用户自己输入一段js代码进行匹配
  • 问题:关于输出成果的处理才能较弱

    • 主张:添加一些能够自定义处理输出成果的插件或东西,例如:将输出成果保存到文件并下载、支撑输出成果在线预览等等
  • 问题:工作流变量不支撑默认值

    • 主张:主张支撑默认值,假如用户未输入某些非必填变量则运用默认值
  • 问题:同一挑选器插件只支撑一切都是 而且 或一切都是 或许的逻辑,不支撑混合

    • 主张:支撑混合模式
  • 问题:不支撑枚举数据类型

    • 主张:添加枚举数据类型,例如上面机器人的格局字段,有:mm、opml、md、json 几种枚举可选,此刻能够支撑用户直接在页面上进行挑选,而不用用户去输入

bot演示

上面的机器人id:7330632324591239205

结语

至此,咱们经过 纽扣 渠道完结了一个将要害词生成思想导图的常识图谱生成帮手了,整体体会仍是挺不错的,看完之后,是否现已蠢蠢欲动了呢,赶紧来创立一个归于你自己的 Bot 吧。