发票智能解析服务

AI Invoice Insights是一款多代理发票智能解析产品,提供发票上传、文本提取、多代理处理和结果验证功能,适用于财务文档处理场景。

  • by jerome79
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jerome79/ai-invoice-insights

使用说明

AI发票洞察——多代理MCP(Ollama就绪)

这是什么

一种多代理发票智能产品,由以下组件构建:

  • 用户界面:用于上传发票和查看结果的静态前端
  • API服务:接受PDF上传、提取文本、调用MCP、持续运行
  • MCP服务:运行多代理管道(预处理→ 提取→ 验证→ 供应商标准化)

业务问题

发票有多种布局和语言。基于规则的解析器很脆弱;黑盒AI很难信任。 该项目的重点是 可解释提取 (结果+警告+跟踪),因此用户可以查看和更正。

用户旅程(当前)

  1. 上传一张发票或一批发票(PDF)
  2. 系统独立处理每张发票
  3. 对于您收到的每张发票:
    • 提取的关键字段(供应商、发票日期、金额总计等)
    • 警告/信心信号
    • 代理跟踪(用于调试和透明)
  4. 每张发票导出JSON,批量结果导出CSV/JSON(UI功能)

建筑

UI → API → MCP (/process) → Orchestrator → Agents → Structured Output (+ Trace)

服务

  • 用户界面:调用API终结点
  • API:
    • POST /analyze (单个PDF)
    • POST /analyze/batch (一个请求中包含多个PDF)
    • 将每个发票处理作为 Run 在SQLite(SQLModel)中
  • 主控程序:
    • POST /process 随着 { "text": "..." }
    • 编排代理并返回稳定的模式+跟踪

关键产品选择(CPTO叙述)

  • 单体上的多药剂:实现每个功能的增量改进(预处理/提取/验证/供应商)。
  • MCP编排:保持路由和可追溯性的明确性和可测试性。
  • 可解释性优先:发票是财务文件;部分提取必须可见。
  • beta的批处理:真实用户处理发票集,而不是逐一处理。

端点

API

  • 健康: GET http://localhost:8080/
  • 斯瓦格: http://localhost:8080/docs

单

  • POST http://localhost:8080/analyze
    • multipart/form-data
    • 字段: file (PDF)

批次

  • POST http://localhost:8080/analyze/batch
    • multipart/form-data
    • 字段: files (对多个PDF重复)
    • 每张发票返回一个结果(以及 run_id 每张发票)

主控程序

  • 健康: GET http://localhost:8000/
  • 斯瓦格: http://localhost:8000/docs
  • POST http://localhost:8000/process
    • JSON: { "text": "..." }

本地运行(无Docker)

安装deps:

  • pip install -r api/requirements.txt
  • pip install -r mcp/requirements.txt

运行:

  • make run-mcp
  • make run-api

Docker运行

开始一切:

  • make dev

服务:

  • UI:http://localhost:5500
  • APIhttp://localhost:8080/docs
  • MCP:http://localhost:8000/docs

Ollama设置(可选)

在本地安装并运行Ollama,然后拉取一个模型:

  • ollama pull llama3.2

.env.dev 通常使用:

  • LLM_BACKEND=ollama
  • OLLAMA_URL=http://host.docker.internal:11434
  • OLLAMA_MODEL=llama3.2:latest

要在没有LLM的情况下运行:

  • 集 LLM_BACKEND=none

路线图(高级别)

现在

  • 批处理+用户体验反馈循环(内测版)
  • 改进错误消息、置信度显示、跟踪可读性

下一步

  • 分类器+路由器(多代理路由故事)
  • 对不断增长的发票集进行评估报告和回归测试

稍后

  • 身份验证、工作区管理、集成(驱动器/电子邮件/会计工具)