AI PLAY玩法更新持续收录
← 回到更新流

2026-10-08 · 原文发布日

自动给Google Drive新文件分类归档并留审计表

这个n8n流程定时扫描Drive的Incoming文件夹,对照Sheets日志只处理新文件,按类型下载提取PDF、Office和文本内容(图片走视觉模型),发给OpenAI兼容接口按预设分类体系返回JSON。低置信度、敏感类别或解析失败的进Uncategorized待审,其余在Organized目录下找到或建好对应文件夹移入,重名可保留、改名或跳过。每个文件的结果状态写入Sheets,可选Slack或邮件通知待审项和每日汇总。

原文要点

原模板按数分钟级计划读取配置和 Sheets 日志,只处理 Incoming 中的新文件或可重试文件,并按上限逐文件执行。它可下载并提取 PDF、Office、表格、文本内容,或为视觉模型准备图片;内容不足时退回文件名和元数据。OpenAI 兼容 /chat/completions 返回的 JSON 会修复解析,再按分类表、置信度和敏感类别分流。目标文件夹可查找或创建,重名支持保留、改名、跳过;移动保留文件 ID 和共享。审计状态含 SUCCESS、REVIEW、SKIPPED、ERROR,另可发 Slack、邮件和日报。

这次做成什么

在隔离的 Drive 测试空间中搭一个定时增量归档流:新文件经内容提取和模型分类后移入 Organized 子目录,同时写入审计表。以下分类表、表头和练习数据为本站设计,不是原模板文件。

准备什么

  • 可访问 Google Drive 和 Google Sheets 的 n8n 环境及测试 OAuth2 凭据
  • 独立的 Incoming、Organized 测试文件夹和一张可清空数据的测试表
  • 带 Authorization Bearer 测试密钥的 OpenAI 兼容接口及可用模型名
  • 如测试图片分类,所用模型必须具备图片输入能力;Slack 或 SMTP 仅可选

具体怎么做

  1. 建立隔离材料

    在 Drive 新建 Incoming 与 Organized,分别记录文件夹 ID;在 Sheets 建审计页,表头采用 file_id、file_name、mime_type、modified_time、status、attempts、category、confidence、destination_folder_id、processed_at、message。

  2. 配置凭据和阈值

    配置 Google Drive OAuth2、Google Sheets OAuth2、HTTP Header Auth;填写 SOURCE_FOLDER_ID、DESTINATION_ROOT_FOLDER_ID、LOG_SPREADSHEET_ID、LOG_SHEET_NAME、AI_BASE_URL、AI_MODEL。阈值先设为 0.75,重名策略先用 rename。

  3. 形成增量队列

    计划触发器读取配置后查询 Sheets 日志,再列出 Incoming 中非文件夹文件。已有 SUCCESS 记录或 attempts 已达上限的跳过;新文件和未达上限的失败文件进入队列,并按 MIN_FILE_AGE_SECONDS、MAX_FILES_PER_RUN 控制后逐个处理。

  4. 提取模型输入

    按 mimeType 分支:PDF、Office、表格和文本先下载并提取文字;图片在启用视觉输入时传入图片;提取被关闭或失败时使用文件名、类型、大小、修改时间。单条内容过长时先截断并保留文件名。

  5. 请求并校验分类

    向 OpenAI 兼容 /chat/completions 发送下方提示词,解析并修复 JSON。category 必须在 CATEGORY_TAXONOMY 内,confidence 必须是 0 到 1 的数字;字段缺失或解析失败统一标记为 Uncategorized。

  6. 执行归档分支

    置信度低于阈值、类别属于 SENSITIVE_CATEGORIES 或分类失败时移入 Uncategorized 并置 REVIEW;其余在 Organized 下查找或创建类别文件夹,按 keep、rename 或 skip 处理重名,再用移动操作保留原文件 ID。

  7. 写审计和通知

    把分支结果映射到审计表:Drive.id→file_id,name→file_name,mimeType→mime_type,modifiedTime→modified_time,模型 category/confidence→同名列,目标文件夹 ID→destination_folder_id。REVIEW 可发 Slack 或邮件,另按日期汇总各状态数量。

可直接复制的材料

独立文件分类提示词

本站独立编写,可粘贴到聊天接口提示词位置;类别表和置信度阈值需与配置一致。

