鸿蒙应用实践:利用扣子 API 开发起床文案生成器
![鸿蒙应用实践:利用扣子API开发起床文案生成器](https://static001.geekbang.org/infoq/75/75bd82f3bb10f353f1b15d2e0486f584.png)
前言
扣子是一个新一代 AI 应用开发平台,无需编程基础即可快速搭建基于大模型的 Bot,并发布到各个渠道。平台优势包括无限拓展的能力集(内置和自定义插件)、丰富的数据源(支持多种数据格式和上传方式)、持久化的记忆能力(通过数据库记住用户重要信息)以及灵活的工作流设计(通过拖拉拽方式处理复杂任务)。这些功能使得用户可以轻松创建功能强大的 Bot 来处理各种任务。
![](https://static001.geekbang.org/infoq/86/8615b64b1666ead48d00bae860c05eaf.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
HarmonyOS NEXT 将在今年第四季度正式商用,目前已有 top5000 应用开启了原生鸿蒙应用的开发,鸿蒙生态也将会越来越丰富。HarmonyOS NEXT 正吸引着越来越多的开发者加入原生鸿蒙应用开发队伍之中去。俗话说“站在风口浪尖上,猪都能飞起来”,抓住鸿蒙应用抢占先机,是很多应用开发者目前最应该做的。
我们将使用扣子(coze)智能体API开发一个起床文案生成器,用于自己的鸿蒙应用中生成”千人千面“的起床文案。
什么是扣子(coze)智能体 API
扣子支持将 Bot 发布为 API 服务,并提供了一系列接口,支持开发者在自己的应用中构建 AI 助手。当前,扣子 API 免费供开发者使用,每个空间的 API 请求限额为:每秒 2 次 (QPS),每分钟 60 次 (QPM),每天 3000 次 (QPD)。
基础概念
起床文案生成的原理
根据用户提供的信息(如称呼、提醒事项、喜好、城市等),针对每个维度进行相关数据查询、文案编辑等处理,最终将所有结果整合到一起进行统一润色,生成一篇完整的文案。如图:
![](https://static001.geekbang.org/infoq/62/6260084628649054d5a092f5c80e5b33.png)
开发起床文案生成器的具体实现流程
本次开发主要使用到了扣子(coze)平台的 Bot、工作流。
注册并登录扣子(coze)平台
进入扣子(coze)官网
可以在API HUB中找到 扣子API 或发现其他 AI 相关 API。
![](https://static001.geekbang.org/infoq/2f/2fba02b8315520c577c14f56bebb739c.png)
注册(登录账号)
点击”开始使用“输入手机号登录或者使用抖音一键登录功能(如果首次登录还需要填写一些注册信息)。登录成功后跳转到控制台如图:
![](https://static001.geekbang.org/infoq/9c/9cff8bd1e876e7a5ea49c95d524bd387.png)
创建工作流
工作流基本概念
工作流支持通过可视化的方式,对插件、大语言模型、代码块等功能进行组合,从而实现复杂、稳定的业务流程编排,例如旅行规划、报告分析等。当目标任务场景包含较多的步骤,且对输出结果的准确性、格式有严格要求时,适合配置工作流来实现。
功能概述
工作流由多个节点构成,节点是组成工作流的基本单元。例如,大语言模型 LLM、自定义代码、判断逻辑等节点。工作流默认包含了开始节点和结束节点。
开始节点是工作流的起始节点,可以包含用户输入信息。
结束节点是工作流的末尾节点,用于返回工作流的运行结果。
![](https://static001.geekbang.org/infoq/86/86ac693f39df754976143bb2f662c736.png)
不同节点可能需要不同的输入参数,输入参数分为引用和输入两类。引用是指引用前面节点的参数值、输入则是支持设定自定义的参数值。
![](https://static001.geekbang.org/infoq/af/af4cdbcabf76d31e1d2866180ca6c4cc.png)
创建工作流
依次点击 个人空间 -> 工作流 -> 创建工作流
![](https://static001.geekbang.org/infoq/d4/d4509b3b9f59f1aaa9814ee6a0a1b498.png)
在弹窗中填写相关信息
![](https://static001.geekbang.org/infoq/a7/a76a78bae161181e24875ad95424fea8.png)
编辑工作流程
篇幅原因,我们目前暂时只做两个维度:用户的称呼、用户城市的天气和用户的代办清单。
编辑开始节点
如图,我们的工作流一共需要提供 4 个输入参数,其中 userName 和 botName 用与最终生成的文案中的称呼,city 和 todoList 两个字段分别表示用户所在城市和代办清单,其中代办清单的类型是一个数组,数组中的每一项包含代办的描述和代办的时间。所有参数均不是必填项。
![](https://static001.geekbang.org/infoq/d9/d9abe49aa3b413eb25d5e292af797079.png)
维度一(城市天气)
全局浏览如图
![](https://static001.geekbang.org/infoq/a7/a76cebb2dd202e7d9da64055e96bc65f.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
新增一个”选择器节点“:在 如果 中引用变量 city ,选择条件中选择 不为空。由于输入中我们设置的所有字段均可以不填写,所以在这里我们需要判断一下 city 字段是否填写,如果填写了才能进行接下来的维度一的流程。
![](https://static001.geekbang.org/infoq/3b/3b3312be86c4e45fe343b80028d5d7ab.png)
获取”实时的天气“:我们需要调用一些天气信息服务商提供的接口,这里有两个方案:
方案一:使用代码节点,通过编写 js 代码编写网络请求的方式,获取实时天气。(优点:获取信息的方式更加自由。缺点:需要编程基础,需要自行寻找接口服务商。)
方案二:使用插件节点,到插件商店中选择已经上架商店的现成的插件。如图,这里我们选择墨迹天气。(优点:集成方便。缺点:自由度不高,智能使用已有的。)
![](https://static001.geekbang.org/infoq/f8/f8fbf9384d57db4390b1c6dc38ad5949.png)
![](https://static001.geekbang.org/infoq/27/27f4491087998154da678239d4b17385.png)
获取输入参数:根据墨迹天气插件的输入参数,我们需要从开始节点的输入中 city 字段中获取这些输入参数,但是用户输入的城市信息是不可控的,所以我们需要大模型的介入来处理这些信息,获取这些数据。新增一个”大模型节点“:点击新增大模型节点
![](https://static001.geekbang.org/infoq/d3/d3d446caec905edca2d12cf3c48987e1.png)
模型我们选择默认的模型,在输入参数中选择 city 字段,创建输出字段,与墨迹插件的输入字段保持一致:
![](https://static001.geekbang.org/infoq/4c/4ce1a2209dbe232381c7757332547385.png)
编写提示词:让大模型根据城市信息填充输出字段。示例如下:
这个节点放置在墨迹天气插件节点的前边,就能保证墨迹天气可以获取到想要的参数了。新增一个大模型节点:成功获取到想要的天气信息后,我们需要通过大模型来对天气信息进行分析、处理和总结。
![](https://static001.geekbang.org/infoq/76/76d7c5429eb23aa6e7e5463339ce8482.png)
设置人设与回复逻辑:
![](https://static001.geekbang.org/infoq/29/298b3110dc68585f55348eb7edec8068.png)
至此,我们维度一(城市天气的)所需要的节点就设置完毕了,把他们链接起来:
![](https://static001.geekbang.org/infoq/f2/f2107cd11beca2bb1bc15ea3ae8a09be.png)
总结先判断是否存在参数城市信息(选择器节点)->补全城市信息(大模型节点)->获取天气信息(墨迹天气插件)->分析天气信息(大模型节点)
维度二(代办清单)
全局浏览如图
![](https://static001.geekbang.org/infoq/f7/f70ea5c9b3686f04d35946b81448d4bb.png)
新增一个”选择器节点“:判断是否存在代办信息
![](https://static001.geekbang.org/infoq/37/3707af40ed480b650855be38878c9cf4.png)
新增一个”大模型节点“:
![](https://static001.geekbang.org/infoq/5c/5c5398a23cebdd3dbf2eefa820f31806.png)
至此,我们维度二(代办清单)所需要的节点就设置完毕了,把他们链接起来:
![](https://static001.geekbang.org/infoq/f7/f70ea5c9b3686f04d35946b81448d4bb.png)
总结先判断是否存在代办清单(选择器节点)->分析代办清单(大模型节点)
生成亲切的早安问候(多维度生成结果合并,统一润色)
新增一个”大模型节点“:
![](https://static001.geekbang.org/infoq/25/25dfc1e4e641d3ef475a592f151be494.png)
人设与回复逻辑:
其中,输入参数一共接收 4 个参数,分别是开始节点的两个称呼(用户称呼和智能体称呼)和两个维度(城市天气和代办清单)的输出结果。进行润色总结后进行输出。
编辑结束节点
所有的节点已经设置完毕,把他们连起来。注意,选择器节点的否则也要链接到信息总和节点中,表示跳过获取城市信息的流程。
![](https://static001.geekbang.org/infoq/2f/2f80688f183655c9c2c5d61f65cbf867.png)
试运行(测试)工作流
试运行
点击试运行
![](https://static001.geekbang.org/infoq/be/be379dff2a463f750ab9052705ab2baf.png)
输入测试数据,点击运行
![](https://static001.geekbang.org/infoq/8f/8fe89277bacc7021ec34cd4b1ae0e00e.png)
查看测试结果
![](https://static001.geekbang.org/infoq/f9/f9cf2e84b9ec6c4caa9c6e780856aa6e.png)
发布
测试结果没有问题后,将工作流进行发布。
![](https://static001.geekbang.org/infoq/27/278fe5f7d5ac8656fcac62bdbf63efe5.png)
创建 Bot
工作流发布成功后,回到控制台点击创建 Bot
![](https://static001.geekbang.org/infoq/80/80b18c713a333e0737800f54011aaeb6.png)
填写相关信息
![](https://static001.geekbang.org/infoq/21/215bd80004c236f82ea9da4c3b1ec414.png)
填写人设与回复逻辑:
添加刚刚发布的工作流
![](https://static001.geekbang.org/infoq/1a/1ab535d435bf34a99c56092631725275.png)
预览并调试并查看调试详情
![](https://static001.geekbang.org/infoq/3f/3f97f1b3d779bb04b173c80ccc87fb4b.png)
确认无误后点击发布
![](https://static001.geekbang.org/infoq/49/49f75e7a2000fcf78aa1687ed742ff13.png)
注意:根据需求点选,需要通过 API 接口调用则一定要点选”Bot as API“。
![](https://static001.geekbang.org/infoq/18/18722c5e005b283810ec9f9b65f693eb.png)
API 调用 Bot
生成个人访问令牌
在控制台页面点击“扣子 API”
![](https://static001.geekbang.org/infoq/ef/ef61ab17efe5e42bd86ac03950322430.png)
选择“API 令牌”并根据提示生成令牌。
![](https://static001.geekbang.org/infoq/8d/8d312d75655707057d7a98a18cd446ae.png)
发送请求
我们以 python 语言为例:
请求成功:
![](https://static001.geekbang.org/infoq/1c/1cf23d2231f9fad42db140a82c4ad24a.png)
至此,我们的起床文案生成器开发完成。
总结
开发的难易程度:使用扣子(coze)平台开发起床文案生成器相对简单,不需要编程基础,通过图形化的工作流配置就能实现复杂的功能。同时,平台内置的插件和大语言模型极大地简化了开发流程。使用场景畅想:这个起床文案生成器可以用于个人或家庭的早晨问候,也可以在企业内部用于提升员工的早晨活力。此外,还可以在智能家居设备中集成,为用户提供更加个性化的叫醒服务。
HarmonyOS NEXT 应用空白比较大,开发一个智能的闹钟还是非常不错的~工作流和 Bot 均已上架,欢迎大家来玩来交流~
版权声明: 本文为 InfoQ 作者【幂简集成】的原创文章。
原文链接:【http://xie.infoq.cn/article/f3774417ecce9f50014daf080】。文章转载请联系作者。
评论