# 硅基流动与智谱 AI 账单 OCR 及 JSON 结构化提取实测报告 本报告针对测试图片(`20260725-142945.jpg` 信用卡账单截图),对 **硅基流动 (SiliconFlow)** 与 **智谱 AI (BigModel.cn)** 平台的视觉大模型、OCR 引擎及多模型组合进行了多轮实测基准对比。 --- ## 目录 1. [测试结论与终极选型建议](#一-测试结论与终极选型建议) 2. [实测性能对比总表](#二-实测性能对比总表) 3. [硅基流动 (SiliconFlow) 平台测试详解](#三-硅基流动-siliconflow-平台测试详解) 4. [智谱 AI (BigModel.cn) 平台测试详解](#四-智谱-ai-bigmodelcn-平台测试详解) 5. [免费模型配额与 Rate Limits 规则](#五-免费模型配额与-rate-limits-规则) 6. [DriftLedger (浮记) 架构与账户分配流程](#六-driftledger-浮记-架构与账户分配流程) --- ## 一、 测试结论与终极选型建议 > [!TIP] > **最佳单 API 直出方案**:智谱 **`glm-4v-flash`** > - **耗时仅 3.22 秒**,单次 API 请求即可直接输出包含商户、金额、日期、卡号、原币的**完美 JSON**,且 100% 免费。 > [!IMPORTANT] > **最佳双阶段流水线方案**:硅基流动 **`DeepSeek-OCR` + `THUDM/GLM-4-9B-0414`** > - **总耗时仅 4.36 秒**(阶段一 OCR 1.17s + 阶段二 文本提 JSON 3.19s),全免费,OCR 文字识别准确率 100%。 > [!NOTE] > **最佳跨国/外币高精度方案**:**`DeepSeek-OCR` + `deepseek-ai/DeepSeek-V3`** > - **总耗时 5.39 秒**,具备强大的语义推理能力,不仅提取出原币数字 `21.19`,还智能推断并补充了单位 `USD`。每次调用费用仅约 0.0008 分钱。 --- ## 二、 实测性能对比总表 测试图片:`20260725-142945.jpg`(招商银行信用卡消费通知,含商户 `GOOGLE *ChatGPT`,金额 `¥143.97`,信用卡 `3315`,原币 `21.19`,时间 `2026-07-23 00:00:00`)。 | 平台 | 模型 / 组合名称 | 架构类型 | 阶段1 耗时 | 阶段2 耗时 | **总耗时** | 提取准确度与 JSON 质量 | 资费类型 | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | **智谱 AI** | **`glm-4v-flash`** | 单阶段 VLM | - | - | **3.22s** | **100% 完美** (提取极精准,结构清晰) | **100% 免费** | | **硅基流动** | **`DeepSeek-OCR` + `GLM-4-9B-0414`** | 双阶段流水线 | 1.17s | 3.19s | **4.36s** | **100% 准确** (结构化规范,无幻觉) | **100% 免费** | | **硅基流动** | **`DeepSeek-OCR` + `DeepSeek-V3`** | 双阶段流水线 | 1.17s | 4.22s | **5.39s** | **智能推导** (自动补全原币单位 `USD`) | 低成本计费 (~0.0008分/次) | | **智谱 AI** | **`glm-4.1v-thinking-flash`** | 思维链 VLM | - | - | **7.03s** | 带有 `` 推理链,易超长截断 | **100% 免费** | | **硅基流动** | **`Qwen/Qwen3-VL-8B-Instruct`** | 单阶段 VLM | - | - | **10.34s** | **100% 准确** (一次生成完成) | **100% 免费** | | **硅基流动** | **`PaddleOCR-VL-1.5`** | 坐标类 OCR | - | - | **62s ~ 114s** | 包含大量 `<\|LOC_xxx\|>` 点位标签与杂音 | **100% 免费** | --- ## 三、 硅基流动 (SiliconFlow) 平台测试详解 ### 1. `deepseek-ai/DeepSeek-OCR` - **定位**:端到端纯文档/图片至 Markdown 识别模型。 - **优点**:速度极快(**1.17s ~ 1.48s**),完美还原表格与富文本结构。 - **限制**:不支持通用大语言模型的指令遵循(无法直接提示词输出 JSON,强制开启 `json_object` 会陷入空格生成死循环)。 ### 2. `PaddlePaddle/PaddleOCR-VL-1.5` - **定位**:带坐标识别的文档/版面分析大模型。 - **缺点**:缺少张量并行加速,单次生成生成耗时高达 60~110 秒,输出结果混杂大量的点位 Token。 ### 3. 双阶段流水线提取结果(实际返回 JSON) ```json { "occurredAt": "2026-07-23 00:00:00", "amount": 143.97, "currency": "CNY", "direction": "expense", "counterparty": "GOOGLE *ChatGPT", "memo": "信用卡尾号: 3315, 原币金额: 21.19 USD" } ``` --- ## 四、 智谱 AI (BigModel.cn) 平台测试详解 ### 1. 智谱免费 Flash 模型分类与特性 - **`glm-4v-flash`**:智谱基础免费视觉模型,**实测表现最稳定、速度最快 (3.22s)**,原生支持 `json_object`。 - **`glm-4.6v-flash`**:最新轻量多模态模型,支持原生工具调用(Tool Calling),但免费接口频控较严(并发时易触发 HTTP 429)。 - **`glm-4.1v-thinking-flash`**:具备 Thinking 思维链机制,回答前会在 `` 中展开多步骤思考逻辑。 - **`glm-4-flash-250414`**:纯文本/代码轻量旗舰模型,适合放在双阶段流水线的 Stage 2。 - **`CogView-3-Flash` / `CogVideoX-Flash`**:分别用于文生图与视频生成。 ### 2. `glm-4v-flash` 实测输出数据 ```json { "occurredAt": "2026-07-23 00:00:00", "amount": 143.97, "currency": "CNY", "direction": "expense", "counterparty": "GOOGLE *ChatGPT", "memo": { "card_last_4_digits": "3315", "original_amount": 21.19, "country_or_region": "美国" } } ``` --- ## 五、 免费模型配额与 Rate Limits 规则 ### 1. 硅基流动 (SiliconFlow) - **门槛**:需完成账户实名认证。 - **配额**: - **RPM (Requests Per Minute)**:100 ~ 1,000 RPM(中小模型 500~1000 RPM)。 - **TPM (Tokens Per Minute)**:50,000 ~ 100,000 TPM。 - **Pro/ 专线**:带 `Pro/` 前缀的模型(如 `Pro/deepseek-ai/DeepSeek-V3`)为付费独占集群,无免费版的固定并发上限。 ### 2. 智谱开放平台 (BigModel.cn) - **免费规则**:所有的 Flash 命名系列(`GLM-4-Flash`、`GLM-4V-Flash` 等)API 均免费开放。 - **并发控制**:对高频连续调用设置了 RPM 阈值(触发时返回 `HTTP 429 Too Many Requests`),代码中需配置指数退避或 1~2 秒重试间隔。 --- ## 六、 DriftLedger (浮记) 架构与账户分配流程 针对识别结果中“为什么只包含时间、金额、商户名,而没有 Beancount 账户”的说明: ### 1. 职责解耦设计 识图/OCR 模块只负责提取客观的**原始交易事件 (`ImportedEvent`)**,定义于 [types.ts](file:///C:/Users/fmq/Documents/work/DriftLedger/src/domain/core/types.ts#L31-L38)。由于每个用户的 Beancount 账户名(如 `Assets:招商银行:信用卡3315`)是高度个性化的,模型无法预知用户本地账本结构。 ### 2. 账本账户决定流程 账户映射是在 **`BillPipeline` 责任链** 中完成的: ```text [账单截图] │ ▼ 1. 图像解析 (AiVisionProcessor.ts) [ImportedEvent] ─── (仅含时间、金额、商户 GOOGLE *ChatGPT、备注 3315) │ ▼ 2. 进入流水线 BillPipeline.process() ─── [billPipeline.ts] ├──> ① 转账识别 (recognizeTransfers) ├──> ② 批次去重与历史去重 (dedup) └──> ③ 规则匹配与账户分类 (rules.ts) ├── 匹配商户/卡号 "3315" ──> 资金来源账户 (sourceAccount): Assets:招商银行:信用卡3315 └── 匹配商户 "GOOGLE *ChatGPT" ──> 支出分类账户 (categoryAccount): Expenses:订阅服务:AI │ ▼ 3. 输出标准交易草稿 (TransactionDraft) [TransactionDraft] ─── 包含标准的双式记账 Postings 分录 ``` ### 3. 相关代码位置 - **原始事件类型定义**:[src/domain/core/types.ts:L31-L38](file:///C:/Users/fmq/Documents/work/DriftLedger/src/domain/core/types.ts#L31-L38) - **账单流水线责任链**:[src/domain/pipeline/billPipeline.ts:L94-L180](file:///C:/Users/fmq/Documents/work/DriftLedger/src/domain/pipeline/billPipeline.ts#L94-L180) - **规则分类与账户映射引擎**:[src/domain/rules/rules.ts:L1-L60](file:///C:/Users/fmq/Documents/work/DriftLedger/src/domain/rules/rules.ts#L1-L60) - **AI 识图处理器服务**:[src/services/ocr/AiVisionProcessor.ts](file:///C:/Users/fmq/Documents/work/DriftLedger/src/services/ocr/AiVisionProcessor.ts)