打造 coze 工作流,避免重复劳动,轻松解析电价时段规则

405 阅读3分钟

本文首发于公众号 极客枫哥 ,日更分享各种好玩的软件、编程知识和个人成长故事

最近工作需要获取每个不同地区最新公布的电价时段,并解析入库。例如上海 7 月份的电价定价和分时规则如下图所示 image.png 现在需要做的就是将红框中的文本解析出来,生成每个月的时段规则,结果如下:

{
  "1": "谷谷谷谷谷谷谷谷峰尖尖谷谷平平尖尖峰峰峰峰峰峰平",
  "2": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
  "3": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
  "4": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
  "5": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
  "6": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
  "7": "谷谷谷谷谷谷谷谷峰尖尖谷谷平平尖尖峰峰峰峰峰峰平",
  "8": "谷谷谷谷谷谷谷谷峰尖尖谷谷平平尖尖峰峰峰峰峰峰平",
  "9": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
  "10": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
  "11": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
  "12": "谷谷谷谷谷谷谷谷峰尖尖谷谷平平尖尖峰峰峰峰峰峰平"
}

尝试了一下直接使用 chatgpt4、coze、kimi 等众多 AI 大模型,目前没有一个能够实现精准解析。研究了一番后,最终通过 coze 的工作流基本实现了解析的功能,本文主要记录一下整个过程。

编写 prompts

第一步就是编写提示词,将分时电价规则解析成这样的格式

image.png

我尝试从这几个方面来编写提示词,角色,背景,解析规则,需求

角色:定义,比如,你是一位非常厉害的软件工程师,擅长解决各种疑难问题;

背景:介绍一些背景资料,术语,概念,名词等;

解析规则:要做什么,解析的逻辑

需求:输出到内容

简单写了写,就有了下面这段 prompts

image.png

重点说一下解析规则,里面提供了一个示例内容,时段和描述的对应关系以及最终生成的 json 数据格式,能够让大模型更好的理解你要做什么。 尝试来运行一下。

image.png

看起来结果还不错,人肉对比了一下输出和正确答案,也没什么问题,效果还是很不错的。

格式转换

下一步就是要将上一步输出到结果转换成最终我们需要的格式,coze 里是可以编写代码来对数据进行处理的。 不过,我是不可能自己写代码的,直接把待转换的数据和需求说明扔给 chatgpt

image.png

然后就得到了下面这段代码

image.png

然后把入参改一下,扔到 coze 代码编辑器中就行了,接着来测试一下代码

image.png

看起来没什么问题,接下来就是激动人心的时刻了,利用 coze 的工作流把几个步骤都串到一起。大致流程是这样的

  1. 开始,接收分时电价规则,保存到变量 RULE;
  2. 接收 RULE 变量,调用大模型能力,输出第一步的结果;
  3. 将第一步的结果传入代码块,执行后,输出最终结果;
  4. 运行成功,输出结果;

image.png 又测试了几个不同地区的规则,也能顺利的解析出来,又可以摸鱼了~