OpenClaw智能记账本:Qwen3-14b_int4_awq解析短信生成月度消费报告
OpenClaw智能记账本Qwen3-14b_int4_awq解析短信生成月度消费报告1. 为什么需要智能记账本每次月底看着银行卡余额叹气时我都会陷入灵魂拷问钱到底花哪儿了手动记账坚持不了三天银行App的消费分类又经常出错。直到发现OpenClaw能配合本地部署的Qwen3-14b模型解析短信我才真正实现了自动化记账。这个方案的特别之处在于所有短信内容和消费数据都在本地处理不需要上传到任何第三方服务器。通过安卓的辅助功能权限获取短信后Qwen3-14b模型会识别交易金额、商户信息并智能分类支出类型如餐饮、交通、购物等最终生成带可视化图表的月度报告。2. 系统架构与核心组件2.1 技术栈选型整个系统由三个核心部分组成安卓短信监听服务通过无障碍服务(accessibility service)实时捕获银行交易短信OpenClaw本地处理引擎负责调度任务流程、存储原始数据、调用模型APIQwen3-14b_int4_awq模型部署在本地的量化版千问模型专门处理非结构化文本解析选择Qwen3-14b_int4_awq模型是因为14B参数规模在消费文本理解上足够精准AWQ量化后显存占用仅需8GB我的RTX 3060显卡就能流畅运行对中文短信的语义理解效果优于同等规模的Llama32.2 数据流设计整个数据处理流程严格遵循本地化原则[安卓设备] --短信-- [本地HTTP服务] --JSON-- [OpenClaw] --prompt-- [Qwen3-14b模型] ↑ [可视化报表] --CSV-- [本地数据库] --结构化数据--所有中间数据都存储在OpenClaw工作目录的~/.openclaw/workspace/finance文件夹下通过配置文件可以自定义存储路径。3. 具体实现步骤3.1 安卓端短信捕获在安卓设备上需要配置无障碍服务核心代码逻辑class SmsListenerService : AccessibilityService() { override fun onAccessibilityEvent(event: AccessibilityEvent) { if (event.eventType TYPE_NOTIFICATION_STATE_CHANGED) { val text event.text.joinToString() if (银行 in text || 消费 in text) { // 发送到本地OpenClaw服务 sendToOpenClaw(parseSms(text)) } } } }需要注意的细节需在AndroidManifest.xml声明BIND_ACCESSIBILITY_SERVICE权限短信内容通过本地局域网发送到电脑端避免使用云同步建议过滤非交易类短信减少模型负载3.2 OpenClaw侧配置安装完成后需要修改~/.openclaw/openclaw.json配置文件{ finance: { sms_parser: { model: qwen3-14b-awq, categories: [餐饮, 交通, 购物, 娱乐, 医疗, 其他], storage_path: ~/finance_data } } }然后启动OpenClaw的财务技能模块clawhub install finance-analyzer openclaw gateway restart3.3 Qwen3-14b模型提示词设计模型调用采用函数调用(function calling)方式这是经过多次调试后的最优prompt你是一名专业的财务助理请从短信中提取以下信息 1. 交易金额必须精确到分 2. 商户名称简体中文优先 3. 消费类型从预设分类中选择 短信示例【招商银行】您尾号1234的账户于5月20日18:30消费人民币38.00元商户麦当劳 要求返回JSON格式 { amount: 38.00, merchant: 麦当劳, category: 餐饮, time: 2024-05-20 18:30:00 }这个prompt经过特别优化强制要求金额带两位小数限定分类选项避免模型自由发挥时间格式标准化便于后续处理4. 实际运行效果4.1 短信解析准确率测试我用过去三个月的真实消费短信做测试集共287条Qwen3-14b的表现指标准确率金额识别99.3%商户识别92.7%分类正确率88.4%主要错误集中在模糊商户名如支付宝-某商户特殊消费类型如医疗美容被误判为普通医疗4.2 月度报告生成通过OpenClaw的自动汇总功能每月1号会生成如下内容支出分类环形图每日消费折线图Top 10商户排行榜同比/环比变化分析报告样例保存在~/finance_data/reports/2024-05.pdf完全不需要手动干预。5. 遇到的坑与解决方案5.1 短信格式多样性问题初期遇到的最大挑战是各家银行的短信模板差异有的金额在前支出人民币xx元有的商户名用括号星巴克咖啡外币交易会出现多币种标识解决方案是在OpenClaw中配置多个正则表达式模板patterns [ r消费人民币(\d\.\d{2})元.*商户(.)$, # 招行模式 r人民币(\d\.\d{2}).*?于(.?)完成 # 建行模式 ]5.2 模型响应稳定性最初直接使用Chat模式时模型偶尔会返回非JSON内容。后来改用vLLM的/v1/chat/completions接口并设置{ response_format: { type: json_object }, temperature: 0.2 }将temperature调低后输出格式稳定性显著提升。6. 隐私与安全实践由于涉及敏感的财务数据我特别加强了安全措施数据加密所有短信内容存储时使用AES-256加密网络隔离安卓设备与OpenClaw主机通过Tailscale组网权限控制模型API仅允许本地127.0.0.1访问自动清理设置原始短信数据30天后自动删除OpenClaw的本地化特性在这里体现出巨大优势——所有数据处理都在我的笔记本上完成连模型都是本地部署的Qwen3-14b彻底避免了云服务的数据泄露风险。7. 扩展应用场景这套方案经过简单改造还可以用于自动提取电子发票关键信息解析信用卡账单邮件追踪股票交易短信通知分析会员积分变动只需要修改OpenClaw的skill配置和模型prompt就能适配不同的文本解析需求。我已经将发票解析功能也接入了系统下一步计划加入收据OCR识别模块。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2482076.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!