在 Power Automate 中为您的发票格式构建自定义 AI 分析器:Dropbox 三步工作流程

A 自定义 AI 分析器模板 这是一个命名的 JSON 模式,您可以在 PDF4me 开发门户中定义它,用于告知 AI 从特定文档类型中提取哪些字段。本演练将构建一个用于 PDF4me 自有 SaaS 订阅发票(33 个字段:供应商地址块、瑞士 MWST 税率、订阅 ID、行项目、折扣详情)的分析器,然后通过一个三步 Power Automate 流程调用它,该流程从 Dropbox 读取 PDF 文件并返回结构化的 JSON。
内置的 default_invoice_extraction 虽然涵盖了通用发票,但实际的应付账款团队会使用特定供应商的布局、自定义的明细项目列、特定管辖区的税项字段以及通用架构所缺失的订阅元数据。只需构建一次自定义分析器,即可永久获得精确匹配提取,无需逐字段提示,也无需后续逻辑来清理响应。
设置一次分析器:登录 dev.pdf4me.com在侧边栏中打开 AI 文档解析器,点击添加,命名分析器(测试发票),选择类型 解析粘贴一个描述要提取的每个字段的 JSON 模式,保存。然后构建 Power Automate 流: 手动触发, 使用路径获取文件内容 (/pdf4me.pdf), AI - 文档解析器 传递的分析器名称为 定制说明输出为 JSON 格式,包含模式中声明的所有字段。本教程中的示例模式提取了 33 个字段,包括供应商地址、瑞士增值税 (MWST)、订阅 ID、账单周期、明细项目和折扣详情。
基于原因的问答
为什么选择自定义分析器而不是 默认发票提取? 内置模板针对的是通用供应商发票。而实际的应付账款团队则拥有供应商特定的布局、特定司法管辖区的税项字段(例如瑞士增值税、德国增值税、美国销售税)、订阅元数据(例如订阅 ID、账单周期、下次账单日期)或行业明细列,这些都是默认架构所不包含的。自定义分析器可以一次性捕获所有这些信息。
为什么 Power Automate 中的字段名为“自定义说明”? 自定义说明参数 AI - 文档解析器 此操作接受分析器 ID 名称(与您在开发者门户中创建分析器时设置的字符串相同)。此名称仅供参考,其作用是“选择针对此文档运行的分析器模板”。留空则回退到默认模板。 默认发票提取在此处填写您的分析器名称以调用自定义架构。
为什么要使用 字段方法:生成 在复合场上? 一些字段(供应商地址, 账单地址)并非直接打印在文档上。人工智能会根据其他提取的字段将它们组合起来(供应商街 + 供应商城市 + ...)。 字段方法:生成 标记告诉 AI 引擎“从同级字段合成此值,不要在文档中搜索它”。这对于规范化地址块、全名或连接标识符非常有用。
为什么两者都是 发票日期 (日期)和 发票日期字符串 (细绳)? 该模式同时声明了日期和时间,因为日期通常是最容易产生歧义的字段。 发票日期 是已解析的日期类型(下游操作可以对其进行日期运算)。 发票日期字符串 文档中的原始打印文本(“2026 年 1 月 26 日”)被原封不动地保留下来。当解析器错误读取或规范化日期时,字符串副本允许您进行审核和修复。
您将获得
输入: 一份PDF格式的发票,格式与您的分析器设计格式一致,存储在Dropbox中。本教程使用PDF4me SaaS订阅发票(Ynoox GmbH / 瑞士,MWST 8.1%,订阅元数据,Pdf4me Base 1000套餐)。 输出: 包含架构中所有 33 个字段的结构化 JSON 响应,可作为 Power Automate 动态内容用于下一个操作(写入 SharePoint 列表、发布到 Slack、追加到 Excel Online、路由到审批等)。
示例输入发票
下载本教程中使用的同一份示例发票: pdf4me-invoice-sample.pdf
示例输出 JSON(摘自实际运行结果)
{
"documentTitle": "INVOICE",
"invoiceNumber": "Pdf4me-202601-32324",
"invoiceDate": "Jan 26, 2026",
"currency": "USD",
"paymentStatus": "PAID",
"vendorName": "Ynoox GmbH",
"vendorAddress": "Riedstrasse 2B, Hedingen, Zürich 8908, Switzerland",
"vendorTaxRegNumber": "CHE-360.751.198",
"billTo": "Chandra Arora",
"subscriptionId": "2e46662a-32e0-4e79-ba06-b13fe2c113ac",
"billingPeriodString": "Jan 26 to Feb 26, 2026",
"nextBillingDate": "Feb 26, 2026",
"mwstRate": 8.1,
"discountCode": "F_yn_100!",
"discountAmount": 35,
"lineItems": [
{ "description": "Pdf4me Base 1000", "price": 35, "discount": 35, "amount": 0 }
]
}
完整的 33 个字段的回复可在以下部分下载。
你需要什么
- PDF4me 帐户。 打开开发者门户 然后登录(电子邮件加密码或 Microsoft、Google、Facebook、Apple、GitHub 单点登录)。
- 动力自动化。 打开 Power Automate任何包含高级连接器的套餐(PDF4me Connect 属于高级套餐)。
- Dropbox对于输入的 PDF 源,SharePoint、OneDrive 和 Google Drive 使用各自的连接器都能正常工作。
- 确切的方案和示例 PDF下载以下两个文件,即可镜像所有屏幕截图。
首先获取架构图、示例 PDF 和预期输出。 使用它们逐字节地重现每个屏幕截图。
架构:分析器提取的 33 个字段
分析器架构是自定义提取的核心。每个字段都声明了 Power Automate 将看到的名称、将接收的类型以及指导 AI 查找值的描述。
| 场地 | 类型 | 它提取了什么 |
|---|---|---|
documentTitle | 细绳 | 发票顶部的标签。例如: INVOICE |
invoiceNumber | 细绳 | 发票编号。示例: Pdf4me-202601-32324 |
invoiceDate | 日期 | 已解析的发票开具日期 |
invoiceDateString | 细绳 | 原始打印日期字符串。例如: Jan 26, 2026 |
invoiceAmount | 数字 | 标题汇总中的总金额 |
currency | 细绳 | ISO货币代码。例如: USD |
paymentStatus | 细绳 | PAID, UNPAID, 或者 DUE |
vendorName | 细绳 | 卖家公司名称。例如: Ynoox GmbH |
vendorStreet | 细绳 | 商贩街线 |
vendorCity | 细绳 | 商贩城 |
vendorState | 细绳 | 供应商所在州/县/省 |
vendorPostalCode | 细绳 | 供应商邮政编码 |
vendorCountry | 细绳 | 供应商国家/地区 |
vendorAddress | 细绳 (fieldMethod: generate) | 由以上各部分组装而成的复合地址 |
vendorTaxRegNumber | 细绳 | 税务登记。瑞士格式 CHE-360.751.198 |
billTo | 细绳 | 客户名称(账单地址) |
billToCountry | 细绳 | 客户国家 |
billToAddress | 细绳 (fieldMethod: generate) | 综合账单地址 |
subscriptionId | 细绳 | 订阅部分的 UUID |
billingPeriodStart | 日期 | 已解析的计费周期开始日期 |
billingPeriodEnd | 日期 | 已解析的计费周期结束日期 |
billingPeriodString | 细绳 | 原始打印句号。例如: Jan 26 to Feb 26, 2026 |
nextBillingDate | 日期 | 已解析下一个账单日期 |
nextBillingDateString | 细绳 | 原始打印的下一个账单日期 |
subTotal | 数字 | 税前金额 |
mwstRate | 数字 | 瑞士增值税税率。例如: 8.1 |
mwstAmount | 数字 | 瑞士增值税金额 |
total | 数字 | 税后总计 |
amountDue | 数字 | 最终应付金额 |
discountCode | 细绳 | 折扣区的促销代码 |
discountDescription | 细绳 | 完整折扣单文本 |
discountAmount | 数字 | 折扣金额 |
discountPercentage | 数字 | 折扣百分比 |
lineItems | 桌子 | 每行产品/计划数据: description, price, discount, amount |
完整的 JSON 模式(包含所有信息) fieldDescription AI 消耗的字符串)位于上面的可下载文件中。
设置 A:如何登录 PDF4me 开发门户?
你所在的位置: 在任何流动存在之前。
- 打开 dev.pdf4me.com 在任何浏览器中均可使用。
- 请输入您的电子邮件地址和密码,然后点击 登录或者选择右侧的单点登录选项之一: 继续使用 Microsoft, 谷歌, Facebook, 苹果, GitHub。
- 新来的朋友?点击 没有账号?注册 创建一个。
登录界面

