在当今的商业环境中,组织不断寻求优化财务流程、提高效率和节省成本的方法。应付账款是一个具有巨大改进潜力的领域。在较高层面上,应付账款流程包括接收和扫描发票、从扫描发票中提取相关数据、验证、批准和归档。第二步(提取)可能很复杂。每张发票和收据看起来都不同。标签不完善且不一致。最重要的信息(例如价格、供应商名称、供应商地址和付款条件)通常没有明确标记,必须根据上下文进行解释。使用人工审核员提取数据的传统方法非常耗时、容易出错且不可扩展。
在这篇文章中,我们展示了如何使用自动化应付账款流程 亚马逊Textract 用于数据提取。我们还提供了一个参考架构来构建发票自动化管道,以实现提取、验证、归档和智能搜索。
解决方案概述
以下架构图显示了收据和发票处理工作流程的各个阶段。它从文档捕获阶段开始,以安全地收集和存储扫描的发票和收据。下一阶段是提取阶段,您将收集的发票和收据传递到 Amazon Textract AnalyzeExpense
用于提取文本之间的财务相关关系的 API,例如供应商名称、发票收据日期、订单日期、到期金额、支付金额等。在下一阶段,您使用预定义的费用规则来确定是否应自动批准或拒绝收据。已批准和已拒绝的文档将转到各自的文件夹中 亚马逊简单存储服务 (亚马逊 S3)存储桶。对于批准的文档,您可以使用以下命令搜索所有提取的字段和值 亚马逊开放搜索服务。您可以使用 OpenSearch Dashboards 可视化索引元数据。批准的文件也被设置为移动到 Amazon S3 智能分层 使用 S3 生命周期策略进行长期保留和归档。
以下部分将引导您完成创建解决方案的过程。
先决条件
要部署此解决方案,您必须具备以下条件:
要创建 AWS Cloud9 环境,请提供名称和描述。将其他一切保留为默认值。选择 AWS Cloud9 控制台上的 IDE 链接以导航到 IDE。您现在已准备好使用 AWS Cloud9 环境。
部署解决方案
要设置解决方案,您可以使用 AWS云开发套件 (AWS CDK)部署 AWS CloudFormation 叠加。
- 在您的 AWS Cloud9 IDE 终端中,克隆 GitHub存储库 并安装依赖项。运行以下命令来部署
InvoiceProcessor
堆栈:
使用 GitHub 存储库中的默认配置设置,部署大约需要 25 分钟。 AWS CloudFormation 控制台上还提供了其他输出信息。
- AWS CDK 部署完成后,在中创建费用验证规则 Amazon DynamoDB 桌子。您可以使用同一 AWS Cloud9 终端运行以下命令:
- 在以以下开头的 S3 存储桶中
invoiceprocessorworkflow-invoiceprocessorbucketf1-*
,创建一个上传文件夹。
In 亚马逊Cognito,您应该已经有一个名为的现有用户池 OpenSearchResourcesCognitoUserPool*
。我们使用这个用户池来创建一个新用户。
- 在 Amazon Cognito 控制台上,导航到用户池
OpenSearchResourcesCognitoUserPool*
. - 创建新的 Amazon Cognito 用户。
- 提供您选择的用户名和密码并记下它们以供以后使用。
- 上传文件 随机发票1 和 随机发票2 到S3
uploads
文件夹来启动工作流程。
现在让我们深入了解每个文档处理步骤。
文件捕获
客户处理来自不同供应商的多种格式的发票和收据。这些文档通过硬拷贝、上传到文件存储的扫描副本或共享存储设备等渠道接收。在文档捕获阶段,您将收据和发票的所有扫描副本存储在高度可扩展的存储中,例如 S3 存储桶中。
萃取
下一阶段是提取阶段,您将收集的发票和收据传递给 Amazon Textract AnalyzeExpense
用于提取文本之间财务相关关系的 API,例如供应商名称、发票收据日期、订单日期、到期/已付金额等。
分析费用 是专用于处理发票和收据文档的 API。它既可以作为同步 API,也可以作为异步 API。同步 API 允许您发送字节格式的图像,异步 API 允许您发送 JPG、PNG、TIFF 和 PDF 格式的文件。这 AnalyzeExpense
API 响应由三个不同的部分组成:
- 摘要字段 – 本节包括规范化键和明确提到的键及其值。
AnalyzeExpense
标准化联系人相关信息的键,例如供应商名称和供应商地址,与税号相关的键,例如纳税人 ID,与付款相关的键,例如应付金额和折扣,以及通用键,例如发票 ID、交货日期和帐号。未规范化的键仍作为键值对出现在汇总字段中。有关支持的费用字段的完整列表,请参阅 分析发票和收据. - 行项目 – 此部分包括标准化的行项目键,例如项目描述、单价、数量和产品代码。
- OCR块 – 该块包含发票页面的原始文本摘录。原始文本提取可用于后处理和识别未作为摘要和行项目字段的一部分涵盖的信息。
这篇文章使用 Amazon Textract IDP CDK 构造 (用于定义智能文档处理 (IDP) 工作流程基础设施的 AWS CDK 组件),它允许您构建特定于用例的、可自定义的 IDP 工作流程。构造和示例是组件的集合,用于在 AWS 上定义 IDP 流程并发布到 GitHub上。使用的主要概念是 AWS CDK 构造、实际的 AWS CDK 堆栈及 AWS步骤功能.
下图显示了 Step Functions 工作流程。
提取工作流程包括以下步骤:
- 发票处理器决策者 - 安 AWS Lambda 验证 Amazon Textract 是否支持输入文档格式的函数。有关支持格式的更多详细信息,请参阅 输入文件.
- 文档分割器 – Lambda 函数,可从文档生成 2,500 页(最大)块,并可以处理大型多页文档。
- 地图状态 – 并行处理每个块的 Lambda 函数。
- 文本异步 – 此任务使用以下异步 API 调用 Amazon Textract 最佳实践 亚马逊简单通知服务 (Amazon SNS) 通知和使用
OutputConfig
将 Amazon Textract JSON 输出存储到您之前创建的 S3 存储桶。它由两个 Lambda 函数组成:一个用于提交文档进行处理,另一个在 SNS 通知上触发。 - TextractAsyncToJSON2 – 因为
TextractAsync
任务可以生成多个分页输出文件,TextractAsyncToJSON2
进程将它们合并到一个 JSON 文件中。
我们将在以下部分中讨论接下来三个步骤的详细信息。
审核批准
对于验证阶段, SetMetaData
Lambda 函数根据之前在 DynamoDB 表中配置的规则验证上传的文件是否为有效费用。对于本文,您将使用以下示例规则:
- 如果出现则验证成功
INVOICE_RECEIPT_ID
存在并且与正则表达式匹配(?i)[0-9]{3}[a-z]{3}[0-9]{3}$
和 ifPO_NUMBER
存在并且与正则表达式匹配(?i)[a-z0-9]+$
- 如果满足以下任一条件,则验证不成功
PO_NUMBER
orINVOICE_RECEIPT_ID
文档中不正确或缺失。
处理文件后,费用验证功能将输入文件移动到 approved
or declined
同一 S3 存储桶中的文件夹。
出于此解决方案的目的,我们使用 DynamoDB 来存储费用验证规则。但是,您可以修改此解决方案以与您自己的或商业费用验证或管理解决方案集成。
智能索引和搜索
随着 OpenSearchPushInvoke
Lambda 函数,提取的费用元数据被推送到 OpenSearch Service 索引并可用于搜索。
最后 TaskOpenSearchMapping
步骤清除上下文,否则可能会超出 Step Functions 配额 任务、状态或工作流运行的最大输入或输出大小。
创建 OpenSearch Service 索引后,您可以通过 OpenSearch Dashboards 从提取的文本中搜索关键字。
归档、审计和分析
要管理发票和收据的生命周期和归档,您可以配置 S3 生命周期规则以将 S3 对象从标准存储类转换为智能分层存储类。 S3 智能分层会监控访问模式,并在连续 30 天没有访问对象时自动将对象移动到不频繁访问层。 90 天没有访问后,对象将移至存档即时访问层,不会影响性能或操作开销。
对于审计和分析,该解决方案使用 OpenSearch 服务对发票请求运行分析。 OpenSearch 服务使您能够轻松获取、保护、搜索、聚合、查看和分析多种用例的数据,例如日志分析、应用程序搜索、企业搜索等。
登录 OpenSearch 仪表板并导航至 堆栈管理, 保存的对象,然后选择 进口。 选择 发票.ndjson 从克隆的存储库中选择文件并选择 进口。这会预填充索引并构建可视化。
刷新页面并导航至 主页, 卖家专用后台,然后打开 费用单据。您现在可以选择并应用过滤器并扩大时间窗口来探索过去的发票。
清理
当您完成评估用于处理收据和发票的 Amazon Textract 时,我们建议清理您可能已创建的所有资源。完成以下步骤:
- 删除 S3 存储桶中的所有内容
invoiceprocessorworkflow-invoiceprocessorbucketf1-*
. - 在 AWS Cloud9 中,运行以下命令来删除 Amazon Cognito 资源和 CloudFormation 堆栈:
- 删除您从 AWS Cloud9 控制台创建的 AWS Cloud9 环境。
结论
在这篇文章中,我们概述了如何使用 Amazon Textract 构建发票自动化管道来进行数据提取,并创建用于验证、存档和搜索的工作流程。我们提供了有关如何使用的代码示例 AnalyzeExpense
用于从发票中提取关键字段的 API。
首先,请登录 Amazon Textract 控制台来尝试此功能。要了解有关 Amazon Textract 功能的更多信息,请参阅 Amazon Textract开发人员指南 or 文本资源。要了解有关 IDP 的更多信息,请参阅使用 AWS AI 服务的 IDP 部分1 和 部分2 帖子。
作者简介
苏珊特·普拉丹 是 Amazon Web Services 的高级解决方案架构师,为企业客户提供帮助。他的兴趣和经验包括容器、无服务器技术和 DevOps。在业余时间,Sushant 喜欢与家人一起在户外度过时光。
史宾迈克尔拉吉 是 AWS Textract 团队的高级产品经理。 他专注于为 AWS 客户构建基于 AI/ML 的产品。
苏普拉卡什·杜塔 是 Amazon Web Services 的高级解决方案架构师。 他专注于数字化转型战略、应用程序现代化和迁移、数据分析和机器学习。 他是 AWS AI/ML 社区的一员,负责设计智能文档处理解决方案。
马兰钱德拉塞卡兰 是 Amazon Web Services 的高级解决方案架构师,与我们的企业客户合作。 工作之余,他喜欢在得克萨斯州丘陵地区旅行和骑摩托车。
- :是
- :不是
- :在哪里
- $UP
- 1
- 100
- 25
- 30
- 7
- 8
- 9
- a
- 关于
- ACCESS
- 访问
- 账号管理
- 账户
- 应付账款
- 实际
- 额外
- 地址
- 后
- 骨料
- AI
- 人工智能服务
- AI / ML
- 所有类型
- 允许
- 沿
- 已经
- 还
- Amazon
- 亚马逊Cognito
- 亚马逊Textract
- 亚马逊网络服务
- 量
- an
- 分析
- 分析
- 和
- 任何
- API
- 出现
- 应用领域
- 使用
- 的途径
- 批准
- 批准
- 批准
- 架构
- 档案
- 保健
- 国家 / 地区
- 围绕
- AS
- At
- 审计
- 审计
- 自动化
- 自动
- 自动化和干细胞工程
- 可使用
- AWS
- AWS 云9
- AWS CloudFormation
- 基于
- BE
- 因为
- 很
- 之间
- 阻止
- 引导
- 都
- 浏览器
- 建立
- 建筑物
- 建立
- 商业
- by
- 被称为
- 呼叫
- CAN
- 能力
- 捕获
- 例
- 通道
- 查
- 选择
- 类
- 清洁
- 云端技术
- Cloud9
- 码
- 收集
- 采集
- 结合
- 商业的
- 社体的一部分
- 完成
- 复杂
- 组件
- 概念
- 配置
- 配置
- 连续
- 由
- 安慰
- 经常
- 结构体
- 集装箱
- 包含
- 内容
- 上下文
- 价格
- 节约成本
- 可以
- 国家
- 覆盖
- 创建信息图
- 创建
- 创造
- 危急
- 合作伙伴
- 定制
- XNUMX月XNUMX日
- 仪表板
- data
- 数据分析
- 日期
- 一年中的
- 专用
- 默认
- 定义
- 定义
- 交货
- 依赖
- 部署
- 部署
- 描述
- 设计
- 摧毁
- 详情
- 确定
- 开发商
- 研发支持
- 设备
- 图表
- 不同
- 数字
- 数字化改造
- 已优惠
- 讨论
- 不同
- 潜水
- 文件
- 文件
- 驾驶
- 两
- 杜塔
- 每
- 此前
- 回音
- 编辑
- 效率
- 费力
- 或
- 其他
- enable
- 使
- 提高
- 企业
- 环境
- 等
- 评估
- 一切
- 超过
- 现有
- 扩大
- 体验
- 明确地
- 探索
- 提取
- 萃取
- 家庭
- 专栏
- 部分
- 字段
- 数字
- 文件
- 档
- 过滤器
- 最后
- 金融
- 经济
- 重点
- 重点
- 以下
- 针对
- 格式
- 止
- 功能
- 功能
- 其他咨询
- 产生
- 得到
- 混帐
- GitHub上
- Go
- 处理
- 硬
- 有
- he
- 帮助
- 高
- 高度
- 他的
- 持有
- 创新中心
- How To
- 但是
- HTML
- HTTP
- HTTPS
- 人
- i
- ID
- 确定
- if
- 图片
- 影响力故事
- 进口
- 重要
- 改进
- in
- 包括
- 包括
- 不正确
- 指数
- 索引
- 指标
- 信息
- 基础设施
- 输入
- 安装
- 即食类
- 整合
- 集成
- 智能化
- 智能文档处理
- 利益
- 成
- 发票
- 发票处理
- 发票
- IT
- JPG
- JSON
- 只是
- 保持
- 键
- 关键词
- 标签
- 景观
- 大
- 后来
- 学习用品
- 学习
- 让
- Level
- 生命周期
- 喜欢
- Line
- 友情链接
- 清单
- 日志
- 长期
- 看
- 爱
- 机
- 机器学习
- 主要
- 管理
- 颠覆性技术
- 经理
- 火柴
- 最大
- 最多
- 提到
- 元数据
- 可能
- 移民
- 分钟
- 失踪
- 修改
- 显示器
- 更多
- 最先进的
- 摩托车
- 移动
- 移动
- 多
- 多数
- 必须
- 姓名
- 导航
- 全新
- 下页
- 没有
- 注意
- 通知
- 通知
- 现在
- 数
- 对象
- of
- 经常
- on
- 一
- 打开
- 操作
- 优化
- or
- 秩序
- 组织
- 除此以外
- 我们的
- 户外活动
- 产量
- 学校以外
- 开销
- 简介
- 己
- 页
- 支付
- 对
- 并行
- 部分
- 通过
- 密码
- 过去
- 模式
- 支付
- 付款
- 为
- 性能
- 相
- 件
- 管道
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- PO
- 政策
- 池
- 帖子
- 帖子
- 潜力
- 预定义
- 当下
- 先前
- 车资
- 过程
- 处理
- 过程
- 处理
- 生产
- 产品
- 产品经理
- 热销产品
- 提供
- 提供
- 出版
- 目的
- 数量
- 原
- 准备
- 收
- 收到
- 接收
- 建议
- 参考
- 参考
- 正则表达式
- 被拒绝..
- 有关
- 关系
- 相应
- 知识库
- 要求
- 岗位要求
- 资源
- 那些
- 响应
- 保留
- 骑
- 定位、竞价/采购和分析/优化数字媒体采购,但算法只不过是解决问题的操作和规则。
- 运行
- 运行
- 同
- 样品
- 储
- 可扩展性
- 扫描
- 搜索
- 其次
- 部分
- 部分
- 安全
- 安全
- 寻求
- 选择
- 提交
- 前辈
- 无服务器
- 服务
- 特色服务
- 集
- 设置
- 共用的,
- 应该
- 显示
- 作品
- 签署
- 显著
- 简易
- 尺寸
- So
- 方案,
- 解决方案
- 花费
- 堆
- 堆栈
- 阶段
- 实习
- 标准
- 开始
- 开始
- 启动
- 州/领地
- 步
- 步骤
- 仍
- 存储
- 商店
- 策略
- 提交
- 成功
- 这样
- 概要
- 支持
- 表
- 采取
- 需要
- 任务
- 税
- 团队
- 专业技术
- 终端
- 条款
- 德州
- 文本
- 这
- 该座
- 其
- 他们
- 然后
- 博曼
- 他们
- Free Introduction
- 三
- 通过
- 一线
- 次
- 耗时的
- 至
- 今天的
- 传统
- 转型
- 转型策略
- 过渡
- 旅行
- 引发
- 尝试
- 二
- 类型
- 单元
- 上传
- 使用
- 用过的
- 用户
- 使用
- 运用
- 有效
- 验证
- 折扣值
- 价值观
- 供应商
- 厂商
- 企业验证
- 通过
- 查看
- 可视化
- 想像
- 方法
- we
- 卷筒纸
- Web服务
- ,尤其是
- 是否
- 这
- 窗口
- 中
- 也完全不需要
- 工作
- 工作流程
- 工作流程
- 加工
- 写
- 完全
- 您一站式解决方案
- 和风网