🔥 一条条查账太麻烦?用coze查一下美团退款到没到账吧!
上个月发现美团退款有未到账,女朋友让我核对订单,打开一看大几百条退款记录(不愧是美团黑金会员😅),人工核对到猴年马月?用几个周末搭了个Coze智能体,重复的事情交给工作流才是AI时代的正确做法!
使用方法
数据源
这个是比较麻烦的部分,目前所有管钱的app都比较封闭,数据只能通过app导出,且导出周期有限制,目前根据我和我女朋友的实际使用支持了以下渠道,使用时需要手工导出才能使用:
✅ 已支持渠道:
- 美团csv:美团app-我的-进入钱包-账单-右上角-下载账单;导出周期3个月
- 微信支付xlsx:微信app-我-服务-钱包-账单-右上角-下载账单-用于个人对账;导出周期3个月
- 支付宝csv:支付宝app-我的-账单-右上角-开具交易流水证明-用于个人对账;导出周期12个月
- 招商银行储蓄卡pdf:招商银行app-收支明细-右上角-打印流水;导出周期12个月
- 招商银行信用卡pdf:掌上生活app-查账-更多服务-账单补寄;导出周期1个月
- 广发银行信用卡pdf:参考上面;导出周期1个月
⚠️ 暂不支持:
- 美团余额和美团月付:无法导出文件格式的账单,只能调用OCR,但速度和准确度都一般
- 中国银行储蓄卡:导出的账单是加密PDF,难以解析
使用步骤
- 上传美团账单:将美团导出的CSV文件上传到左侧区域
- 处理美团数据:点击左侧确认按钮,等待工作流处理,查看需要哪些渠道的交易记录
- 上传支付渠道数据:根据提示上传对应的支付渠道文件到右侧区域
- 处理支付数据:点击右侧确认按钮,等待处理完成,确认数据覆盖时间范围
- 开始智能分析:点击"分析数据"按钮,等待AI智能匹配
- 查看分析结果:点击"查看数据"查看三类结果:
- 📊 已匹配订单:找到对应退款记录
- ❌ 未匹配订单:可能有问题的退款(重点关注)
- 📋 不参与对比订单:超出账单时间范围
- 📊 已匹配订单:找到对应退款记录
- 下载数据:左下角可下载CSV格式的原始数据,方便进一步人工核查
- 联系客服:拿着未匹配订单的交易单号去找美团客服咨询
原理
工作流
graph TD
A[美团CSV文件] --> B[Coze文件处理插件]
B --> C[meituan_filelist_process]
C --> D[美团JSON数据]
E[微信支付文件] --> F[Coze文件处理插件]
G[支付宝文件] --> F
H[招商银行PDF] --> F
I[广发银行PDF] --> F
J[美团余额截图] --> F
F --> K[各渠道解析器]
K --> L[data.ts数据集成]
L --> M[支付渠道JSON数据]
D --> N[analysis.ts智能分析]
M --> N
N --> O{时间范围判断}
O -->|在范围内| P[Cover数据]
O -->|超出范围| Q[Uncover数据]
P --> R{智能匹配算法}
R -->|匹配成功| S[Match数据]
R -->|匹配失败| T[Unmatch数据]
S --> U[table.ts处理]
T --> U
Q --> U
U --> V[Markdown表格]
V --> W[Coze界面展示]
style A fill:#e1f5fe
style E fill:#e8f5e8
style G fill:#e8f5e8
style H fill:#e8f5e8
style I fill:#e8f5e8
style J fill:#e8f5e8
style D fill:#fff3e0
style M fill:#fff3e0
style S fill:#e8f5e8
style T fill:#ffebee
style Q fill:#ffebee
style W fill:#f3e5f5
代码
每个代码节点的代码都在下面仓库中 github.com/CatcherInSk…
具体实现
当时想的时候比较简单,以为AI万能,三两下就能搞完,但是具体实施的时候发现每个点都有许多坑,且听我一一道来
数据源的获取
最开始是想做个爬虫爬数据,发现美团仅外卖业务有h5页面,生态封闭导致无法方便获取数据(反过来说也比较安全),导致爬虫方案搞不了。
然后想着截长图+ocr,但是这个方案设备支持度比较低+不适合大量数据
再然后是自动化应用,苹果又不支持,而且导数据的过程中需要身份验证会导致卡住
最后还是只能手动导数据,吐槽一下美团:余额和月付这两大业务还不支持导出数据文件,基本功能都没有还搞啥支付嘞
数据解析
解析数据总可以接AI了吧,也不太行,一来数据量很大,很容易一下子就把context撑满了,二来幻觉问题很严重,尝试了几个都不能百分百保证输出的稳定性,所以只能正则解析。但是解析的过程还是借助了AI的帮助,让claude帮我总结不同渠道的文件特地和数据规律,相关解析代码在nodes/channel目录下
美团余额和美团月付只有截图,所以也尝试了使用ocr来进行解析,发现了以下问题:
- 每张图片数据量密度低,一页就十几条数据
- 每张图片处理时间长,该节点平均几秒钟处理一张图,效率太低
- 输出不稳定,尽管提示词写的比较细也有概率输出的数据格式有问题
数据匹配
前面的都用代码写了也不差这一个函数了,就定义了一套规则梭完了,整体没啥特别的问题,比较坑的是使用了优惠的情况,美团显示的金额和支付渠道显示的金额会有出入。这种情况如何匹配还在思考中
核心匹配算法:
// 时间差评分(0-3分)
function calculateDateScore(meituanDate: number, paymentDate: number): number {
const hoursDiff = Math.abs(meituanDate - paymentDate) / (1000 * 60 * 60);
if (hoursDiff < 2) return 3; // 2小时内:3分
if (hoursDiff < 24) return 2; // 24小时内:2分
if (hoursDiff < 48) return 1; // 48小时内:1分
return 0; // 超过48小时:0分
}
// 类型匹配评分(0-3分)
function calculateTypeScore(meituanOrder, paymentData): number {
const hasMeituan = paymentData.交易摘要.includes('美团');
const hasRefund = paymentData.type.includes('退款');
if (hasRefund && hasMeituan) return 3; // 退款+美团:3分
if (hasRefund || hasMeituan) return 1; // 单独匹配:1分
return 0;
}
匹配条件:金额完全相等 + 总分≥4分且各项≥1分
搭建coze应用
之所以选coze只是因为在国内大家接受度可能高一点,实际用起来坑也老多了
- 支持组件太少,没有弹窗也没有loading按钮,可见性条件也很难用,只能大量使用markdown来替代一些组件的功能
- 工作流只能依赖组件来衔接,我只能通过设置某组件加载条件为A工作流结束+加载事件触发B工作流来串起来
- 上传组件一次上传超过10个文件容易G,而且翻页回来已上传文件的显示会丢失
- 插件官方支持度不够,很多插件应该官方提供(如文件解析类),用户自己上传的质量良莠不齐,像csv解析,大部分都不支持gbk编码,我自己开发上传一个还过不了审
- bug就不多说了
关键节点编排如下
美团csv解析
其他渠道的数据解析(美团余额的ocr试了一下,还是不够好用)
数据分析
后记
目前支持的渠道有限,大家可以参考这个思路搭建一个适用于自己的工作流,也可以给我评论或提issue,最好是可以给我一份脱敏的数据示例让我方便测试就可以新增不同渠道了
有任何想法都欢迎参与讨论
本人不收集上传的所有信息,工作流中所有的方法在github中开源
但本人不清楚coze会拿数据做什么,详情参考coze的隐私政策
如果这个项目对你有帮助,请给个Star⭐支持一下!
同时也欢迎大家:
- 🔗 分享给有需要的朋友
- 💬 在评论区分享使用体验
- 🐛 反馈bug和改进建议
- 🚀 参与开源贡献
让我们一起用技术的力量,让生活变得更美好!
项目地址:github.com/CatcherInSk…
Coze智能体:www.coze.cn/store/proje…
作者:@CatcherInSky
声明:本项目仅用于个人账单核查,不收集任何用户数据。使用前请确保数据安全,建议在信任的环境中使用。
#美团退款 #Coze智能体 #开源项目 #数据分析 #AI应用 #TypeScript