document-ai-samples
Google 官方文档智能处理示例库,27个场景覆盖发票识别、合同解析、欺诈检测等完整流水线
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Google 官方文档智能处理示例库,27个场景覆盖发票识别、合同解析、欺诈检测等完整流水线
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:财务人员每天要处理上百份发票,合同部门审阅一份合同要翻遍数十页扫描件,法务团队从数百份协议中找一条关键条款……这些都是文档密集型工作的典型痛点。传统方案靠人工录入,既慢又容易出错。 Google Cloud Document AI 就是为了解决这些问题而生的云服务——它用机器学习模型把 PDF、扫描件、图片里的文字、表格、结构化信息自动提取出来。但怎么在自己的业务里用它?GoogleCloudPlatform/document-ai-samples 就是官方答案:超过 27 个完整示例,覆盖从发票识别、合同解析到欺诈检测的各个场景,是目前最权威的 Document AI 应用参考。 这个仓库由 Google Cloud 官方维护(Apache-2.0 许可证),2022 年 2 月上线,2026 年 6 月仍有活跃更新,目前累计 325 颗星、115 个 Fork,在 Google Cloud 官方示例库中处于中上活跃水平。
要理解这个项目,先得知道 Document AI 本身在解决什么问题。 AI 模型处理文本(NLP)和图像(Vision)早已成熟,但真实世界中大量的信息藏在文档里——PDF、扫描件、纸质表格、表单……这些文件既包含文字,又包含布局、表格、签名、印章等结构信息,普通 OCR 无法理解它们之间的语义关系。 Document AI 的核心思路是:先用 OCR 识别文字,再用专门的 ML 模型理解文档的语义结构——比如发票里的金额、日期、供应商信息,或者合同里的甲乙双方、标的、违约条款。它支持多种处理器类型:
仓库根目录包含 22 个子目录,按功能可分为以下几类:
| 类别 | 示例目录 | 核心功能 |
|---|---|---|
| Web 应用 | web-app-demo、web-app-pix2info-python、document-json-explorer | 可交互的 Web 界面,实时上传文档并展示解析结果 |
| 数据管道 | toolbox-batch-processing、sql-pdf-python、bq-connector | 批量处理文档,结果写入 BigQuery/SQL |
| 发票处理 | fraud-detection-python、tax-processing-pipeline-python | 发票信息提取 + 欺诈检测/税务处理 |
| 文档理解 | classify-split-extract-workflow、extract-tables、paper_summarization | 分类、切割、实体抽取、论文摘要 |
| 表格 & PDF | pdf-splitter-python、pdf-embedded-text、filter-hitl-language | PDF 文本嵌入、分割、按语言过滤 |
| 企业场景 | document_ai_warehouse、ekg-demo、cx-content-moderation | 企业文档仓库、内容审核、知识图谱 |
| 其他工具 | watermark-remover、extract-languages、apps-script-google-drive | 水印移除、多语言提取、Google Drive 集成 |
每个子目录基本是一个独立项目,有自己的 README、依赖文件和部署说明,可单独参考。
从代码层面看,这个仓库的技术选型非常明确: 后端:Python 是绝对主力,用于调用 Google Cloud Document AI Python 客户端库,处理文档上传、API 调用、结果解析。Node.js/Express 用于 Web 场景(web-app-demo 的后端)。 前端:Angular(web-app-demo 的前端)和 React(document-json-explorer)代表了两种主流选择,前者适合企业级 Angular 生态,后者适合快速迭代。 数据层:BigQuery 是 GCP 原生分析数据库,所有结构化结果最终都写入 BigQuery;Cloud Storage 存储上传的原始文档和处理后的结果。 部署层:Docker 支持覆盖主要应用;Cloud Run 是推荐的一键部署目标(支持 deploy.cloud.run 按钮);Cloud Functions 用于构建事件驱动型处理管道。 Notebook 文化:仓库中大量使用 Jupyter Notebook 作为示例载体,降低了学习门槛,非开发者也能通过运行 Notebook 快速体验 Document AI 的能力。
对于想先看效果再动手的开发者,web-app-demo 是最值得体验的示例。这是一个前后端分离的完整应用:
fraud-detection-python 是整个仓库中最具业务深度的示例,完整演示了如何用 Document AI + 企业知识图谱(EKG)构建发票欺诈检测流水线:
必须直面的是,这个仓库的部署门槛不低: GCP 强依赖:所有示例都需要 Google Cloud 账号、启用结算,且 Document AI API 按页计费(标准处理器约 0.05 美元/页),本地测试有真实成本。 前置配置繁琐:需要创建 Document AI Processor(每个处理器有独立的 Region 和 ID),配置服务账号凭证,理解 GCP IAM 权限——对初次接触 GCP 的开发者不太友好。 代码质量参差不齐:作为 Google Cloud 官方示例而非官方产品,部分代码偏向 PoC(概念验证)水平,缺少完整的错误处理和边界情况覆盖,不建议直接用于生产环境。 无 docker-compose:虽然有 Dockerfile,但没有 docker-compose.yml 实现一键本地完整部署,本地运行需要分别启动前后端并手动配置环境变量。
Google Cloud Document AI 在全球文档智能处理市场的份额处于第一梯队(与 AWS Textract、Azure Form Recognizer 并列),这个示例库作为官方参考,是企业评估和落地 Document AI 最重要的学习资源。2024 年 Google 集成了生成式 AI(Gemini)能力,让 Document AI 可以做文档摘要、问答等更高级的理解任务,技术边界持续扩展。 爱好者建议:从 web-app-demo 的 Angular 演示入手,直观感受 Document AI 的能力;再读 paper_summarization 的 Notebook,理解如何将文档处理与 AI 理解结合。 开发者建议:从 bq-connector 了解如何将处理结果接入数据仓库;参考 fraud-detection-python 的架构设计自己的业务流水线,但注意补充生产级错误处理和监控。 总体而言,这是一个介于学习教材和生产参考之间的资源库。拿来入门、了解能力边界、设计架构方案,它非常称职;直接拷贝上线,则需要大幅度的工程加固。