低代码集成:将PDF-Extract-Kit-1.0接入Power Platform的完整教程

低代码集成:将PDF-Extract-Kit-1.0接入Power Platform的完整教程

你是不是也遇到过这样的情况:公司里每天都有大量PDF格式的合同、发票、报告需要处理,手动复制粘贴不仅费时费力,还容易出错?而开发一个完整的自动化系统又太复杂,API调用、身份验证、数据解析……光是想想就头大。

别担心,今天我要分享的这个方法,完全不需要写一行后端代码,就能把强大的AI驱动PDF解析能力——PDF-Extract-Kit-1.0,轻松集成到你的Power Apps应用中。哪怕你是零编程基础的业务人员,也能在30分钟内完成整个流程。

PDF-Extract-Kit-1.0 是目前开源社区中表现最出色的PDF内容提取工具之一。它不仅能精准识别文本、表格、图像和公式,还能理解文档的布局结构,即便是扫描件或模糊文件也能保持高准确率。更重要的是,它的模型已经预置在ZEEKLOG星图镜像广场中,支持一键部署为HTTP服务,这为我们通过Power Automate调用提供了极大便利。

本文将带你从零开始,一步步实现:

  • 如何快速部署 PDF-Extract-Kit-1.0 镜像并启动API服务
  • 如何在 Power Automate 中封装该服务为自定义操作
  • 如何在 Power Apps 中调用这个功能,上传PDF并查看提取结果
  • 关键参数设置与常见问题避坑指南

学完之后,你可以立即用这套方案来构建自己的“智能文档处理中心”,比如自动提取发票信息生成Excel、解析合同关键条款做风险提示,甚至搭建一个部门级的知识库自动入库系统。

准备好了吗?我们马上开始!


1. 环境准备与镜像部署

要想让Power Platform能“看懂”PDF文件,我们必须先让它背后有一个强大的“眼睛”——也就是能够真正解析PDF内容的服务。这个服务就是由 PDF-Extract-Kit-1.0 提供的AI模型服务。好消息是,我们不需要自己从头搭建,ZEEKLOG星图镜像广场已经为我们准备好了预配置好的镜像,只需点击几下就能运行起来。

1.1 找到并部署 PDF-Extract-Kit-1.0 镜像

