应统一账单格式、注入领域知识提示词、用Qwen2.5-72B本地推理、构建静态HTML看板;需预处理为四字段DataFrame,用固定9类JSONL输出,分块推理校验,本地绘图嵌入HTML。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
如果您尝试用本地大模型分析个人消费记录并构建可视化看板,但数据无法被准确解析或分类结果失真,则可能是由于原始账单格式混乱、字段未对齐或模型缺乏上下文约束。以下是解决此问题的步骤:一、统一账单格式与结构化预处理
本地大模型不具备直接解析多源异构CSV的能力,必须先将微信、支付宝、拼多多等平台导出的账单转换为标准字段结构。预处理目标是生成含时间、金额、商户名、交易类型四列的干净DataFrame,消除编码错误、空行、标题偏移等问题。
1、使用chardet检测各账单文件真实编码,避免乱码导致字段错位。
2、按平台定制skip_rows参数:微信账单跳过前5行说明文字,支付宝跳过前3行汇总行,拼多多保留首行表头但重命名列名为“date,amount,merchant,type”。
3、对商户名执行标准化清洗:去除“【】”“*”等符号,合并“星巴克(上海)”“星巴克(北京)”为“星巴克”,统一大小写与空格。
4、将所有账单concat后按date列转为datetime64类型,并补全缺失的amount字段为0,确保数值列可参与后续聚合。
二、注入领域知识约束提示词
通用大模型在无约束下易对消费记录产生幻觉分类,例如将“京东物流”误判为“购物”,或将“医保统筹支付”归入“医疗”。需通过结构化提示词强制输出确定性标签体系,并限制输出格式为JSONL。
1、定义固定分类树:餐饮、交通、购物、医疗、娱乐、房租、工资、转账、其他,共9类,每类附3个典型商户示例。
2、构造系统提示:“你是一个家庭财务审计助手,仅根据商户名字符串判断消费类别。不推测、不联想、不补充信息。输出严格为JSON格式:{"id":整数序号,"merchant":"原商户名","category":"上述9类之一","confidence":0.0–1.0}。”
3、对每条记录拼接提示:“请分类以下交易:商户名=‘美团外卖’,金额=¥42.5,日期=2026-04-12。”
4、启用temperature=0.1与max_tokens=128,禁用流式响应,防止截断JSON结构。
三、本地部署Qwen2.5-72B进行批量推理
70亿参数模型在383行账单上已出现数字崩盘,720亿参数模型虽精度提升但仍会强行平滑趋势。Qwen2.5-72B在日文商户名识别与中文语义边界判断上表现稳定,且支持Ollama本地量化运行,避免API外泄风险。
1、通过Ollama pull qwen2.5:72b,确认GPU显存≥24GB(如DGX Spark的A100 40GB)。
2、将预处理后的CSV按50行分块,每块保存为temp_chunk.jsonl,避免单次推理超长上下文溢出。
3、调用命令:ollama run qwen2.5:72b --format json output_chunk.jsonl。
4、对output_chunk.jsonl逐行校验JSON合法性,丢弃解析失败行并标记原始ID,供人工复核。
四、构建轻量级本地看板
无需依赖Web框架,用Python内置库即可生成静态HTML看板,所有数据保留在本地,不上传任何字段至云端。
1、用pandas读取全部output_chunk.jsonl,按category字段groupby求sum(amount),生成月度分类占比饼图(matplotlib)。
2、提取date与amount列,绘制时间序列折线图,标注每月消费峰值与谷值日期。
3、将图表保存为base64编码嵌入HTML模板,仅使用<p><strong><h2><font>标签,禁用JavaScript交互。
4、最终HTML文件包含三部分:顶部显示总支出与储蓄率,中部为饼图与折线图,底部列出top5高消费商户及对应金额。


















