anaksor-ocr
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。

一个 n8n 工作流,用在每个字段的说明就是提示词的 Airtable 表上。给一行附上 PDF,OpenAI 聊天模型就填好每个还空着的、带说明的格子。改了字段,整列会重新填一遍。
Airtable 的列,按字段说明从 PDF 里填 是一款 n8n 工作流,属于效率类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。
Airtable webhook
在被监视的表里发生下面任一种修改后,Airtable 会通知这个工作流的 webhook,工作流随即开始运行:
带说明的 Airtable 字段由每一行的 PDF 填好,提示词一改,整列重新填一遍
开始之前要准备好这些。
表格和 webhook
存放表格,在 File 字段或某个字段变化时通知工作流,并以记录更新的方式接收答案。
需要一个有四项权限的个人访问令牌,以及一张带 File 附件字段的表
语言模型
根据 PDF 的文本回答每个字段的提示,每一行的每个字段各调用一次。
需要OpenAI API 密钥,并在两个节点里各选一个模型
由 Mindket 于 2026年11月13日检查
这个 n8n 工作流让使用 Airtable 表的人自己决定从 PDF 里取什么,不用改工作流。每个字段的说明就是这一列的提示词。有人给一行附上 PDF,OpenAI 聊天模型读完它,把每个还空着的、带说明的字段填好。新增一个字段或改了它的说明,工作流就把这一列在每个有 PDF 的行里填一遍。干活的是三十六个节点,旁边还有十四张便签。
已经把记录放在 Airtable 里、又常常收到 PDF 文件(发票、租约、报价单、简历)的团队。如果你的 PDF 是没有文字的扫描件,需要不经核对的精确数字,或者发布不了 Airtable 能访问到的 webhook 地址,就别选它。被监视的那张表必须是它所在 base 里的第一张。
| 行业 | 谁在用 | 怎么用 | 例子 |
|---|---|---|---|
| 会计 | 记账员 | 给每张供应商发票附上 PDF,并写明要读哪些字段 | 一位记账员加了 Total 和 Due date 两列,从四十张发票里把它们都填好了。 |
| 物业管理 | 物业经理 | 给每份租约附上 PDF,问它的租金和到期日 | 一位经理加了一个 Notice period 字段,每份租约的这一列都填上了。 |
| 采购 | 采购员 | 附上供应商的报价单,读出价格和交货周期 | 一位采购员在同一张表里并排比较三份报价。 |
| 招聘 | 招聘专员 | 附上简历,问最近一份工作的公司和工作年限 | 一位招聘专员写好 Last employer 的说明,每份简历的这一列就填好了。 |
你需要懂一点 n8n 和一点 Airtable:导入文件、添加两个凭据、发布一个 webhook,再把设置分支运行一次。
任何能被 Airtable 从互联网访问到、又能访问 OpenAI 的 n8n 都能运行它。答案会写进你监视的那张表的格子里。
点“下载”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 写的设置说明。工作流里有一个设置分支,会替你创建 Airtable 的 webhook。
| 需要 | 说明 |
|---|---|
| n8n | n8n Cloud 或你自己的服务器,要有公网地址 |
| Airtable | 一个 base,一张带名为 File 的附件字段的表,以及一个有 data.records:read、data.records:write、schema.bases:read 和 webhook:manage 权限的个人访问令牌 |
| OpenAI | 一个 API 密钥,并要在两个节点里各选一个模型 |
| 里面有文字的文件,不是扫描件 |
workflow.json。OpenAI Chat Model 和 OpenAI Chat Model1 里选中它,并各选一个模型。Airtable Webhook 里,把 YOUR_WEBHOOK_PATH 换成你自己的一长串随机字符。保存,再点 Publish。Set Airtable Vars 里,把 <MY_BASE_ID>、<MY_TABLE_ID> 和 <MY_WEBHOOK_URL> 换成你的 base ID、表 ID 和 Airtable Webhook 的正式地址。尖括号要去掉。When clicking ‘Test workflow’ 运行一次工作流,它会在这个 base 上创建两个 webhook。给某一行的 File 字段附上 PDF。过一会儿,每个带说明的空格子里就有了答案。想问新问题,就新增一个字段,把问题写在它的说明里。这一列会在每个有 PDF 的行里填一遍。
| 要改的 | 在哪里改 |
|---|---|
| 问什么 | Airtable 的字段说明 |
| 答案怎么写 | Generate Field Value 和 Generate Field Value1 的系统消息 |
| 模型 | OpenAI Chat Model 和 OpenAI Chat Model1 |
| 输入列 | Set Airtable Vars、Fetch Records 和 File[0].url 表达式里的名字 File |
| 字段改动波及哪些行 | Fetch Records 里的公式 |
一位记账员的表里有 File、Supplier(说明是开具发票的公司)、Total(含币种的发票总额)和 Due date(付款到期日,照发票上写的)。三个字段都是单行文本。她给一个新行附上一家供应商的 PDF 发票。
过一会儿,Supplier、Total 和 Due date 里就有了简短的答案。一个月后她新增 PO number,说明是采购订单号,有的话才填。这一列会在每个有 PDF 的行里填一遍,发票上没有的就显示 n/a。用这些数字之前,先和 PDF 核对一下。
新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。Airtable 用一条不带改动内容的 webhook 通知告诉 n8n 有修改,所以工作流要再向 Airtable 问改了什么。先从一张有三个文本字段和一个 PDF 的表开始。
专家:工作流既通过 Airtable 节点读取 Airtable,也通过发给它 Web API 的 HTTP 请求读取。有一个 Code 节点负责判断来的是哪种事件。
| 节点 | 做什么 | 要知道的 |
|---|---|---|
Parse Event | 读最后一条数据包,判断是什么事件、哪个字段、哪一行 | 它只认识改动的记录、新建的字段和改动的字段 |
Fields to Update | 列出这一行里还空着的、带说明的字段 | 行修改不会覆盖任何格子,字段修改会 |
Generate Field Value1 | Basic LLM Chain:PDF 的文本、字段的说明和它的 Airtable 类型 | 它的系统消息要求,找不到时答 n/a 并说明原因 |
Fetch Records | 用 NOT({File} = "") 搜索,返回所有行 | 公式里写死了列名 File |
Add Row ID to Payload | 把每个字段的一条答案合成带这一行 id 的一个对象 | Update Record 把它作为一次更新发出 |
行修改从不覆盖格子,字段修改会。Airtable 的 webhook 还会在安静一周后失效。
File[0],而且只按 PDF 读。没有文字层的扫描件,模型什么也读不到n/a。那是文本,而更新节点没有开 typecast,Airtable 可能拒绝把文本写进数字或日期列。先从文本字段开始Parse Event 用最后一条数据包和里面第一条改动的记录,所以一次改好几行,只会填其中一行Get Prompt Fields 读的是这个 base 的第一张表,所以要监视的就是那一张gpt-5-mini(2026 年 11 月 12 日查阅)。OpenAI 的弃用页面给它定的日期是 2026 年 12 月 11 日,替代模型是 gpt-5.6-terra一个 n8n 工作流,把 Airtable 每个字段的说明当作提示词。有人给某一行的 File 字段附上 PDF,聊天模型就读它,并填好每个还空着的、带说明的字段。新增或修改一个字段后,同样的提示词会对每个有 PDF 的行再跑一遍。
workflow.json:n8n 导出的工作流,五十个节点:三十六个干活的,十四张便签。里面没有任何凭据。README.md:这份设置说明,压缩包里的是英文版。Airtable Webhook 原来带着作者自己的路径和 webhook ID。ID 已删掉,路径现在是 YOUR_WEBHOOK_PATH。Set Airtable Vars 里的三个占位符是文件原来就有的,它的 Code 节点也不用修。File 的附件字段的表。这个名字写在 Fetch Records 的公式里、File[0].url 表达式里和 Set Airtable Vars 里,要改就一起改。data.records:read、data.records:write、schema.bases:read 和 webhook:manage,并且能访问这个 base。workflow.json。Get Table Schema、Get Table Schema1、Get Webhook Payload、Fetch Records、Get Row、Update Row、Update Record、RecordsChanged Webhook 和 FieldsChanged Webhook。OpenAI Chat Model 和 OpenAI Chat Model1 里选中它。两个节点都没有指定模型,请各选一个。Airtable Webhook 里,把 YOUR_WEBHOOK_PATH 换成你自己的一长串随机字符。保存,再点 Publish。Set Airtable Vars 里,把 <MY_BASE_ID>、<MY_TABLE_ID> 和 <MY_WEBHOOK_URL> 换成你的 base ID、表 ID 和 Airtable Webhook 的正式地址。尖括号要去掉。inputField 保持 File。When clicking ‘Test workflow’ 运行一次工作流。它会在这个 base 上创建两个 webhook,一个盯 File 这一列的变化,一个盯字段的变化。设置,运行一次:
Set Airtable Vars 存着 base ID、表 ID、webhook 地址和输入字段的名字。Get Table Schema1 和 Get "Input" Field 找到 File 字段。RecordsChanged Webhook 请 Airtable 在这个字段的数据从它自己的界面被更新时发通知。FieldsChanged Webhook 对字段的新增和修改也这样做。每次通知:
Airtable Webhook 收到通知。Get Table Schema 和 Get Prompt Fields 读取表的字段,留下带说明的。Get Webhook Payload 问 Airtable 改了什么,Parse Event 根据最后一条数据包判断事件:row.updated、field.created 或 field.updated。Event Type 把行修改送往一条路,把字段修改送往另一条。Get Row 读取这一行,Filter Valid Rows 在它有文件时留下。Loop Over Items1 一次取一行。PDF 被下载并读成文本。Fields to Update 列出还空着的、带说明的字段。对每个字段,Generate Field Value1 把 PDF 的文本、字段的说明和它的类型发给聊天模型。Get Result1 用字段名给答案命名,Add Row ID to Payload 把答案和这一行的 ID 合到一起,Update Record 写入。Filter Valid Fields 在字段带说明时留下。Fetch Records 找出每个有文件的行。对每一行,PDF 被读取,Generate Field Value 只回答这一个字段,Update Row 写入。Generate Field Value 和 Generate Field Value1 的系统消息,它们要求答案简短,找不到时答 n/a。File,在上面列出的几个地方。Fetch Records 里的公式。RecordsChanged Webhook 和 FieldsChanged Webhook 请求体里的过滤条件。File[0],Extract from File 设的是 PDF。Get Prompt Fields 读的是 Get Table Schema 返回的第一张表的字段,也就是 base 里的第一张表。要监视的就是那一张,或者让 base 里只有一张表。n/a 是文本。更新节点没有开 typecast,Airtable 可能拒绝把文本写进数字或日期列。先从文本字段开始。Parse Event 用的是 Airtable 回答里的最后一条数据包和里面第一条改动的记录,所以一次改好几行,只会填其中一行。其余的请一个一个附。fromSources 设为 client,所以只有在 Airtable 自己里做的修改会触发运行,工作流自己的写入不会。Get Webhook Payload 每次运行都会这样做,但安静一周它就会失效。那时请把设置分支再运行一次。gpt-5-mini(2026 年 11 月 12 日查阅)。OpenAI 的弃用页面给 gpt-5-mini 定的日期是 2026 年 12 月 11 日,替代模型是 gpt-5.6-terra。NOTICE.md 636 B README.md 7 KB workflow.json 42 KB
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。
Qwen · 工具包
Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。
ACE-Step · 工具包
用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。
op7418 · 技能
能生成单文件 HTML 幻灯片、幻灯片配图和多平台封面的技能,有两套视觉风格,还带演讲者模式用于排练。适合使用 Claude Code 或 Codex 的演讲者。
zarazhangrui · 技能
从零开始或从 PowerPoint 文件生成 HTML 演示文稿,并展示几种视觉风格预览供你挑选,适合不懂 CSS 和 JavaScript、又想做网页幻灯片的人。
iptv-org · 工具包
把来自多个国家的公开电视直播频道整理成播放列表,任何支持直播流的视频播放器都能打开。适合想看直播的观众,也适合需要频道数据的开发者。