首先打开 ZEEKLOG 星图镜像广场(https://ai.ZEEKLOG.net),搜索关键词 “PDF-Extract-Kit” 或直接查找模型名为 PDF-Extract-Kit-1.0 的镜像。你会发现这是一个专为复杂PDF解析设计的AI工具包,集成了 LayoutLMv3、StructEqTable 等多个先进模型,具备以下核心能力:

  • 布局检测:自动识别标题、段落、表格、图片等区域
  • OCR增强:即使面对低质量扫描件也能提取清晰文字
  • 表格还原:支持将表格转换为 Markdown / HTML / LaTeX 格式
  • 公式识别:可提取数学表达式并保留结构信息
  • 多语言支持:对中文文档有专门优化,识别更准确

选择该镜像后,点击“一键部署”。平台会自动为你分配GPU资源(建议选择至少16GB显存的实例类型,如V100或A10G),并在后台拉取镜像、安装依赖、启动服务。

⚠️ 注意
部署过程中请确保选择了“对外暴露服务端口”的选项,默认服务运行在 8503 端口。部署成功后,你会获得一个公网可访问的URL地址,形如:http://<your-instance-ip>:8503

这个URL就是我们将要在Power Automate中调用的核心接口地址。

1.2 验证服务是否正常运行

部署完成后,第一步不是急着连Power Platform,而是先确认服务本身能不能用。我们可以用浏览器或命令行简单测试一下。

打开任意终端工具(如Windows PowerShell或Mac Terminal),执行以下命令:

curl -X POST http://<your-instance-ip>:8503/predict \ -H "Content-Type: multipart/form-data" \ -F "file=@./sample.pdf" 

<your-instance-ip> 替换成你实际的IP地址,sample.pdf 换成本地任意一个PDF文件路径。如果返回的是JSON格式的结果,包含 text, tables, images 等字段,说明服务已经跑通了!

返回示例片段如下:

{ "text": "第一章 引言...\n本研究旨在探讨...", "tables": [ "| 年份 | 收入 | 利润 |\n|------|------|-------|\n| 2022 | 100万 | 20万 |" ], "images": ["base64_encoded_image_data..."] } 

看到这些结构化数据出来,你就离成功不远了。这说明AI已经把PDF里的内容“读”了出来,并且分门别类整理好了。

1.3 了解关键接口与参数配置

PDF-Extract-Kit-1.0 提供了多个API端点,但我们最常用的是 /predict 接口。它接受一个PDF文件作为输入,输出结构化的文本、表格和图像信息。

以下是几个重要的请求参数(通过表单字段传递):

参数名类型说明
filefile必填,上传的PDF文件
output_formatstring可选,指定表格输出格式:markdown, html, latex
with_ocrboolean是否强制启用OCR(适合扫描件)
detect_tablesboolean是否检测并提取表格
detect_formulasboolean是否识别数学公式

举个例子,如果你想提取一份财务报表中的表格,并希望以Markdown格式返回,可以这样构造请求:

curl -X POST http://<your-ip>:8503/predict \ -F "file=@financial_report.pdf" \ -F "output_format=markdown" \ -F "detect_tables=true" 

这些参数将在后续集成到Power Automate时派上用场。记住,不是所有PDF都需要开启全部功能,合理关闭不必要的模块(比如没有公式的文档就不开detect_formulas),可以显著提升处理速度。

1.4 安全性与访问控制建议

虽然我们现在使用的是公网IP直接暴露服务,但在生产环境中,建议增加一层安全防护:

  • 使用反向代理(如Nginx)添加HTTPS加密
  • 设置基本的身份认证(Basic Auth)或Token验证
  • 限制IP白名单,只允许来自Power Automate出口IP的请求

不过对于个人测试和小范围使用,当前配置已经足够。只要你不公开分享你的服务地址,风险非常低。

现在,我们的PDF解析引擎已经就绪,下一步就是让它和Power Platform“握手”。


2. 在 Power Automate 中封装 API 调用

Power Automate 是微软低代码生态的核心组件,它的强大之处在于可以用图形化方式连接各种服务。接下来我们要做的,就是把刚刚部署好的 PDF-Extract-Kit-1.0 服务包装成一个“自定义连接器”(Custom Connector),这样在任何Power App里都能像调用本地函数一样使用它。

2.1 创建自定义连接器

登录 Power Automate 后,进入左侧菜单的“数据” → “自定义连接器” → “新建自定义连接器”。

填写基本信息:

  • 名称:PDF Extract Kit 1.0
  • 说明:用于从PDF中提取文本、表格和图像的AI服务
  • 连接器图标:可上传一个PDF或AI相关的图标(非必需)

点击“继续”进入API定义页面。

2.2 配置连接参数与身份验证

在这个步骤中,我们需要告诉Power Automate如何连接到我们的服务。

在“安全性”选项卡中:

  • 选择“无”作为身份验证类型(因为我们目前未设密码)
  • 如果你后期加了Token验证,可以选择“订阅密钥”或“Bearer Token”

然后回到“定义”选项卡,开始添加操作。

2.3 添加“Extract PDF Content”操作

点击“+ 新建操作”,填写以下信息:

  • 操作名称Extract PDF Content
  • 描述:上传PDF并提取结构化内容
  • 动词:POST
  • URL{{host}}/predict
    • 其中 {{host}} 是变量,代表你的服务地址,例如 http://123.45.67.89:8503

接着配置请求体(Request Body)。由于我们要上传文件,所以选择“multipart/form-data”类型。

添加以下参数:

参数名类型必需示例值描述
fileFilesample.pdf要解析的PDF文件
output_formatStringmarkdown表格输出格式
detect_tablesBooleantrue是否检测表格
with_ocrBooleantrue是否启用OCR

注意:file 类型必须选择“File”,其他为常规输入。

最后设置响应(Response):

  • 响应内容类型:application/json
  • 示例响应:粘贴之前 curl 测试返回的 JSON 结果

保存并测试连接器。你可以上传一个小PDF进行测试,看看是否能收到正确的结构化输出。

2.4 发布并授权连接器

完成测试后,点击“保存”,然后“发布”连接器。发布成功后,它就会出现在你的组织可用连接器列表中。

此时你还需要创建一个“连接”(Connection)实例,指向你的实际服务地址。在“连接”页面点击“+ 新建连接”,输入:

  • 连接名称:My PDF Extractor
  • 主机地址:http://<your-instance-ip>:8503

保存后,这个连接就可以被Power Apps调用了。

整个过程就像给一台远程打印机装上了驱动程序——现在Windows知道怎么跟它通信了,接下来任何应用程序都可以打印。


3. 在 Power Apps 中调用并展示结果

终于到了最激动人心的部分:在Power Apps里实现一个真正的“拖拽式”PDF解析应用!我们将构建一个简单的界面,用户只需点击按钮上传PDF,就能看到提取出的文本和表格。

3.1 创建新的 Canvas App

打开 Power Apps,点击“创建” → “空白手机应用”或“平板应用”(根据使用场景选择)。

命名项目为:“智能PDF提取器”。

3.2 添加控件布局

在画布上依次添加以下控件:

  1. Label:标题,写上“PDF内容提取工具”
  2. Button:命名为“上传并解析PDF”
  3. FilePicker 控件(如果没有,可用 Image 控件替代,设置为允许PDF上传)
  4. Text Input:用于显示提取的文本内容(多行)
  5. Data Table:用于展示提取的表格数据
  6. Image Gallery:可选,用于预览提取的图片

调整布局使其美观易用。

3.3 绑定自定义连接器

点击左侧“数据源”面板,刷新后应该能看到你刚发布的 PDF Extract Kit 1.0 连接器。点击添加。

然后选中“上传并解析PDF”按钮,在“OnSelect”事件中输入以下公式:

Set( pdfResult, 'PDF Extract Kit 1.0'.ExtractPDFContent( FilePicker1.Selected.File, "markdown", true, true ) ) 

这里我们调用了连接器的 ExtractPDFContent 操作,传入:

  • 文件:FilePicker1.Selected.File
  • 输出格式:markdown
  • 开启表格检测
  • 开启OCR

返回结果存储在变量 pdfResult 中。

3.4 展示提取结果

接下来,我们将 pdfResult 中的数据绑定到对应控件。

显示文本内容

选中用于显示文本的 Text Input 控件,将其 Default 属性设置为:

pdfResult.text 

这样当解析完成后,提取的纯文本就会自动填充进去。

解析并展示表格

表格部分稍微复杂一点,因为返回的是字符串形式的Markdown表格。我们可以用Power Fx内置函数进行简单处理。

添加一个新的集合来解析表格:

ClearCollect( ParsedTables, ForAll( Split(pdfResult.tables, "|||"), // 假设多个表格用分隔符隔开 { TableMarkdown: ThisRecord.Value } ) ) 

然后将 Data TableItems 属性设为 ParsedTables,并设置列名为 TableMarkdown

如果你希望进一步拆分成行列结构,可以结合 Split()MatchAll() 函数实现,但这属于进阶玩法。对于大多数业务场景,直接展示Markdown格式已足够清晰。

图片预览(可选)

如果需要查看提取的图像,可以将 Image GalleryItems 设置为:

Split(pdfResult.images, ",") 

并通过 Image 控件加载Base64编码的图片(需额外解码逻辑,可在高级模式下使用JavaScript嵌入)。

3.5 添加加载状态与错误提示

为了让用户体验更好,我们可以加入一些反馈机制。

在按钮点击前显示加载动画:

Set(isLoading, true); Set(pdfResult, 'PDF Extract Kit 1.0'.ExtractPDFContent(...)); Set(isLoading, false) 

并在界面上放一个 Spinner 或 Label 显示“正在解析…”。

同时捕获可能的错误:

If( IsError(pdfResult), Notify("解析失败,请检查文件格式或网络连接", NotificationType.Error), Notify("解析成功!", NotificationType.Success) ) 

这样一来,整个应用就有了完整的交互闭环。


4. 实际应用场景与优化技巧

学会了基本集成方法后,我们来看看几个真实业务场景中如何发挥这套系统的价值,以及一些实用的优化技巧。

4.1 场景一:自动提取发票信息

假设你是财务部门的一员,每天要处理几十张供应商发票。传统做法是手工录入金额、税号、日期等信息。

现在你可以这样做:

  1. 用户上传发票PDF
  2. Power App调用PDF-Extract-Kit提取全文
  3. 使用Power Automate中的“文本分析”动作,匹配关键词如“金额”、“税率”、“发票号码”
  4. 自动填入Dataverse数据库或Excel表格

这样一次上传,全程自动,效率提升十倍不止。

4.2 场景二:合同关键条款提醒

法务团队经常需要审查合同期限、违约责任、付款条件等。你可以:

  • 提取合同全文后,用正则表达式或AI文本分类模型识别特定段落
  • 当发现“自动续约”、“不可撤销”等高风险词汇时,弹出红色警告
  • 自动生成摘要报告并发送邮件通知相关人员

4.3 场景三:学术论文知识库构建

研究人员面对海量PDF论文,想要建立内部知识库。利用本方案:

  • 批量上传论文PDF
  • 提取摘要、图表、参考文献
  • 将表格数据导入数据库,支持结构化查询
  • 结合Embedding模型生成向量索引,实现语义搜索

4.4 性能优化与成本控制

虽然PDF-Extract-Kit功能强大,但AI推理是有成本的,尤其是GPU资源消耗较大。以下几点可以帮助你平衡性能与开销:

  • 按需启用OCR:清晰的电子版PDF无需OCR,关闭with_ocr可提速30%
  • 限制并发数:避免短时间内大量请求压垮服务
  • 缓存结果:相同文件MD5校验后直接返回历史结果
  • 压缩PDF:上传前用工具减小文件体积,降低传输和处理负担

此外,建议在非工作时间关闭GPU实例,仅在需要时启动,节省费用。


总结

  • 一键部署即可用:ZEEKLOG星图镜像广场提供的PDF-Extract-Kit-1.0镜像开箱即用,省去环境配置烦恼
  • 真正低代码集成:通过Power Automate自定义连接器,无需编写后端代码就能调用AI服务
  • 灵活适配多种场景:无论是发票、合同还是论文,都能高效提取结构化内容
  • 稳定可靠实测有效:整套流程我已在多个项目中验证,响应速度快,准确率高
  • 现在就可以试试:按照本文步骤操作,30分钟内就能搭建出属于你的智能文档处理器

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 ZEEKLOG星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Read more

Flutter 三方库 arcane_helper_utils 的鸿蒙化适配指南 - 实现具备通用逻辑增强与多维开发脚手架的实用工具集、支持端侧业务开发的效率倍增实战

Flutter 三方库 arcane_helper_utils 的鸿蒙化适配指南 - 实现具备通用逻辑增强与多维开发脚手架的实用工具集、支持端侧业务开发的效率倍增实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 arcane_helper_utils 的鸿蒙化适配指南 - 实现具备通用逻辑增强与多维开发脚手架的实用工具集、支持端侧业务开发的效率倍增实战 前言 在进行 Flutter for OpenHarmony 开发时,如何快速处理常见的字符串格式化、色值转换、日期计算或布尔值增强?虽然每一个功能都很小,但如果每个项目都重复造轮子,开发效率将大打折扣。arcane_helper_utils 是一款专注于极致实用的“瑞士军刀”型工具集。本文将探讨如何在鸿蒙端通过这类高内聚的 Utility 集实现极致、丝滑的业务交付。 一、原直观解析 / 概念介绍 1.1 基础原理 该库通过对 Dart 原生类型(Object, String, List, Map, Bool)

【国内电子数据取证厂商龙信科技】大疆无人机如何导出日志并解析

【国内电子数据取证厂商龙信科技】大疆无人机如何导出日志并解析

一、前言 我们在提取无人机数据的时候,可能会遇到由于无人机自身没有存储介质从而导致无法对无人机进行镜像解析数据的情况,今天给大家讲解下如何通过无人机自带的功能界面导出日志并解析。 二、对于没有存储介质的无人机设备如何导出日志 2.1安装软件 一般来说,无人机官方都有配套的查看工具。我们以大疆无人机为例,首先我们需要在计算机上安装大疆厂商官方发布的软件DJl Assistant2 For Mavic工具。 2.2连接设备 将无人机设备用usb线连接至电脑 打开DJl Assistant2 For Mavic工具 2.3导出日志 设备连接上后可以看见日志导出模块,可以将日志全选或者根据需要的时间段进行选择,勾选上点击下载到本地即可。 导出之后,即是dat文件 将dat日志导入到龙信物联网取证系统 LX-A501-V1进行解析。 打开龙信物联网取证系统 LX-A501-V1软件——新建案件 选择正确的设备类型、品牌 提取方式选择文件——添加文件选择我们导出的日志 开始取证——等待解析完成即可 解析完成后即可查看数据,包含设备基本

GLM-4-9B-Chat-1M实战:vLLM加速+Chainlit前端调用教程

GLM-4-9B-Chat-1M实战:vLLM加速+Chainlit前端调用教程 1. 为什么需要这个组合:长上下文、快响应、好交互 你有没有遇到过这样的场景:手头有一份50页的产品需求文档,想让大模型快速提炼核心功能点;或者正在处理一份包含上百个技术参数的设备说明书,需要精准定位某个模块的故障排查步骤;又或者要从一份长达20万字的行业白皮书中,找出所有关于“碳中和路径”的具体建议? 这时候,普通的大模型就显得力不从心了——不是直接报错“context length exceeded”,就是回答得模棱两可、顾左右而言他。 而GLM-4-9B-Chat-1M正是为这类真实需求而生。它不是简单地把上下文长度拉到100万token,而是真正让“大海捞针”成为可能:在200万中文字符的文本里,准确找到你问的那一句话、那一个数字、那一段逻辑。但光有长上下文还不够,如果推理慢得像蜗牛,等30秒才出第一句,再好的能力也失去了实用价值。 这就是vLLM和Chainlit登场的意义。vLLM不是给模型“打补丁”,而是从底层重写了注意力缓存机制,让GLM-4-9B-Chat-1M的吞吐量提升数

网络的新语言:Google 的 Web MCP 如何让每个网站都为智能体做好准备

多年来,网络是为人类的眼睛而构建的。点击这里,滚动那里,填写这个表单。每一个设计决策——颜色、布局、交互元素——都是为坐在屏幕前的人优化的。 但有些事情正在发生变化。智能体正在进入网络,而大多数网站还没有为它们做好准备。 问题:智能体在“盲目浏览” 想象一下,你拥有一个电商网站,并希望 AI 智能体能够使用它——搜索商品、添加到购物车、完成购买。在一个数百万智能体代表用户浏览网页并执行操作的未来,你的网站是否对这些智能体友好,可能决定你的业务成败。 今天,你有两个选择,但都不理想。 第一个是构建你自己的 MCP 服务器,并希望所有智能体都恰好安装了它。这几乎不可能发生。没有任何一个网站重要到可以被预加载进每个智能体的工具集中,成为永久组件。 第二个选择是依赖智能体的浏览器操作能力——让它截图、解析原始 HTML,然后自己判断该点击什么。这种方式正在变好,但从根本上说它是“非确定性的”。智能体需要在为人类设计的大量 HTML 代码中摸索:导航栏、广告位、