发票处理工作流——带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 pytest2.运行自动接受演示(全部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。
