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

InfiniFlow 的开源 RAG 引擎,带智能体功能。你把文档载入数据集,RAGFlow 读出版面、文字和表格,聊天时给出带引用的回答。安装说明覆盖 Docker、源码构建、本地模型、MCP 和 API。
RAGFlow 检索增强生成引擎 是一款 GitHub 上的开源项目,属于开发类,由 Mindket 上架。可免费获取。当前为第 2 版,最近更新于 。按它的 README 从 GitHub 安装。Mindket 的设置说明可在你的 Mindket 账户获取,以 zip 压缩包下载。
sudo sysctl -w vm.max_map_count=262144 git clone https://github.com/infiniflow/ragflow.git cd ragflow/docker
RAGFlow 是 InfiniFlow 做的开源检索增强生成(RAG)引擎。它的 README 说,它把 RAG 和智能体能力结合起来,给大模型提供一个上下文层。你把文件上传到一个数据集里,RAGFlow 把它们切成文本块。聊天时,回答从这些文本块里来,并带上引用。文本块看得见,所以你可以读它们、加关键词、手动修改。回答由你选的模型来写。这个条目讲的是自己运行 RAGFlow。
想要一个自托管的地方,把文档变成可搜索、回答带引用的知识库,又能在 Linux 服务器上运行 Docker 的开发者和团队,适合用它。产品团队可以通过 HTTP API、Python SDK 或 MCP,从自己的应用里调用它。如果你一个月只想问一份 PDF 一次,会觉得它太重。
| 行业 | 谁在用 | 怎么用 | 例子 |
|---|---|---|---|
| 软件和客服 | 开发者和客服工程师 | 载入手册和产品文档,再用带引用的回答来答题 | 一位客服工程师载入产品手册,并打开每个回答背后被引用的文本块。 |
| 法律、金融和运营 | 分析师和后台团队 | 解析 PDF、表格和扫描件,再对照来源检查每个回答 | 一位分析师载入扫描的合同和一份 Excel 表,在每个回答旁边读被引用的文本块。 |
| AI 应用开发 | 开发者 | 从自己的应用里调用检索,或者让 MCP 客户端来调用 | 一位开发者从 MCP 客户端调用 ragflow_retrieval,再把文本块交给自己的模型。 |
| 知识工作 | 研究人员和知识库维护者 | 用知识编译把一个数据集变成 Wiki、思维导图或时间线 | 一个团队把一个数据集编译成思维导图,看文档之间怎么联系。 |
如果你只用 macOS,就别自己部署:Docker 指南说 Go 后端暂时不支持 macOS。README 另外给了 InfiniFlow 的云服务 cloud.ragflow.io。
RAGFlow 运行在你放它的地方,文档写了下面这些途径。
快速入门列出了下面这些支持的格式(不止这些)。数据集配置页还能解析音频(WAV、MP3、AAC、FLAC、OGG,需要 ASR 模型)、邮件(EML、MSG)和 HTML。
| 类型 | 格式 |
|---|---|
| 文档 | PDF, DOC, DOCX, TXT, MD, MDX |
| 表格 | CSV, XLSX, XLS |
| 图片 | JPEG, JPG, PNG, TIF, GIF |
| 幻灯片 | PPT, PPTX |
点“获取”会把一个装有 Mindket 安装说明的 zip 压缩包存进你的下载文件夹,每条途径和模型各有一页。主要途径是在 Linux 主机上用 Docker Compose。
| 需要 | 说明 |
|---|---|
| Linux 主机 | 从 v1.0.0-rc3 起有 x86-64 和 ARM64 的 Docker 镜像。文档说暂时不支持 macOS |
| Docker | Docker 24.0.0 或更新,Docker Compose v2.26.1 或更新,以及 BuildKit |
| 一台机器 | 建议起步配置 4 个 CPU 核心、16 GB 内存和 50 GB 空闲磁盘。README 说实际需求取决于文档引擎、数据量和工作负载 |
| vm.max_map_count | 默认的 Elasticsearch 引擎要求 Docker 主机上至少 262144。README 说用 Infinity 时通常不需要这一步 |
| 模型 | 一个大模型和一个嵌入模型,在线的或本地的。Docker 镜像里没有嵌入模型 |
sudo sysctl -w vm.max_map_count=262144 git clone https://github.com/infiniflow/ragflow.git cd ragflow/docker git checkout v1.0.0-rc3
改完 docker/.env 里的密码之后,启动服务。
docker compose -f docker-compose.yml up -d
docker ps curl -f http://localhost/api/v1/system/healthz
README 和快速入门把 v1.0.0-rc3 写作标签。要部署别的版本,从 Releases 页面取一个标签,并确认 docker/.env 里的 RAGFLOW_IMAGE 用的是对应的镜像标签。健康检查返回 HTTP 200,就说明 RAGFlow 已就绪。用默认的 HTTP 端口 80 时,打开地址不用写端口号。
快速入门按这个顺序带你做四件事。
打开一个已解析的文件,就能读它的文本块。把鼠标悬停在文本块上可以快速查看,双击文本可以加关键词或编辑。在 Retrieval testing 的 Test text 里问一个快速的问题,检查你的配置是否有效。在聊天窗口里,简单的事实性问题选 Naive,需要多步检索的问题选 Agentic。聊天配置页说,Agentic 可能比 Naive 更慢。
你有一个装满产品手册 PDF 的文件夹。你建一个叫 manuals 的数据集,Parse mode 选 General,上传文件时打开 Parse on creation。解析完成后,你打开一个文件,看它是怎么被切成文本块的。在 Chat 里建一个聊天,选 manuals,问一个其中一本手册能回答的问题。回答带着引用,你打开每条引用指向的文本块来核对。你自己的代码也能通过 MCP 问同一批资料。文档里的示例调用是这样的:
curl -sS http://127.0.0.1:9380/api/v1/mcp \
-H 'Authorization: Bearer <RAGFLOW_API_KEY>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"ragflow_retrieval","arguments":{"question":"How do I install Neovim?"}}}'回复里是匹配的文本块,格式为 JSON。密钥在头像菜单的 API 里生成。
新手:RAG 的意思是,模型根据从你自己的文件里找到的段落来回答,而不只是靠训练时学到的东西。找的这一步由 RAGFlow 来做。它把每个文件切成文本块存起来,每次提问就返回最匹配的几块,按语义和共同的词来打分。数据集是一批文档的集合,一个聊天可以用一个或几个数据集。解析任何文件之前,先选好嵌入模型。先用几个文件和 General 解析方式,读过文本块之后再相信回答。
专家:文档描述的是 Go 实现,Docker 指南说从 v1.0.0-rc1 起的发布标签用的就是它。一个二进制文件 ragflow_server 可以作为 API、Admin、Ingestor 或 Syncer 运行,--migrate 会运行数据库迁移然后退出。DeepDoc 的版面分析、OCR 和表格识别在服务器里用 ONNX Runtime 运行,1.0 版本里它们用 CPU 推理。
默认配置用 Elasticsearch 存文档,MySQL 存元数据,MinIO 存文件,Kvrocks 做缓存,NATS JetStream 传消息,还有 ClickHouse。docker/.env 里的 DOC_ENGINE 可以换别的文档引擎,DB_TYPE=oceanbase 可以让元数据用 OceanBase。
检索把向量相似度和词项相似度混在一起。SDK 的默认值是相似度阈值 0.2、向量权重 0.3 和 top_k 1024。走 MCP 时,page 乘以 page_size 必须落在 512 个重排候选的固定窗口之内。数据集里一旦有了文本块,换一个嵌入模型就必须通过检查:向量维度一致,平均余弦相似度至少 0.9。保存新模型不会把旧文本块重新嵌入。
MCP 有两种用法。API 端口 9380 上的 POST /api/v1/mcp 使用每个客户端自己的密钥,提供三个工具:ragflow_retrieval、ragflow_list_datasets 和 ragflow_list_chats。127.0.0.1:9382 上有一个可选的监听器,它可以跑在 host 模式,每个客户端自己认证,也可以跑在 self-host 模式,由一个配置好的密钥服务所有客户端。
RAGFlow 运行在你自己的服务器上,有几个细节最好先读一下。
这个工具包里只有安装说明,由 Mindket 编写。RAGFlow 本身、它的 Docker 镜像和文档来自 InfiniFlow 的仓库:https://github.com/infiniflow/ragflow
这些说明不是 InfiniFlow 做的,也没有得到它的认可。README 把 RAGFlow 描述为一个开源的检索增强生成(RAG)引擎,“that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs.”,意思是:它把前沿的 RAG 和智能体能力结合起来,为大模型建立一个上下文层。文档入口是 https://ragflow.io/docs/dev/
这些说明来自 README 和每个文件里写明的文档页面,没有对照源代码检查过。文档描述的是 RAGFlow 的 Go 实现,Docker 指南说从 v1.0.0-rc1 起的发布标签用的就是它。
Apache-2.0。LICENSE 文件(https://github.com/infiniflow/ragflow/blob/HEAD/LICENSE)是标准的 Apache License 2.0 文本。它的附录里仍然写着“Copyright [yyyy] [name of copyright owner]”,所以这个文件没有写明版权所有者。
RAGFlow 是一个带网页界面、HTTP API 和 Python SDK 的服务器。你可以自己运行它,也可以用 README 链接的 InfiniFlow 云服务 https://cloud.ragflow.io。文档给了下面这些运行和连接它的办法:
v1.0.0-rc3 起有 Linux x86-64 和 ARM64 的 Docker 镜像,Go 后端暂时不支持 macOS。来源见 https://github.com/infiniflow/ragflow/blob/HEAD/docs/quickstart.mdx 和 https://github.com/infiniflow/ragflow/blob/HEAD/docker/README.mdREADME 给了 Docker 这条路的下面几步。请在 Linux 主机上运行。在检出标签和最后一条命令之间,要把默认密码改掉。完整的步骤,包括确认服务已经起来的检查,在 setup/docker-compose.md 里。
默认的 Elasticsearch 文档引擎要求 Docker 主机上的 vm.max_map_count 至少为 262144(README 说用 Infinity 时通常不需要):
sudo sysctl -w vm.max_map_count=262144
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
git checkout v1.0.0-rc3
Docker 指南说,docker/.env 里的 ADMIN_DEFAULT_PASSWORD 在仓库里的值是 admin,Docker 默认把 Admin 端口 9381 发布到主机上。它说,如果别的主机能连到 Admin 服务,首次启动前要换掉这个密码,并把这个端口只开放给受信任的管理员。快速入门说,部署到能从网络访问的主机之前,要改掉默认密码。来源见 https://github.com/infiniflow/ragflow/blob/HEAD/docker/README.md 和 https://github.com/infiniflow/ragflow/blob/HEAD/docs/quickstart.mdx
docker compose -f docker-compose.yml up -d
来源见 https://github.com/infiniflow/ragflow/blob/HEAD/README.md
README 和快速入门把 v1.0.0-rc3 写作标签。快速入门说,要部署别的版本,就用 Releases 页面(https://github.com/infiniflow/ragflow/releases)里的标签替换它,并确认 docker/.env 里的 RAGFLOW_IMAGE 用的是对应的镜像标签。
要部署别的版本,快速入门说要检出另一个发布标签,并让 docker/.env 里的 RAGFLOW_IMAGE 保持对应的镜像标签。这些说明用到的页面没有给出卸载步骤。README 说,保留或删除已有数据要按 Docker 指南来做,但 Docker 指南里没有给出这些步骤。它的 HTTPS 步骤用 docker compose -f docker-compose.yml down 再 docker compose -f docker-compose.yml up -d 来重启服务。
README.md 6 KB setup/build-docker-image.md 3 KB setup/docker-compose.md 6 KB setup/from-source.md 7 KB setup/http-api-and-python-sdk.md 7 KB setup/mcp-server.md 7 KB setup/model-providers.md 6 KB
Updated by Mindket to the current version of this kit.
同一分类里与本产品共有主题最多的已上架 GitHub 项目。
| 产品 | 星标 | 活跃度 | 语言 | 许可证 | 最近更新 |
|---|---|---|---|---|---|
| RAGFlow 检索增强生成引擎 本页 | 93,698 | — | — | Apache-2.0 | — |
| Dify共有 agentic-ai · ai | 160,579 | — | — | — | — |
| CopilotKit 智能体前端技术栈共有 agentic-ai · ai | 38,557 | 活跃 | TypeScript | MIT | |
| Ruflo 智能体协调层共有 agentic-ai · ai-agents | 81,187 | — | — | MIT | — |
| Hermes Agent 自我改进的开源智能体共有 ai · ai-agents | 261,224 | — | — | MIT | — |
| Claude-Mem(thedotmack 出品)共有 ai · ai-agents | 116,866 | 活跃 | TypeScript | Apache-2.0 |
Hacker News、Bluesky、X、Reddit、Facebook 和 YouTube 上提到这个项目的帖子和评论,来自每周一次的搜索和 Trendshift。它们不是 Mindket 写的,也未经核实,点开即可在原帖处阅读。
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。
Qwen · 工具包
Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。
ACE-Step · 工具包
用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。
NousResearch · 工具包
Nous Research 做的开源智能体,可以在终端、桌面应用或聊天软件里使用。它有记忆,会从经验里写出技能,能跑定时任务,用哪家模型提供商由你选。
langgenius · 工具包
LangGenius 的开源大模型应用开发平台:可视化工作流、RAG、模型管理,以及带沙箱的智能体。它的 difyctl 工具和技能让 Claude Code、Codex、Cursor 和其他智能体来构建和运行这些应用。
thedotmack · 工具包
Alex Newman 为 Claude Code 等编程智能体做的记忆插件。它记录智能体在每次会话里做了什么,整理成可搜索的简短笔记,并在新会话开始时载入最近的笔记。