你是文件归档分类器,只能依据给定文件名、元数据和正文判断,不得补充外部事实。
允许类别:产品资料、报价合同、财务票据、人事法务、市场素材、其他。
输入:文件名={{FILE_NAME}};MIME={{MIME_TYPE}};修改时间={{MODIFIED_TIME}};正文={{EXTRACTED_TEXT_OR_EMPTY}}。
只输出一个 JSON 对象,不要 Markdown,不要解释:{"category":"允许类别之一","confidence":0到1之间的小数,"reason":"不超过50个中文字的判断依据"}。证据不足时 category 用其他并降低 confidence。

隔离练习配置

ID、密钥、接口地址和模型名都必须替换;api.example.invalid 是占位地址。原模板的具体字段名应在实际节点中核对。

SOURCE_FOLDER_ID=替换为Incoming测试文件夹ID
DESTINATION_ROOT_FOLDER_ID=替换为Organized测试文件夹ID
LOG_SPREADSHEET_ID=替换为测试表ID
LOG_SHEET_NAME=Audit
GOOGLE_DRIVE_CREDENTIAL=Google Drive OAuth2测试凭据
GOOGLE_SHEETS_CREDENTIAL=Google Sheets OAuth2测试凭据
OPENAI_COMPATIBLE_CREDENTIAL=HTTP Header Auth,Authorization: Bearer 替换为测试密钥
AI_BASE_URL=https://api.example.invalid/v1
AI_MODEL=替换为账户可用模型
CATEGORY_TAXONOMY=产品资料|报价合同|财务票据|人事法务|市场素材|其他
SENSITIVE_CATEGORIES=财务票据|人事法务
CONFIDENCE_THRESHOLD=0.75
DUPLICATE_STRATEGY=rename
MAX_FILES_PER_RUN=5
MIN_FILE_AGE_SECONDS=60
MAX_ATTEMPTS=3
AUDIT_FIELDS=file_id,file_name,mime_type,modified_time,status,attempts,category,confidence,destination_folder_id,processed_at,message

输入与输出示例

本站虚构演示,未调用模型;文件夹 ID 为练习值,两个输出分别对应两个输入文件。

输入

本次扫描到 NEW_PDF_001|客户报价单-Q4.pdf|application/pdf|正文:客户A询问20套演示套件总价;以及 NEW_PDF_002|员工保密协议.pdf|application/pdf|正文:员工入职保密义务。

对应输出

[{"file_id":"NEW_PDF_001","file_name":"客户报价单-Q4.pdf","status":"SUCCESS","attempts":1,"category":"报价合同","confidence":0.94,"destination_folder_id":"ORG_QUOTE","message":"已按报价合同归档"},{"file_id":"NEW_PDF_002","file_name":"员工保密协议.pdf","status":"REVIEW","attempts":1,"category":"Uncategorized","confidence":0.91,"destination_folder_id":"ORG_UNCAT","message":"命中敏感类别人事法务,待复核"}]

做完检查这些

  • 日志中已有 SUCCESS 的 file_id 不再进入本轮模型请求或移动步骤
  • 低于 0.75、敏感类别和解析失败的文件均进入 Uncategorized 且状态为 REVIEW
  • 合法类别文件移入对应 Organized 子目录,重名时产生不覆盖原名的新名称
  • 审计行中的 file_id、类别、置信度、目标文件夹和状态与本次处理结果一致
  • 关闭通知配置后归档和写表仍完成,开启后 REVIEW 项能收到一条通知

容易卡住的地方

  • Sheets 表头与节点字段不完全一致时会出现写入空列或更新错误
  • SOURCE_FOLDER_ID 必须填文件夹 ID,不能只填 Incoming 文件夹名称
  • 图片分支需要模型实际支持视觉输入,否则只能退回文件名和元数据
  • 内容提取失败不应直接删除文件,应计入 attempts 并留待人工复核
  • 使用 copy 再删除可能改变文件 ID,按要求应使用移动操作保留原 ID
  • 接口密钥应只放 n8n 凭据中,不要写进配置节点或审计表

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Categorize Google Drive files with OpenAI and log results in Google Sheets
原作者
Javed Iqbal
原始发布日期
2026-10-08T05:30:07.747Z
来源
https://n8n.io/workflows/20654