先来看看最终的效果:
记得之前给家里的老人找药时,常常会发现去看药品包装上的信息,要么看药瓶没写详细的用法用量,要么说明书密密麻麻的,找找怎么着也得十来分钟。有时候还看的一头雾水,不知道该怎么去搞清楚药品的用途和用法,更别提给家里人吃了。这这非常让我困扰:能不能有一种简单的方法,只需使用电子设备,比如扫码枪或者手机,对着药瓶身或者69码一扫就能得到清晰、易懂的药品信息呢?恰好最近在看到扣子(Coze),功能更新极其频繁,比如增加了“抖音评论区”发布渠道、比如模型广场等等。恰好也看到了它的扣子工作坊 bot 大赛,里面提供了好多创建 bot 的思路,其中实用方向里的“AI+硬件”的细分赛道非常吸引我。结合我最开始的疑问,我决定利用扫码枪和AI技术来尝试一下,希望能为自己和其他同样困惑的家人们,答疑解惑。其中有三个关键点要实现:- 扫码枪作为硬件,在交互上代替了键盘打字,与扣子平台集成在一起,实现了硬件和软件的深度结合。用户只需对商品条码进行扫描,便可快速获取详细的商品信息。
- 自建插件,精准数据处理:同队的小伙伴写了专用插件,用于解析69码并从自建的知识库中提取相关信息。
- API接口独立呈现。通过 Coze Bot 平台的工作流控制内容输出,并利用API接口将处理后的数据独立于平台呈现在网页上。
工具选择与调试:磨刀不误砍柴工
AI 智能体平台:扣子(Coze)
基于之前用扣子(Coze)智能体平台做过一些 bot,它一方面提供了丰富的功能和灵活的插件系统,另一方面有提供了工作流,可能性和空间;还能够方便地集成各种硬件设备和AI技术,比如扣子API。功能丰富虽然扣子的页面看起来比较复杂,但实际上操作过的都知道,很多 bot 也能通过自然语言搭建完成。硬件:扫码枪
确定了使用扣子平台之后,下一步就是确定硬件,一款能够快速扫描并准确读取商品信息的扫码枪。经过在京东上的反复对比和选择,我最终选定了一款口碑不错且性价比高的扫码枪。你别说,拿到扫码枪的那一刻,我还挺兴奋的,毕竟以前也只有看没有摸的机会。我拆开后,直接按着说明书配置,其实发现扫码枪的操作原理其实很简单,就像是键盘输入一样,每次扫描后会直接输出一个序列号。从某种程度上来讲,扫码枪的“摄像头扫描”就能代替“键盘打字”这个方式,直接跟 AI 进行交流,那就省事儿多了。数据集下载:药品条码
通过多方搜索和筛选,我选择了 Github 上的药品条码数据集,药品条码信息库,共4万余条,日常常见药基本都概括了,直接在地址下载就好。数据集地址:https://github.com/EricLiuCN/barcodeAI、硬件、网页,这三个能擦出什么火花呢?一起来试试看。AI Bot与硬件集成
1、Scanbot 搭建
既然是要跟AI结合,那我们先来搭建一个能识别条形码的 bot ,利用大模型的自然语言能力,保证它的输出效果。这里可以用提示词先测试下生成效果,然后不断进行调优处理。然后再尝试着搭一个简单的工作流,我们用布洛芬来试一试,看能否跑通,出现绿色对勾就说明跑通了。试运行成功后,即可点击发布,然后就能在 bot 里使用啦。2、扫码枪配置与调试
对于硬件部分,我主要对扫码枪进行了安装和基本配置。我按照说明书一步步进行操作,将其连接到电脑上,并确保它能正常工作。连好之后先拿可乐瓶试试,对着瓶身的69码一扫,屏幕上立刻显示出了相应的序列号,这代表第一步已经顺利完成。由于涉及到编程的相关知识,这时候就找来了两个程序员朋友 @鱼非 和 @siuser 跟我一起完成剩下的部分。3、扫码枪与扣子的集成
硬件和电脑配置好之后,下一步需要把扫码枪与扣子平台进行集成。这个过程需要将扫码枪的输出数据传递给扣子平台,并确保平台能够正确接收和处理这些数据。在扣子平台上,我已经创建好了智能体 ScanBot,现在可以通过配置插件来接收扫码枪的输入。第一次尝试扫码发送给 bot 后,扫码成功,效果如下:这时候我们发现bot回复说“未查询到条形码信息”,这是因为缺少条形码的相关的数据。做到这一步就涉及到插件创建和数据处理:- 插件创建是为了查询条形码,这一步可以通过调取已经搭建好的 API 接口查询商品信息,没有的话就找别人帮忙或者自己搭建一个。
https://juejin.cn/post/7061780747459231752,如果你有更好的接口,欢迎分享。- 数据处理需要数据集,我们从 Github 里下载药品数据表,由于知识库一个表最大只能一万行,所以我们分隔成分割成5个 Excel 表格。然后用本地 Excel 方式上传到知识库里。
其中一个长这样,数据库由 @鱼非 创建,数据源来自 Github
配置好之后,我们用扫码枪扫描69码,扣子平台会根据扫码枪提供的序列号,查询数据库并提取相应的商品信息。我们现在再来看一下扫码后的效果:
这次生成的就是具体的商品信息,只不过内容上会相对比较的粗糙,但是药品该有的关键信息都有了。由于在测试过程中发现 bot 的回复极其不稳定,排查之后发现:- 第一个是 bot 在工作时偶尔不会调用工作流,而且即便是调用了之后,也会报错,猜测知识库数据不太稳定;
- 第二个是扣子平台本身运行不太稳定,经常出现报错和不听指令的情况。
既然这样,那我们先尝试下把插件和知识库的部分直接编辑在工作流里,然后测试下效果如何。恭喜你,这就完成了硬件扫码枪和扣子 bot 之间的连接,也就是只通过硬件扫描就能得到我们想要的商品信息,测了几次相对来说也稳定不少。4、视觉优化卡片呈现
目前输出的纯文字管感很不好,一下也看不到重点信息,有点儿背离初衷,这个问题可以通过扣子的卡片功能姐觉。先设计了一个你自己喜欢的卡片效果,然后跟插件关联起来,就得到了以下效果。尤其是对于药品,卡片效果更加能读懂,不论是小孩还是老人,都很容易接受。与此同时,我特地加入了语音提示功能,适用于各类人群。5、前端网页呈现
最后的条码扫描结果通过 bot 输出是一种方式,另一种方式是独立于扣子之外,扫码枪一扫描69码就到以下的输入框里,在我们看不到的地方(扣子)借助大模型生成内容,最后由下面的 Coze Bot 呈现出来。最后
通过简单的扫码操作,用户可以立即获取商品的详细信息。尤其是对于药品,生成的卡片不仅包含了药品的名称、用途和用法用量,还配有清晰的图片和语音提示,极大地方便了医学小白和老年人使用。