本文首发于公众号 极客枫哥 ,日更分享各种好玩的软件、编程知识和个人成长故事
最近工作需要获取每个不同地区最新公布的电价时段,并解析入库。例如上海 7 月份的电价定价和分时规则如下图所示 现在需要做的就是将红框中的文本解析出来,生成每个月的时段规则,结果如下:
{
"1": "谷谷谷谷谷谷谷谷峰尖尖谷谷平平尖尖峰峰峰峰峰峰平",
"2": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
"3": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
"4": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
"5": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
"6": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
"7": "谷谷谷谷谷谷谷谷峰尖尖谷谷平平尖尖峰峰峰峰峰峰平",
"8": "谷谷谷谷谷谷谷谷峰尖尖谷谷平平尖尖峰峰峰峰峰峰平",
"9": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
"10": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
"11": "谷谷谷谷谷谷谷谷峰峰峰谷谷峰峰峰峰平平平平平平平",
"12": "谷谷谷谷谷谷谷谷峰尖尖谷谷平平尖尖峰峰峰峰峰峰平"
}
尝试了一下直接使用 chatgpt4、coze、kimi 等众多 AI 大模型,目前没有一个能够实现精准解析。研究了一番后,最终通过 coze 的工作流基本实现了解析的功能,本文主要记录一下整个过程。
编写 prompts
第一步就是编写提示词,将分时电价规则解析成这样的格式
我尝试从这几个方面来编写提示词,角色,背景,解析规则,需求
角色:定义,比如,你是一位非常厉害的软件工程师,擅长解决各种疑难问题;
背景:介绍一些背景资料,术语,概念,名词等;
解析规则:要做什么,解析的逻辑
需求:输出到内容
简单写了写,就有了下面这段 prompts
重点说一下解析规则,里面提供了一个示例内容,时段和描述的对应关系以及最终生成的 json 数据格式,能够让大模型更好的理解你要做什么。 尝试来运行一下。
看起来结果还不错,人肉对比了一下输出和正确答案,也没什么问题,效果还是很不错的。
格式转换
下一步就是要将上一步输出到结果转换成最终我们需要的格式,coze 里是可以编写代码来对数据进行处理的。 不过,我是不可能自己写代码的,直接把待转换的数据和需求说明扔给 chatgpt
然后就得到了下面这段代码
然后把入参改一下,扔到 coze 代码编辑器中就行了,接着来测试一下代码
看起来没什么问题,接下来就是激动人心的时刻了,利用 coze 的工作流把几个步骤都串到一起。大致流程是这样的
- 开始,接收分时电价规则,保存到变量 RULE;
- 接收 RULE 变量,调用大模型能力,输出第一步的结果;
- 将第一步的结果传入代码块,执行后,输出最终结果;
- 运行成功,输出结果;
又测试了几个不同地区的规则,也能顺利的解析出来,又可以摸鱼了~