anaksor-ocr
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。
一个把 Google Drive 文件夹载入 Qdrant、并用它回答 ElevenLabs 语音智能体提问的 n8n 工作流。一个 OpenAI 智能体搜索存下的内容,把文字回给智能体去说。
给 ElevenLabs 智能体用的语音 RAG 聊天机器人 是一款 n8n 工作流,属于商务类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。
Webhook 请求
ElevenLabs 智能体向 webhook 路径 test_voice_message_elevenlabs 发出 POST 请求时开始运行,请求里有:
一个 JSON 回复,回答放在名为 output 的字段里,在同一次请求里返回给 ElevenLabs
开始之前要准备好这些。
语言模型和向量嵌入
运行智能体和回答模型,并把每段内容和每个问题变成向量。
需要OpenAI API 密钥
向量数据库
保存你文档的各段内容,并为问题找出最接近的几段。
需要Qdrant 地址和 API 密钥,放在 Qdrant 凭据和 HTTP Header Auth 凭据里
文档来源
列出并下载一个文件夹里的文件,把 Google 文档转成纯文本。
需要Google Drive OAuth2 凭据和一个文件夹 ID
语音智能体
带着来电者的问题把 webhook 当作工具来调用,并把回答说出来。
需要ElevenLabs 账号和一个带 Webhook 工具的智能体
由 Mindket 于 2026年11月13日检查
这个 n8n 工作流让语音智能体用你自己的文档来回答。一部分读取 Google Drive 文件夹里的文件,切成小段,存进 Qdrant 集合。另一部分是一个 webhook。ElevenLabs 智能体把来电者的问题发给它,一个 OpenAI 智能体在 Qdrant 里找出最接近的几段并写出回答。回复以 JSON 返回,由 ElevenLabs 说出来。十八个节点完成全部工作,旁边有五张便签。
希望语音助手用自己的价目表、菜单或制度来回答的企业,以及帮他们搭建的开发者。如果回答绝不能超出文档范围,就别选它,因为没有任何指令要求智能体只用文档里的内容。文档库很大时也别选它,因为文件夹这一步只读取 50 个文件。
| 行业 | 谁在用 | 怎么用 | 例子 |
|---|---|---|---|
| 酒店餐饮 | 餐厅和酒店 | 载入菜单、营业时间和店内规定,让语音智能体回答来电 | 一家咖啡馆载入过敏原清单,来电者问胡萝卜蛋糕里有没有坚果。 |
| 客户支持 | 小型支持团队 | 把帮助文章放进一个文件夹,让智能体回答常见问题 | 一家商店载入退换货政策,智能体用大白话讲给来电者听。 |
| 教育 | 学校办公室 | 为打电话来的家长载入学期日期和校规 | 一位家长问假期什么时候开始,智能体从日历文件里读出日期。 |
| 物业管理 | 楼宇管理人员 | 让租户不用等办公室就能问到住户守则 | 一位租户问停车的事,智能体根据住户守则回答。 |
你需要会一点 n8n,再有几个账号:n8n 里的四个凭据、一个 Qdrant 数据库,以及 ElevenLabs 那边的一个智能体。
任何有 ElevenLabs 能访问到的公网地址的 n8n,再加一个你的 n8n 能调用的 Qdrant 数据库。
点“下载”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 写的设置说明。先把账号准备好,因为加载这一步要同时用到 Google、Qdrant 和 OpenAI。
| 需要 | 说明 |
|---|---|
| n8n | n8n Cloud 或你自己的服务器,要有公网地址 |
| OpenAI | 一个 API 密钥,用于两个聊天模型和向量嵌入 |
| Qdrant | 一个实例的地址和它的 API 密钥 |
| Google Drive | 一个放着你文档的文件夹和一个 OAuth2 凭据 |
| ElevenLabs | 一个账号,里面有能调用 webhook 工具的智能体 |
workflow.json。OpenAI、OpenAI Chat Model、Embeddings OpenAI 和 Embeddings OpenAI1 里选中它。Qdrant Vector Store 和 Qdrant Vector Store1 里选中它。api-key,值是你的 Qdrant 密钥,在 Create collection 和 Refresh collection 里选中它。YOUR_COLLECTION 换成你的集合名称。在两个 HTTP 请求里,还要把 YOUR_QDRANT_URL 换成你的 Qdrant 主机。Get folder 和 Download Files 里选中它,并把 Get folder 里的 YOUR_FOLDER_ID 换成你的文件夹 ID。Listen 的正式地址。在 ElevenLabs 里给你的智能体添加一个 Webhook 工具,方法选 POST,地址填刚才复制的,再加一个名为 question 的请求体参数。和你的 ElevenLabs 智能体说话。它需要事实时就调用工具,把问题放在名为 question 的字段里发过来。工作流用名为 output 的字段回答,智能体把它说出来。文档有变化时再点一次 Test workflow,因为加载只能从那个按钮运行。
| 要改的 | 在哪里改 |
|---|---|
| 文档 | Get folder 里的文件夹 |
| 分段大小 | Token Splitter 里的 300 和 30 |
| 每次回答用几段 | Vector Store Tool 的 Limit,默认是 4 |
| 智能体何时去搜索 | Vector Store Tool 的名称和描述 |
| 回答用的模型 | OpenAI 和 OpenAI Chat Model |
| 对话 | Window Buffer Memory 里的会话键 voice-rag-chat |
一家咖啡馆把菜单、营业时间和一份过敏原清单放进 Drive 文件夹,然后点 Test workflow。
来电者问语音智能体胡萝卜蛋糕里有没有坚果。智能体把问题发过来,OpenAI 智能体在 Qdrant 里找到过敏原那一段,写出回答,由 ElevenLabs 说出来。先拿文档核对最初的几条回答,因为没有任何东西要求智能体只用文档里的内容。
新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。这个工作流有两条线。第一条读取文件,存进 Qdrant,这是一个按含义查找文字的数据库。第二条等着问题来,再在这个数据库里搜索。先载入一份简短的文档,再问它。
专家:智能体调用一个 Vector Store Tool,它包着 Qdrant 检索和第二个聊天模型,Window Buffer Memory 使用同一个固定键。
| 节点 | 做什么 | 要知道的 |
|---|---|---|
Create collection | 发送一个 PUT,创建 1536 维、余弦距离的集合 | 它的 On Error 设置是 Continue,所以已有的集合不会让之后的运行停下 |
Refresh collection | 发送一个带空过滤条件的删除请求 | 本意是在重新加载之前删掉所有数据点 |
Get folder | 列出你文件夹里直接放着的文件 | 最多返回 50 个文件,跳过子文件夹 |
Vector Store Tool | 名为 company,描述是用意大利语写的 | 描述决定智能体何时去搜索,所以要改成你的语言 |
Window Buffer Memory | 在固定键下保留五轮对话 | 每个调用方共用同一段对话 |
有四个服务可能为一次运行计费,而加载这一步会先把集合清空。有一个模型默认值需要留意。
gpt-5-mini。OpenAI 的弃用页面(2026 年 11 月 12 日查阅)把它列为 2026 年 12 月 11 日关停,替代是 gpt-5.6-terra。在那之前请在两个节点里换一个模型。向量嵌入的默认值 text-embedding-3-small 没有列在那里text-embedding-3-small 一致。换另一个嵌入模型要用它自己的维度和一个新集合voice-rag-chat,所以每个调用方共用一段对话。n8n 会在一小时没人用之后丢掉它一个用你自己的文档回答语音智能体提问的 n8n 工作流。一部分把 Google Drive 文件夹里的文件载入 Qdrant 集合。另一部分是 webhook。ElevenLabs 智能体把来电者的问题发给它,一个 OpenAI 智能体在 Qdrant 里查找答案,ElevenLabs 再把返回的内容说出来。
workflow.json:n8n 导出的工作流,18 个节点和五张便签。里面没有任何凭据。README.md:这份设置说明,压缩包里的是英文版。Create collection 原来向 /collections/<name> 发 POST,请求体是 {"filter": {}},那是点过滤条件。Qdrant 创建集合用的是 PUT 加 vectors 设置。这个节点现在发送 PUT,向量维度 1536,距离为 Cosine,它的 On Error 设置是 Continue,所以集合已经存在时,第二次运行不会停下。Window Buffer Memory 原来没有会话设置。它的默认值读取 webhook 调用里没有的 sessionId 字段,所以智能体会停在“No session ID found”。现在它使用固定键 voice-rag-chat。YOUR_QDRANT_URL、YOUR_COLLECTION 和 YOUR_FOLDER_ID。原来的副本把它们写成 QDRANTURL、COLLECTION 和一个带等号的示例文件夹名。workflow.json。OpenAI、OpenAI Chat Model、Embeddings OpenAI 和 Embeddings OpenAI1 里选中它。Qdrant Vector Store 和 Qdrant Vector Store1 里选中它。在这两个节点里,把 YOUR_COLLECTION 换成你的集合名称。api-key,值是你的 Qdrant 密钥。在 Create collection 和 Refresh collection 里选中它。在这两个节点里,把 YOUR_QDRANT_URL 换成你的 Qdrant 主机(如果它用端口,也带上端口),把 YOUR_COLLECTION 换成同一个集合名称。Get folder 和 Download Files 里选中它。在 Get folder 里,把 YOUR_FOLDER_ID 换成你文件夹的 ID,也就是它网址的最后一部分。Listen 的正式地址,它以 test_voice_message_elevenlabs 结尾。question 的请求体参数,字符串类型,由模型根据对话填入它的值。载入文档从 When clicking ‘Test workflow’ 开始:
Create collection 在 Qdrant 里创建集合。Refresh collection 随后发送一个带空过滤条件的删除请求,删掉所有数据点,让每次加载都从空集合开始。Get folder 列出直接放在你文件夹里的文件,最多 50 个。Download Files 逐个下载,并把 Google 文档转成纯文本。Qdrant Vector Store1 把它们存起来。Default Data Loader 读取每个文件的二进制数据,按文件类型选择加载器。Token Splitter 把文字切成 300 个 token 一段,相邻两段重叠 30 个。Embeddings OpenAI1 把每一段变成向量。回答问题从 webhook 开始:
Listen 在路径 test_voice_message_elevenlabs 上接收 POST,并等 Respond to ElevenLabs 来回答。AI Agent 把请求里的 body.question 当作它的消息。OpenAI 是它的聊天模型,Window Buffer Memory 保留最近五轮对话。company 的 Vector Store Tool。Qdrant Vector Store 用 Embeddings OpenAI 处理问题,找出最接近的四段,OpenAI Chat Model 根据它们写出回答。Respond to ElevenLabs 把第一项作为 JSON 发回,{"output": "..."},ElevenLabs 智能体把它说出来。AI Agent 加一条系统消息,并在 ElevenLabs 智能体自己的提示词里告诉它怎么做。Vector Store Tool 的名称和描述。描述是用意大利语写的,所以把你的内容用你文档的语言写在那里。Token Splitter 里的 300 和 30。Vector Store Tool 的 Limit,默认是 4。OpenAI 和 OpenAI Chat Model。文件里没有设置模型,所以 n8n 填入它自己的默认值。Embeddings OpenAI 和 Embeddings OpenAI1。两者保持一致,并把 Create collection 里的向量维度改成与之匹配。gpt-5-mini。OpenAI 的弃用页面(2026 年 11 月 12 日查阅)把它列为 2026 年 12 月 11 日关停,替代是 gpt-5.6-terra。在那之前请在两个节点里选另一个模型。向量嵌入的默认值 text-embedding-3-small 没有列在那个页面上。Refresh collection 期望所有数据点都被删掉,所以加载之后请查看数据点数量。text-embedding-3-small 一致。换一个嵌入模型要用它自己的维度和一个新集合。Get folder 只读取直接放在文件夹里的文件,不读子文件夹。NOTICE.md 664 B README.md 7 KB workflow.json 14 KB
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。
Qwen · 工具包
Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。
ACE-Step · 工具包
用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。
perplexity-ai · 工具包
根据文字和图片为一个决策挑出最合适的选项,比如哪个团队应该处理一条请求,并给出每个选项的概率,适合构建分流和审核工作流的开发者。
numind · 工具包
以文本或图像读取文档,按你要的字段填写 JSON 模板,或把页面转成 Markdown。这是一个 4B 模型,适合处理扫描件、表单和发票的团队。
nace-ai · 工具包
一次推理就对一份文档的是非题、选择题和打分题给出每个选项的概率。这是 Nace.AI 的 8B 决策模型,你可以自己运行,许可证为非商业。