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

一个 n8n 工作流,监视一个文件夹,把里面的文本文件存进 Qdrant 向量库,文件变化时自动新增、替换和清除。再用聊天窗口通过 Mistral 回答关于这些文件的问题。
用 Qdrant 和 Mistral 对本地文件问答 是一款 n8n 工作流,属于效率类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。
文件夹事件
被监视的文件夹里有文件新增、修改或删除时开始运行,带有:
一个跟着文件夹变化的 Qdrant 集合,以及从已存段落得出的聊天回答
开始之前要准备好这些。
嵌入和聊天模型
把每个文件的文字做嵌入以便存储,把每个问题做嵌入以便检索,再根据匹配的段落写出回答。
需要Mistral API 密钥
向量数据库
连同文件路径一起存嵌入后的段落,按路径找到它们以便更新或清除,并返回和问题最匹配的内容。
需要一台 n8n 能访问的 Qdrant 服务器,需要时还要它的 API 密钥
由 Mindket 于 2026年11月13日检查
这个 n8n 工作流把一个文本文件夹变成可以提问的资料库。Local File Trigger 监视这个文件夹。新文件会被读入,用 Mistral 做嵌入,存进 Qdrant 向量库。修改过的文件,先删掉旧的片段,再重新存一遍。删除的文件,对应的片段会被清掉。随后聊天窗口接收问题,从 Qdrant 取回匹配的段落,让 Mistral 模型据此写出回答。原来的说明用银行对账单作例子。二十三个节点完成这些事,旁边还有六张便签。
把笔记、报告或对账单存成文本文件、在自己的服务器上运行 n8n、旁边有一个 Qdrant 向量库的人。n8n Cloud 上没有这个文件夹触发器,所以别在那里选它;PDF 或图片也别选,这个版本把文件当文本来读。
| 行业 | 谁在用 | 怎么用 | 例子 |
|---|---|---|---|
| 金融 | 小企业主 | 对存成文本的对账单和发票提问 | 企业主问哪个月的刷卡付款最多,答案来自保存下来的文件。 |
| 调研 | 分析师 | 让一个笔记文件夹可以按问题检索 | 分析师把一份新笔记放进文件夹,一分钟后就能对它提问。 |
| 法务 | 律师助理 | 查询从合同导出的一批文本 | 律师助理问哪些文件提到了续约日期。 |
| 运维 | IT 团队 | 给团队一个对共享文档的聊天窗口,文档以文本保存 | IT 负责人更新了一份运行手册,聊天就从新版本里作答。 |
You need some n8n and some server skill: 要会导入文件、添加两个凭据、打开一个默认关闭的节点,并让它指向一个文件夹。Qdrant 要先运行起来。工作流自带的便签没有给出设置时长。
只有自己托管的 n8n 能运行它,因为 n8n Cloud 上没有 Local File Trigger。
点“下载”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 写的设置说明。两个账号加两项设置就够完成所有步骤。
| 需要 | 说明 |
|---|---|
| n8n | 自己托管的 n8n,已允许 Local File Trigger,文件夹也能读取 |
| Mistral | 一个用于嵌入和聊天的 API 密钥 |
| Qdrant | 一台 n8n 能访问的服务器,需要时还要它的 API 密钥 |
| 文件 | 一个放纯文本文件的文件夹 |
NODES_EXCLUDE 里去掉。N8N_RESTRICT_FILE_ACCESS_TO,让 n8n 能读它。用 Docker 的话,在 /home/node/host_mount/local_file_search 挂载一个文件夹,或者改 Local File Trigger 里的路径。workflow.json。Embeddings Mistral Cloud、Embeddings Mistral Cloud1 和 Mistral Cloud Chat Model 里选中它。http://qdrant:6333。在文件夹里新增、修改或删除文本文件,资料库就会跟着变。用平常的话向聊天窗口提问,它会从找到的段落里作答。它会搜索集合里的每一个文件,也不会记住之前的问题。
| 要改的 | 在哪里改 |
|---|---|
| 文件夹和事件 | Local File Trigger |
| 集合名 | Set Variables 里的 qdrant_collection,以及 Qdrant Vector Store1 的集合 |
| 文件怎么切分 | Recursive Character Text Splitter |
| 聊天读多少段落 | Vector Store Retriever |
| 聊天模型 | Mistral Cloud Chat Model |
你把一个记录刷卡付款的文本文件复制进文件夹。工作流把它读入,做嵌入,存进 Qdrant。
你打开聊天,问哪一笔付款最大。聊天取回匹配的段落,Mistral 据此写出回答。之后你保存了一份改正过的文件,旧的片段会在新的存入之前被删掉。
新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。这个工作流有两个彼此独立的起点。文件夹触发器让资料库保持最新,聊天窗口则从资料库里回答问题。先用一个小文件试第一个,再多加文件。
专家:同步通过 HTTP 节点调用 Qdrant 的 REST API,用文件路径作过滤条件。
| 节点 | 做什么 | 要知道的 |
|---|---|---|
Local File Trigger | 监视文件夹里的新增、修改和删除事件 | 只有自己托管的 n8n 才有,从 n8n 2.0 起默认关闭 |
Handle File Event | 把每个事件分到删除、修改或新增分支 | 手动运行不带事件,所以什么也不会分出去 |
Search For Existing Point1 | 在 Qdrant 里滚动查找 metadata.filter_by_filename 等于文件路径的点 | 这个版本请求 1000 个点,而不是一个 |
Prepare Embedding Document | 用位置、时间和文件内容拼成一段文字 | 从内存中的二进制数据里把文件按文本解码 |
Qdrant Vector Store | 把文字做嵌入并存起来 | 集合不存在时会创建它 |
模型换过了,修了四处细节,而且这套设置的活动部件比大多数都多。
mistral-small-2402 已于 2025 年 6 月 16 日停用。Mindket 的版本调用 mistral-small-2603,这是 Mistral 文档里 Mistral Small 4 的 API 名称,2026 年 11 月 12 日查阅BankStatements,而文件存进 local_file_search。现在两边都用 local_file_search一个 n8n 工作流,监视 n8n 所在机器上的一个文件夹。它把文件夹里的文本文件存在 Qdrant 向量库里:新文件加进去,修改过的替换掉,删除的清掉。然后一个聊天窗口用 Mistral 模型读取匹配的段落,回答关于这些文件的问题。原来的说明用银行对账单作例子。
workflow.json:n8n 导出的工作流,二十三个节点和六张便签。里面没有任何凭据。README.md:这份设置说明,压缩包里的是英文版。mistral-small-2402,Mistral 已于 2025 年 6 月 16 日停用它。这个副本调用 mistral-small-2603,这是 Mistral 文档里 Mistral Small 4 的 API 名称,2026 年 11 月 12 日查阅。BankStatements 的集合,而文件存进的是 local_file_search。Qdrant Vector Store1 现在读 local_file_search,聊天就能找到文件夹分支存进去的内容。Prepare Embedding Document 原来用 $json.directory 拼每个文件的位置,而 Read File 节点并不返回这个字段。现在改成从文件的二进制数据里读目录和文件名,这样存下的位置就和触发器报告的路径一致。Search For Existing Point 在删除文件的分支上查的是 file_changed,现在改成查 file_deleted。limit 1 只请求一个点,所以一个文件只有一个片段被清掉。现在上限是 1000。NODES_EXCLUDE 里去掉。N8N_RESTRICT_FILE_ACCESS_TO 默认是 ~/.n8n-files,所以要把你的文件夹加进去。用 Docker 的话,在 /home/node/host_mount/local_file_search(也就是 Local File Trigger 里的路径)挂载一个文件夹,或者改这个路径。workflow.json:新建一个工作流,打开它的菜单,选 Import from File。Embeddings Mistral Cloud、Embeddings Mistral Cloud1 和 Mistral Cloud Chat Model 里选中它。Qdrant Vector Store、Qdrant Vector Store1 和四个 Qdrant HTTP 节点里选中它。HTTP 节点里还写着地址 http://qdrant:6333。你的 Qdrant 在别处的话,把它改掉。Local File Trigger 在每个文件被新增、修改或删除、写入完成之后触发。Set Variables 把事件变成 file_added、file_changed 或 file_deleted 之一,带上文件路径,并把集合命名为 local_file_search。Handle File Event 把这一条分到三个输出之一。Read File 读入文件,Prepare Embedding Document 用文件位置、处理时间和内容拼成一段文字。Qdrant Vector Store 用 Mistral 做嵌入并存起来。Default Data Loader 把文件路径作为 filter_by_filename 附上,Recursive Character Text Splitter 把文字切成块。集合不存在时,Qdrant 会创建它。Search For Existing Point1 向 Qdrant 查 filter_by_filename 等于这个路径的点。Has Existing Point?1 检查有没有,Delete Existing Point 把它们删掉。Remap for File_Added Flow 再把路径送上新增的路线,文件就重新存了一遍。Search For Existing Point 找到这个路径对应的点,Has Existing Point? 检查它们,Delete Existing Point1 把它们删掉。这两个删除节点在原来的命名里,编号是互相错开的。Chat Trigger 把问题交给 Question and Answer Chain。Vector Store Retriever 从 Qdrant Vector Store1 取回匹配的块,Mistral Cloud Chat Model 据此写出回答。Local File Trigger。Set Variables 里的 qdrant_collection,以及 Qdrant Vector Store1 的集合。两处要保持一致。Recursive Character Text Splitter,它自己的默认值是 1000 个字符、不重叠。Vector Store Retriever,默认取 4 个。Mistral Cloud Chat Model。Prepare Embedding Document 从 n8n 内存中的二进制数据(默认模式)里把文件按文本解码。PDF 和图片读出来是乱码,而文件系统或 S3 的二进制模式只会给节点一个引用,不是内容。Set Variables,所以点 Test workflow 没有什么用。Set Variables 还设了一个 directory,没有任何节点读它。file created 那一行写的是工作流处理文件的时间,不是文件创建的时间。NOTICE.md 682 B README.md 6 KB workflow.json 24 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 · 工具包
把来自多个国家的公开电视直播频道整理成播放列表,任何支持直播流的视频播放器都能打开。适合想看直播的观众,也适合需要频道数据的开发者。