ChatGPT创意写作AI 评分 · 待评分AI 辅助编辑·未发现明显提示词注入风险n8n.io

用 n8n + OpenAI + Slack 将笔记转为 RAG 抽认卡

输入学习笔记 → 分块嵌入检索 → LLM 生成问答卡片 → 人工审核后发送至 Slack

经验丰富步骤流程提示词
给谁
需要把大量学习笔记快速整理成可复习抽认卡的学习者或知识工作者
你会得到
笔记经分块、向量检索、LLM 生成后,输出带 SM-2 间隔重复参数的审核后抽认卡组
你需要
n8n · slack

硬约束

前置条件:可访问的 n8n 实例;OpenAI API 密钥(嵌入与聊天模型);Slack app/bot token(需 chat:write 权限)。费用取决于 OpenAI API 调用量与 n8n 托管方式。模板默认配置:chunkSizeChars=800, chunkOverlapChars=120, retrievalTopK=6, similarityThreshold=0.15, flashcardCount=10, embeddingModel=text-embedding-3-small, chatModel=gpt-4.1-mini。支持 webhook 触发或手动测试运行。

他们做了什么

oneclick-ai 在 n8n 官方模板库发布了一个工作流模板,将原始学习笔记通过自研的段落/句子感知分块、OpenAI 批量嵌入、手写的余弦相似度+MMR 检索、OpenAI 聊天模型生成、JSON 解析验证与 Jaccard 去重、SM-2 间隔重复初始化,最终经两次人工审核暂停后发送至 Slack。

效果如何

作者报告(template description)称该工作流可将提交的笔记转为经审核的抽认卡组。模板提供完整的节点配置与连接关系,支持 webhook 或手动触发,并允许替换为 Anki/Notion/CSV 导出。

值得知道

1) 模板默认使用 gpt-4.1-mini,但节点参数中 __rl 模式支持切换其他模型;2) 所有高级检索逻辑均在 n8n Code 节点内手写实现,不依赖外部向量数据库;3) 两次 Wait 节点造成的人工审核暂停是设计必要环节,无法全自动运行;4) 来源未提供该模板在实际学习场景中的准确率或用户满意度数据;5) Slack 可替换为 AnkiConnect、Notion 或 CSV 导出,但需自行修改末节点。

n8n 工作流模板

结构已检查 · 未实际运行

下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。

配置与测试清单

需要绑定的凭证

  • HTTP Request - Get Embeddings 节点:绑定OpenAI API 凭证。
  • OpenAI Chat Model 节点:绑定OpenAI API 凭证。
  • Slack - Send Flashcard Deck 节点:绑定Slack API 凭证。

需要替换的配置

  • 源模板来自 n8n 公开库 #18210(约 20 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
  • Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。

测试输入与预期结果

  • 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
  • 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。

模板处理说明

  • 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
  • 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。

模板获取日期: 2026-10-24

步骤

  1. 配置凭证与基础参数

    在 n8n 中添加 OpenAI 凭证(用于嵌入与聊天补全)和 Slack API 凭证(需 chat:write 权限)。打开 Set - Config 节点,确认 embeddingApiUrl、embeddingModel、chunkSizeChars、chunkOverlapChars、retrievalTopK、similarityThreshold、flashcardCount、defaultTopic、notifyChannel 等字段符合需求。若使用 Webhook 触发,复制 webhook URL 并配置外部系统向该地址 POST 包含 notesText 的数据。

  2. 触发、分块并等待主题输入

    通过 Webhook - Notes Submitted 接收笔记,或使用 Manual Trigger - Test Run 手动测试。JS - Chunk Notes & Prepare Embedding Requests 节点将笔记按段落/句子递归分块,保留重叠窗口与 Markdown 标题元数据,输出 chunks 数组。随后 Wait - For Topic/Scope Selection 暂停执行,等待你输入想生成抽认卡的主题或范围。

  3. 批量嵌入、MMR 检索与卡片生成

    HTTP Request - Get Embeddings 节点向 OpenAI 发送单次批量请求,获取主题查询与所有分块的嵌入向量。JS - Vector Similarity Search & Context Assembly 计算余弦相似度,过滤阈值后运行 Maximal Marginal Relevance(MMR)循环,选出相关且不冗余的 top-K 分块并拼接为检索上下文。AI - Generate Flashcards from Context 节点调用 OpenAI 聊天模型,基于检索上下文生成 JSON 格式的问答卡片。

    运行提示词 · 来源原文。AI - Generate Flashcards from Context 节点的 text 参数(n8n LLM Chain 节点提示词字段)

    =You are a study-flashcard writer. Using ONLY the retrieved context below (do not invent facts not present in it), write {{ $('JS - Vector Similarity Search & Context Assembly').item.json.flashcardCount }} high-quality flashcards on the topic: "{{ $('JS - Vector Similarity Search & Context Assembly').item.json.topic }}".
    
    Retrieved context:
    {{ $('JS - Vector Similarity Search & Context Assembly').item.json.retrievedContext }}
    
    Each card should test one clear, specific fact or concept (avoid vague or compound questions). Vary difficulty across the deck. Return ONLY a JSON array (no markdown fences, no commentary), each element an object with keys: question, answer, tags (array of short keyword strings), difficulty ('easy'|'medium'|'hard'), sourceHeading (the heading of the source passage it came from, or null).
  4. 验证、人工审核与导出

    JS - Parse, Validate, Dedupe & Assign SM-2 Scheduling 节点安全解析 LLM 返回的 JSON,丢弃缺少 question/answer 的卡片,用 Jaccard 相似度去重,并为每张卡片初始化 SM-2 间隔重复参数(easinessFactor=2.5, intervalDays=0, repetitions=0, nextReviewDate=今天)。Wait - For Flashcard Review & Edits 暂停供人工审核编辑;IF - Review Approved 判断是否通过。通过后进入 Wait - For Export Confirmation 再次确认,IF - Export Approved 为真时由 Slack - Send Flashcard Deck 发送卡片组到指定频道,否则标记为 discarded。

    运行提示词 · 来源原文。Slack - Send Flashcard Deck 节点的 text 参数(Slack 消息内容字段)

    =🗂️ *Flashcard Deck: {{ $json.topic }}*
    
    *Cards:* {{ $json.flashcardCount }} (deduped {{ $json.duplicatesRemoved }}, dropped {{ $json.invalidCardsDropped }} invalid)
    
    {{ $json.flashcards.map((c, i) => (i+1) + '. Q: ' + c.question + '\n   A: ' + c.answer + '  [' + c.difficulty + ']').join('\n\n') }}

可复制提示词

搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限

这一段是提示词,页面不会在这里插入广告。

你是一个 n8n 工作流搭建助手。用户想要复现「笔记 → RAG 抽认卡 → Slack」模板。请先确认用户已具备:1) n8n 实例访问权限;2) OpenAI API 密钥;3) Slack bot token(chat:write)。然后引导用户从 n8n.io/workflows/18210 导入模板,检查 Set - Config 中的默认值,按步骤配置凭证,并建议先用 Manual Trigger 测试完整流程。

搭建前请确认 OpenAI 与 Slack 凭证已就绪;建议首次运行使用 Manual Trigger 并检查每个 Code 节点的输出。

来源

Generate RAG-based study flashcards from notes with OpenAI and Slack · oneclick-ai · n8n.io · 2026-08-13

留言与反馈

试过这个方法吗?分享效果、遇到的问题或改进建议。留言审核后公开,请勿填写敏感信息。

正在加载…

    相关用例