发票处理工作流

一个基于LangGraph的多阶段发票处理代理,支持工具动态选择、人工干预检查点和断点续传功能,适用于企业财务自动化流程。

  • by Vonvoyage9125
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Vonvoyage9125/Invoice-Processing-Workflow-LangGraph

使用说明

发票处理工作流——带HITL检查点的LangGraph

状态: ✅ 演示| python 3.8+ | 平台: Windows/Linux/Mac

A全面实施 受LangGraph启发的发票处理代理 具有12个精心编排的阶段、基于Bigtool的工具选择、MCP客户端路由、人机交互检查点和检查点/恢复功能。

快速概览

  • ✅ 12阶段工作流程(INTAKE→ 完成)与状态传播
  • ✅ Bigtool动态工具选择(OCR、丰富、ERP、DB、电子邮件)
  • ✅ MCP路由(通用和ATLAS服务器抽象)
  • ✅ 匹配失败时创建HITL检查点
  • ✅ 用于人工审核的Flask REST API+交互式UI
  • ✅ SQLite检查点和审计持久性
  • ✅ 全测试覆盖+CI/CD管道
  • ✅ 综合文档(架构、集成指南、演示指南)

📚 文档

文件 目的
建筑.md 系统设计、组件分解、数据流、扩展点
postman_collection.json Postman API人类视角端点测试集合

🚀 快速开始

1.安装依赖项

python.exe -m pip install flask pyyaml pytest

2.运行自动接受演示(全部12个阶段)

python.exe -m src.runner demo_invoice.json

输出: 工作流执行所有阶段,在匹配失败时创建检查点,自动恢复,打印最终有效载荷。

3.运行手动HITL演示(暂停、查看、恢复)

该项目支持人机交互(HITL)模式,其中工作流在检查点暂停,并通过一个小型Flask UI等待审阅者的决定。

  • 终端1-启动烧瓶人文查看API/UI:
python.exe -m src.api_flask
  • 终端2——以手动模式启动转轮(无自动接受):
python.exe -m src.runner demo_invoice.json --no-auto
  • 打开浏览器UI:
http://127.0.0.1:8081/human-review/ui

当运行者到达检查点时,它将记录暂停和检查点ID。使用浏览器UI检查待定的决定,然后单击 接受 或 拒绝提交后,运行者将检测到该决定并继续执行。

笔记:

  • 这 --no-auto 标志禁用自动接受/恢复,以便工作流保持暂停状态,直到发布人工决策。
  • 可用的Flask UI端点有 /human-review/pending 和 /human-review/decision (POST)用于程序化决策。
  • 对于脚本决策,您可以使用 scripts/post_decision.py 其直接写入DB或调用API。