设置 B:仪表板中的 OpenAI 文档解析器
你所在的位置: 已登录,在 dev.pdf4me.com/dashboard。
- 仪表盘左侧边栏显示您的帐户部分:首页、个人资料、订阅、付款信息 API密钥日志、发票、 AI文档解析器我的文档、文档分类、文档解析、工作经历、共享文档、推荐好友、奖励。
- 点击 AI文档解析器。
仪表盘侧边栏

两个相邻的侧边栏项目。 分类文件 和 解析文档 是单独的作业运行程序(针对现有分析器测试单个文档)。 AI文档解析器 是分析器模板管理器(用于创建架构)。首次设置时,请使用 AI 文档解析器。
设置 C:如何添加新的分析器模板?
你所在的位置: AI文档解析器页面。
- 该页面列出了您已创建的每个分析器模板,包括其 ID、类型以及编辑/删除操作。
- 点击 + 添加。
- 出现一个空白行,其中包含两个字段:
- 分析器 ID请输入一个简短易记的名称(例如:
Test Invoice这是您将在 Power Automate 中作为自定义说明传递的确切字符串。 - 分析器类型带有选项的下拉菜单
Parse和Classify。 挑选 解析 用于结构化域提取。选择 分类 当你需要的是路由决策时。
- 分析器 ID请输入一个简短易记的名称(例如:
- 点击 节省。
添加分析器

设置 D:粘贴 JSON 模式并保存
你所在的位置: 编辑新创建的分析器。
- 点击新分析器旁边的铅笔编辑图标(
Test Invoice)。 - 解析信息编辑器打开后,顶部会显示分析器 ID,然后是 文档模式 下方为字段。
- 粘贴以下 33 字段的 JSON 模式
analyzer-schema.json在文档架构文本区域中。每个条目都是{ "fieldName": "...", "fieldType": "...", "fieldDescription": "..." }。 这fieldDescription这是最重要的字段,它告诉人工智能在哪里寻找以及要捕捉什么。 - 选择一个 示例文档类型 预设(
Invoice或者Purchase Order如果您需要初始模板,请提供模板;否则,请直接粘贴您的架构图。 - 点击 保存更改。
解析信息架构编辑器

模式设计技巧。 写 字段描述 就像你给新来的初级会计做培训一样:先说出文档上打印的标签名称,然后是格式(纯数字、ISO日期、逗号分隔字符串),最后举个例子。人工智能会根据这些描述进行匹配,而不是根据字段名称。 "vendorTaxRegNumber": "供应商税务登记号/UID号。标签:'税务登记号'。瑞士格式,例如:CHE-360.751.198" 节拍 "vendorTaxRegNumber": "税号" 每次。
流程 1:如何将分析器连接到 Power Automate?
目前为止的流程: 仅触发。
Power Automate 部分很简单:只有 3 个操作。先使用手动触发器以便迭代;准备好投入生产环境时,可以切换到 HTTP/SharePoint/Outlook 触发器。
- 在 动力自动化 点击 创造, 选择 瞬间云流。
- 给流程命名(例如:
Custom Invoice Extraction), 挑选 手动触发流程, 点击 创造。
完整的三步流程

三个步骤。AI - 文档解析器是唯一调用 PDF4me 的步骤,并且占用了大部分运行时间(单页发票大约需要 21 秒)。
流程 2:从 Dropbox 获取源 PDF 文件
目前为止的流程: 触发器 + 获取文件内容。
- 点击 + 新步骤, 搜索 Dropbox, 挑选 使用路径获取文件内容。
- 连接 如果您还没有Dropbox帐户,请先注册一个。
- 配置:
- 文件路径:
/pdf4me.pdf - 推断内容类型:
Yes(在高级参数下)
- 文件路径:
获取文件内容配置

流程 3:为什么“自定义备注”字段会包含您的分析器名称?
目前为止的流程: 触发器 + 获取文件内容 + AI - 文档解析器。
这是调用自定义分析器的操作。诀窍在于…… 定制说明 字段:粘贴设置 C 中的确切分析器 ID 名称(Test Invoice 在本演练中)。如果没有它,操作将回退到默认的发票提取方式。
- 点击 + 新步骤, 搜索 PDF4me, 挑选 AI - 文档解析器。
- 连接 使用您的 API 密钥即可使用 PDF4me AI(仅限首次使用)。
- 配置:
- 文件内容选择
File Content第 2 步(获取文件内容)中的令牌 - 文件名:
Test.pdf(仅标签,非路径) - 定制说明 (在高级参数下):
Test Invoice(您在设置 C 中设置的确切分析器 ID)
- 文件内容选择
- 保存并测试。
AI - 文档解析器操作

提高迭代速度的小技巧。 在迭代模式时使用手动触发器。每次更改时都会触发。 字段描述 在开发者门户中保存,然后重新运行 Power Automate 流。自定义注释值始终保持不变,只有其背后的架构会发生变化。这使得架构调整只需 30 秒即可完成。
运行流程并验证
- 节省 右上角的流水。
- 点击 测试, 选择 手动, 点击 测试 然后 运行流程。
- 打开运行详情。所有三个操作都应显示为绿色。“AI - 文档解析器”步骤的输出中应包含 JSON 正文。
- 响应正文包含您声明的模式中的所有字段,这些字段均来自 PDF 文件。
实际运行的示例响应

你实际建造了什么? 一个可复用的自定义发票解析器,能够识别您供应商的格式。只需一次调用,即可提取应付账款团队关注的所有字段,并以下游系统期望的方式命名,随时可以写入 SharePoint、通过审批流程、发布到 Teams 或追加到 Excel 跟踪表。您可以为下一个供应商格式构建第二个分析器,为采购订单构建第三个,为贷项通知单构建第四个。流程结构始终不变,只有自定义备注的值会发生变化。
无需重建即可添加的常见变体
应付金额 > 5000. 分支选项为“是”:向财务经理发起 Microsoft 审批请求。分支选项为“否”:自动存档。自定义分析器与 default_invoice_extraction
| 方面 | 自定义分析器与默认分析器 | 谁会赢? |
|---|---|---|
| 设置时间 | 定义模式需要 15-30 分钟 | 0(已存在) |
| 字段计数 | 无论你声明什么(此处为 33) | 大约有 15 个通用发票字段 |
| 自定义标签 | 是的(瑞士MWST,订阅ID,折扣码) | 不,只有标准发票字段 |
fieldMethod: generate 复合场 | 是的 | 不 |
| 厂商特定布局学习 | 是的,模式描述了它们的布局。 | 不,一刀切 |
| 维护 | 发票格式更改时更新架构 | Zero,PDF4me 维持着它 |
| 最适合 | 经常性供应商、管辖税、订阅计费 | 通用AP摄入量,混合供应商低容量 |
常见问题
设计该方案需要多长时间?
对于熟悉的发票格式(例如您自己的 SaaS 计费方式,或您前三大供应商的计费方式),初稿大约需要 15-30 分钟。通读一张发票,列出应付账款团队手动转录的每个字段,然后写一句简短的描述。 fieldDescription 针对每种标签,分别命名打印的标签并给出示例。然后用 3-5 个示例发票进行测试,并迭代改进那些返回错误描述的标签。
如果文档中缺少某个字段会发生什么情况?
分析器返回的字段值为空或 null,不会报错。下游 Power Automate 逻辑应该处理缺失值。 coalesce() 或者 if(empty(...)) 表达式,尤其是对于必填字段,例如 invoiceNumber这与以下行为相同: default_invoice_extraction。
我可以对我的分析器架构进行版本控制吗?
开发者门户目前尚未原生支持此功能。建议的做法是在进行重大架构更改时创建一个新的分析器 ID(Test Invoice v2)并更新 Power Automate 的自定义说明,使其指向新版本。在所有流程迁移完成之前,请保持旧版分析器处于活动状态。
人工智能如何知道要提取哪些字段? fieldMethod: generate?
人工智能读取 fieldDescription 以及同一级别中同级字段的名称。 vendorAddress 定义为 "Complete vendor address (street, city, state, postal code, country). Use comma(,) to separate lines."人工智能会将已提取的部件组装起来。 vendorStreet, vendorCity, vendorState, vendorPostalCode, vendorCountry 字段。无需正则表达式,无需字符串模板,也无需后续操作。
分析器是否适用于 Power Automate、Make、Zapier 和 n8n?
是的。一旦分析器 ID 发布到开发者门户,所有平台上的 PDF4me AI - 文档解析器操作都可以通过名称引用它。只需构建一次架构,即可在任何自动化工具中使用它,返回的 JSON 响应格式都相同。
故障排除
自定义备注中的值与分析器 ID 不完全匹配。请在开发者门户中打开 AI 文档解析器页面,完整复制分析器 ID 字符串,并将其粘贴到自定义备注中。注意大小写和空格。
这 字段描述 描述过于模糊,或者文档上的标签与描述不符。打开一份失败的示例发票,找到确切的标签文本,并将其更新到描述中: 标签:“发票编号”或“发票号码”。例如:INV-2089。保存架构并重新运行。
添加兄弟姐妹 字段名 和 字段类型:字符串 它逐字逐句地捕获原始打印日期(就像架构的 发票日期字符串这样,您就可以同时获得解析后的日期和源文本以供审核。
确认 字段类型:表格 在顶层,以及嵌套的 字段 数组声明每一列。AI 会对检测到的每一行重复嵌套提取,但前提是父字段声明了该列。 桌子 类型。
后续步骤
相同的“一次设置,多次调用”模式(定义分析器、粘贴架构、将 ID 作为自定义说明传递)适用于任何文档类型:采购订单、合同、银行对账单、医疗索赔、海关申报单。每种格式定义一个分析器,然后即可从任何 Power Automate、Make、Zapier 或 n8n 流程中混合搭配使用。