常见问题
关于常规功能、故障排除、用法等问题的解答。
- 常规功能
- 故障排除
- 升级到 v0.26.0 时遇到
Request error 404: undefined - 如何从头开始构建 RAGFlow 镜像?
- 无法访问 https://hugging-face.cn
无法访问模型 (Ollama/xxxxx)MaxRetryError: HTTPSConnectionPool(host='hf-mirror.com', port=443)RuntimeError: Unable to start Tika server.Cannot stat '/etc/nginx/conf.d/ragflow.conf.python': No such file or directoryWARNING: can't find /ragflow/rag/res/borker.tmnetwork anomaly 您的网络存在异常,无法连接到服务器。Realtime synonym is disabled, since no redis connection- 为什么我的文档解析停留在不到 1% 的位置?
- 为什么我的 PDF 解析在快完成时卡住了,且日志没有显示任何错误?
索引失败- 如何查看 RAGFlow 的日志?
- 如何查看 RAGFlow 各组件的状态?
Exception: Can't connect to ES cluster- 无法启动 ES 容器并报错
Elasticsearch did not exit normally {"data":null,"code":100,"message":"<NotFound '404: Not Found'>"}Ollama - Mistral 实例运行在 127.0.0.1:11434,但无法在 RAGFlow 中添加 Ollama 模型- 你们是否提供使用 DeepDoc 解析 PDF 或其他文件的示例?
FileNotFoundError: [Errno 2] No such file or directory
- 升级到 v0.26.0 时遇到
- 用法
- 如何在 RAGFlow 中运行本地部署的大模型 (LLM)?
- 如何添加不支持的 LLM?
- 如何将 RAGFlow 与 Ollama 集成?
- 如何更改文件大小限制?
Error: Range of input length should be [1, 30000]- 如何获取集成第三方应用程序的 API 密钥?
- 如何升级 RAGFlow?
- 如何将文档引擎切换到 Infinity?
- 上传的文件存储在 RAGFlow 镜像的什么位置?
- 如何调整文档解析和嵌入的批处理大小 (batch size)?
- 如何提高聊天助手的问答速度?
- 如何提高 Agent 的问答速度?
- 如何使用 MinerU 解析 PDF 文档?
- 如何配置 MinerU 的特定设置?
- 如何使用 MinerU 结合 vLLM 服务器进行文档解析?
- 如何使用外部 Docling Serve 服务器进行文档解析?
- 如何使用 PaddleOCR 进行文档解析?
- 如何在 RAGFlow 中配合 Ollama 进行本地 LLM 推理?
常规功能
RAGFlow 与其他 RAG 产品有何不同?
尽管 LLM 显著推进了自然语言处理 (NLP) 的发展,但“垃圾进,垃圾出 (garbage in garbage out)”的现状依然存在。与其他检索增强生成 (RAG) 产品相比,RAGFlow 引入了两个独特的功能作为应对。
- 细粒度文档解析:文档解析涉及图像和表格,并允许您根据需要进行人工干预。
- 引用溯源,减少幻觉:您可以信任 RAGFlow 的回答,因为您可以查看支撑这些回答的引文和参考文献。
哪些嵌入模型可以本地部署?
从 v0.22.0 开始,我们只发布精简版 (slim edition),且不再在镜像标签中添加 -slim 后缀。
在哪里查看 RAGFlow 的版本?如何解读版本号?
您可以在 UI 的 系统 (System) 页面上找到 RAGFlow 的版本号。
如果您是从源码构建 RAGFlow,版本号也会显示在系统日志中。
____ ___ ______ ______ __
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
2025-02-18 10:10:43,835 INFO 1445658 RAGFlow version: v0.15.0-50-g6daae7f2
其中
v0.15.0:官方发布的版本号。50:自官方发布以来的 git 提交 (commit) 数量。g6daae7f2:g是前缀,6daae7f2是当前提交 ID 的前七位字符。
为什么不使用其他开源向量数据库作为文档引擎?
目前,只有 Elasticsearch 和 Infinity 能够满足 RAGFlow 的混合搜索需求。大多数开源向量数据库对全文检索的支持有限,且稀疏嵌入 (sparse embedding) 并不是全文检索的替代方案。此外,这些向量数据库缺乏 RAGFlow 必需的关键功能,例如短语搜索和高级重排序能力。
这些局限性促使我们从头开始开发了 AI 原生数据库 Infinity。
cloud.ragflow.io 与本地部署的开源 RAGFlow 服务有什么区别?
cloud.ragflow.io 展示了 RAGFlow 企业版的能力。其 DeepDoc 模型使用专有数据进行了预训练,并提供了更复杂的团队权限控制。本质上,cloud.ragflow.io 是 RAGFlow 即将推出的 SaaS(软件即服务)产品的预览版。
您可以部署开源的 RAGFlow 服务,并通过 Python 客户端或 RESTful API 进行调用。但是,cloud.ragflow.io 不支持这种方式。
为什么 RAGFlow 解析文档比 LangChain 慢?
我们在文档预处理任务(如版面分析、表格结构识别和使用视觉模型的 OCR 光学字符识别)上投入了巨大的精力。这些工作导致了额外的耗时。
为什么 RAGFlow 比其他项目需要更多资源?
RAGFlow 拥有多个用于文档结构解析的内置模型,这是消耗额外计算资源的主要原因。
RAGFlow 支持哪些架构或设备?
我们正式支持 x86 CPU 和 NVIDIA GPU。虽然我们也在 ARM64 平台上测试 RAGFlow,但我们不维护 ARM 版本的 RAGFlow Docker 镜像。如果您在 ARM 平台上,请按照此指南自行构建 RAGFlow Docker 镜像。
你们是否提供用于集成第三方应用程序的 API?
相应的 API 现已推出。有关更多信息,请参阅 RAGFlow HTTP API 参考 或 RAGFlow Python API 参考。
你们支持流式输出吗?
支持。聊天助手和 Agent 默认启用流式输出。请注意,您无法通过 RAGFlow 的 UI 禁用流式输出。如需在响应中禁用流式输出,请使用 RAGFlow 的 Python 或 RESTful API。
Python
RESTful
你们支持通过 URL 分享对话吗?
不支持,该功能暂未提供。
你们支持多轮对话并引用之前的对话作为当前查询的上下文吗?
支持,我们支持根据正在进行的对话上下文来增强用户查询。
- 在 聊天 (Chat) 页面,将鼠标悬停在目标助手上,并选择 编辑 (Edit)。
- 在 聊天配置 (Chat Configuration) 弹窗中,点击 提示引擎 (Prompt engine) 标签页。
- 开启 多轮对话优化 (Multi-turn optimization) 即可启用此功能。
AI 搜索和对话的主要区别是什么?
- AI 搜索:这是一种单轮 AI 对话,使用预定义的检索策略(基于加权关键词相似度和加权向量相似度的混合搜索)以及系统默认的对话模型。它不涉及高级 RAG 策略,如知识图谱、自动关键词或自动提问。检索到的切片将列在聊天模型响应的下方。
- AI 对话:这是一种多轮 AI 对话,您可以自定义检索策略(可以用加权重排序分数代替混合搜索中的加权向量相似度)并选择对话模型。在 AI 对话中,您可以根据具体情况配置高级 RAG 策略,例如知识图谱、自动关键词和自动提问。检索到的切片不会随答案一起显示。
在调试聊天助手时,您可以将 AI 搜索作为参考,以验证您的模型设置和检索策略。
故障排除
升级到 v0.26.0 时遇到 Request error 404: undefined
要解决此问题,请执行以下任一操作:
- 从 main 分支 拉取最新源码,然后拉取并启动 v0.26.0 镜像。
- 在 .env 文件 中将
RAGFLOW_IMAGE从infiniflow/ragflow:latest更改为infiniflow/ragflow:v0.26.0,然后重启服务。
如何从头开始构建 RAGFlow 镜像?
请参阅 构建 RAGFlow Docker 镜像。
无法访问 https://hugging-face.cn
本地部署的 RAGFlow 默认从 Huggingface 网站 下载 OCR 模型。如果您的机器无法访问该网站,会出现以下错误,导致 PDF 解析失败:
FileNotFoundError: [Errno 2] No such file or directory: '/root/.cache/huggingface/hub/models--InfiniFlow--deepdoc/snapshots/be0c1e50eef6047b412d1800aa89aba4d275f997/ocr.res'
要解决此问题,请改用 https://hf-mirror.com:
-
停止所有容器并移除所有相关资源。
cd ragflow/docker/
docker compose down -
取消 ragflow/docker/.env 中以下行的注释:
# HF_ENDPOINT=https://hf-mirror.com -
启动服务器。
docker compose up -d
Fail to access model(Ollama/xxxxx)
由于内存限制或内存溢出 (OOM),Ollama 在首次加载模型时可能会超时或失败。最好先单独测试您的本地模型。如果与其他服务共用硬件,很可能会发生内存耗尽。要解决此问题,请切换到更小的模型或增加 RAM。
MaxRetryError: HTTPSConnectionPool(host='hf-mirror.com', port=443)
此错误表明您无法访问互联网或无法连接到 hf-mirror.com。请尝试以下操作:
-
手动从 huggingface.co/InfiniFlow/deepdoc 下载资源文件到本地文件夹 ~/deepdoc。
-
在 docker-compose.yml 中添加挂载卷 (volumes),例如:
- ~/deepdoc:/ragflow/rag/res/deepdoc
RuntimeError: Unable to start Tika server.
此错误几乎总是由未安装 Java 或环境中无法访问 Java 引起的。详细说明请参阅此处。
Cannot stat '/etc/nginx/conf.d/ragflow.conf.python': No such file or directory
要解决此问题,可以从 GitHub 上的对应标签处下载缺失文件,或者按如下方式更新 ~/ragflow/docker/docker-compose.yml:

WARNING: can't find /ragflow/rag/res/borker.tm
忽略此警告并继续。所有的系统警告都可以忽略。
network anomaly 您的网络存在异常,无法连接到服务器。
除非服务器完全初始化,否则您无法登录 RAGFlow。请运行 docker logs -f docker-ragflow-cpu-1 查看日志。
如果您的系统显示以下内容,则表示服务器已成功初始化:
____ ___ ______ ______ __
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:9380
* Running on http://x.x.x.x:9380
INFO:werkzeug:Press CTRL+C to quit
Realtime synonym is disabled, since no redis connection
忽略此警告并继续。所有的系统警告都可以忽略。
为什么我的文档解析停留在不到 1% 的位置?
点击“解析状态”栏旁边的红色叉号,然后重启解析过程,观察问题是否仍然存在。如果问题依旧且您的 RAGFlow 是本地部署的,请尝试以下操作:
-
检查 RAGFlow 服务器的日志,查看其是否正常运行。
docker logs -f docker-ragflow-cpu-1 -
检查 task_executor.py 进程是否存在。
-
检查您的 RAGFlow 服务器是否可以访问 hf-mirror.com 或 huggingface.co。
为什么我的 PDF 解析在快完成时卡住了,且日志没有显示任何错误?
点击“解析状态”栏旁边的红色叉号,然后重启解析过程,观察问题是否仍然存在。如果问题依旧且您的 RAGFlow 是本地部署的,解析进程很可能是由于 RAM 不足而被杀掉。尝试通过增加 docker/.env 中的 MEM_LIMIT 值来调大内存分配。
确保重启 RAGFlow 服务器以使更改生效!
docker compose stop
docker compose up -d
索引失败
索引失败通常表示 Elasticsearch 服务不可用。
如何查看 RAGFlow 的日志?
tail -f ragflow/docker/ragflow-logs/*.log
如何查看 RAGFlow 各组件的状态?
-
检查 Elasticsearch Docker 容器的状态:
$ docker ps以下是示例结果:
5bc45806b680 infiniflow/ragflow:latest "./entrypoint.sh" 11 hours ago Up 11 hours 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:9380->9380/tcp, :::9380->9380/tcp docker-ragflow-cpu-1
91220e3285dd docker.elastic.co/elasticsearch/elasticsearch:8.11.3 "/bin/tini -- /usr/l…" 11 hours ago Up 11 hours (healthy) 9300/tcp, 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp ragflow-es-01
d8c86f06c56b mysql:5.7.18 "docker-entrypoint.s…" 7 days ago Up 16 seconds (healthy) 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp ragflow-mysql
cd29bcb254bc quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z "/usr/bin/docker-ent…" 2 weeks ago Up 11 hours 0.0.0.0:9001->9001/tcp, :::9001->9001/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp ragflow-minio -
按照此文档检查 Elasticsearch 服务的健康状态。
Docker 容器的状态不一定能反映服务的状态。您可能会发现,即使对应的 Docker 容器正在运行,您的服务也可能处于亚健康状态。可能的原因包括网络故障、端口号错误或 DNS 问题。
Exception: Can't connect to ES cluster
-
检查 Elasticsearch Docker 容器的状态:
$ docker ps健康的 Elasticsearch 组件状态应如下所示:
91220e3285dd docker.elastic.co/elasticsearch/elasticsearch:8.11.3 "/bin/tini -- /usr/l…" 11 hours ago Up 11 hours (healthy) 9300/tcp, 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp ragflow-es-01 -
按照此文档检查 Elasticsearch 服务的健康状态。
重要提示Docker 容器的状态不一定能反映服务的状态。您可能会发现,即使对应的 Docker 容器正在运行,您的服务也可能处于亚健康状态。可能的原因包括网络故障、端口号错误或 DNS 问题。
-
如果您的容器不断重启,请确保根据 此 README 的要求,设置
vm.max_map_count>= 262144。如果您希望更改永久生效,需要更新 /etc/sysctl.conf 中的vm.max_map_count值。请注意,此配置仅适用于 Linux。
无法启动 ES 容器并报错 Elasticsearch did not exit normally
这是因为您忘记更新 /etc/sysctl.conf 中的 vm.max_map_count 值,或者该值的更改在系统重启后被重置了。
{"data":null,"code":100,"message":"<NotFound '404: Not Found'>"}
您的 IP 地址或端口号可能不正确。如果您使用的是默认配置,请在浏览器中输入 http://<YOUR_MACHINE_IP>(不是 9380,且不需要端口号!)。这应该可以正常工作。
Ollama - Mistral 实例运行在 127.0.0.1:11434,但无法在 RAGFlow 中添加 Ollama 模型
正确的 Ollama IP 地址和端口对于在 RAGFlow 中添加 Ollama 模型至关重要:
- 如果您在 cloud.ragflow.io 上操作,请确保托管 Ollama 的服务器具有公网可访问的 IP 地址。请注意,127.0.0.1 并不是公网可访问的 IP 地址。
- 如果您是本地部署 RAGFlow,请确保 Ollama 和 RAGFlow 处于同一个局域网内且可以相互通信。
有关更多信息,请参阅 部署本地大模型 (LLM)。
你们是否提供使用 DeepDoc 解析 PDF 或其他文件的示例?
是的。请查看 rag/app 文件夹下的 Python 文件。
FileNotFoundError: [Errno 2] No such file or directory
-
检查 MinIO Docker 容器的状态。
$ docker ps健康的 Elasticsearch 组件状态应如下所示:
cd29bcb254bc quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z "/usr/bin/docker-ent…" 2 weeks ago Up 11 hours 0.0.0.0:9001->9001/tcp, :::9001->9001/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp ragflow-minio -
按照此文档检查 Elasticsearch 服务的健康状态。
Docker 容器的状态不一定能反映服务的状态。您可能会发现,即使对应的 Docker 容器正在运行,您的服务也可能处于亚健康状态。可能的原因包括网络故障、端口号错误或 DNS 问题。
用法
如何在 RAGFlow 中运行本地部署的大模型 (LLM)?
您可以使用 Ollama 或 Xinference 部署本地大模型。有关更多信息,请参阅此处。
如何添加不支持的 LLM?
如果您的模型目前不被直接支持,但其 API 与 OpenAI 兼容,请在 模型提供商 (Model providers) 页面上点击 OpenAI-API-Compatible 来配置您的模型。
如何将 RAGFlow 与 Ollama 集成?
- 如果 RAGFlow 是本地部署的,请确保您的 RAGFlow 和 Ollama 处于同一局域网内。
- 如果您使用的是我们的在线演示版,请确保您的 Ollama 服务器的 IP 地址是公网可访问的。
有关更多信息,请参阅此处。
如何更改文件大小限制?
对于本地部署的 RAGFlow:单次上传的总文件大小限制为 1GB,批量上传限制为 32 个文件。每个账户的文件总数没有上限。要调整 1GB 的文件大小限制:
- 在 docker/.env 中,取消
# MAX_CONTENT_LENGTH=1073741824的注释,根据需要调整数值,请注意1073741824代表 1GB 的字节数。 - 如果您更新了 docker/.env 中的
MAX_CONTENT_LENGTH值,请确保同时相应地更新 nginx/nginx.conf 中的client_max_body_size。
不建议手动更改 32 个文件的批量上传限制。但是,如果您使用 RAGFlow 的 HTTP API 或 Python SDK 上传文件,32 个文件的限制将自动取消。
Error: Range of input length should be [1, 30000]
出现此错误是因为匹配您搜索条件的切片过多。尝试调小 TopN 并调大 相似度阈值 (Similarity threshold) 来解决此问题:
- 点击页面中上部的 聊天 (Chat)。
- 右键点击目标对话 > 编辑 (Edit) > 提示引擎 (Prompt engine)。
- 减小 TopN 和/或提高 相似度阈值 (Similarity threshold)。
- 点击 确定 (OK) 确认更改。
如何获取集成第三方应用程序的 API 密钥?
请参阅 获取 RAGFlow API 密钥。
如何升级 RAGFlow?
有关更多信息,请参阅 升级 RAGFlow。
如何将文档引擎切换到 Infinity?
要将您的文档引擎从 Elasticsearch 切换到 Infinity:
-
停止所有运行中的容器。
$ docker compose -f docker/docker-compose.yml down -v警告-v将删除所有 Docker 容器卷,现有数据将被清除。 -
在 docker/.env 中,设置
DOC_ENGINE=${DOC_ENGINE:-infinity}。 -
重启您的 Docker 镜像。
$ docker compose -f docker-compose.yml up -d
上传的文件存储在 RAGFlow 镜像的什么位置?
所有上传的文件都存储在 MinIO 中,这是 RAGFlow 的对象存储解决方案。例如,如果您直接将文件上传到数据集,它位于 <knowledgebase_id>/filename。
如何调整文档解析和嵌入的批处理大小 (batch size)?
您可以通过设置环境变量 DOC_BULK_SIZE 和 EMBEDDING_BATCH_SIZE 来控制文档解析和嵌入的批处理大小。增加这些值可以提高大规模数据处理的吞吐量,但也会增加内存消耗。请根据您的硬件资源进行调整。
如何提高我聊天助手的问答速度?
参见此处。
如何提高我 Agent 的问答速度?
参见此处。
如何使用 MinerU 解析 PDF 文档?
从 v0.22.0 版本开始,RAGFlow 将 MinerU (≥ 2.6.3) 作为一个支持多种后端的可选 PDF 解析器。请注意,RAGFlow 仅作为 MinerU 的*远程客户端*,通过调用 MinerU API 来解析 PDF 并读取返回的文件。要使用此功能:
- 准备一个可访问的 MinerU API 服务 (FastAPI 服务器)。
- 在 .env 文件中或通过 UI 中的 模型供应商 页面,将 RAGFlow 配置为 MinerU 的远程客户端:
MINERU_APISERVER: MinerU API 端点 (例如http://mineru-host:8886)。MINERU_BACKEND: MinerU 后端:"pipeline"(默认)"vlm-http-client""vlm-transformers""vlm-vllm-engine""vlm-mlx-engine""vlm-vllm-async-engine""vlm-lmdeploy-engine".
MINERU_SERVER_URL: (可选) 下游 vLLM HTTP 服务器 (例如http://vllm-host:30000)。当MINERU_BACKEND设置为"vlm-http-client"时适用。MINERU_OUTPUT_DIR: (可选) 摄入前用于保存 MinerU API 服务输出 (zip/JSON) 的本地目录。MINERU_DELETE_OUTPUT: 使用临时目录时是否删除临时输出:1: 删除。0: 保留。
- 在 Web UI 中,导航至数据集的 配置 页面,找到 数据摄入流水线 部分:
- 如果您决定使用 内置 下拉列表中的分块方法,请确保其支持 PDF 解析,然后在 PDF 解析器 下拉列表中选择 MinerU。
- 如果您使用自定义数据摄入流水线,请在 解析器 组件的 PDF 解析器 部分中选择 MinerU。
所有 MinerU 环境变量都是可选的。设置后,这些值将用于在首次使用时为租户自动配置 MinerU OCR 模型。要避免自动配置,请跳过环境变量设置,仅通过 UI 的 模型供应商 页面配置 MinerU。
第三方视觉模型被标记为 实验性,因为我们尚未针对上述数据提取任务对这些模型进行充分测试。
如何配置 MinerU 的特定设置?
下表总结了远程 MinerU 最常用的 MinerU 环境变量:
| 环境变量 | 描述 | 默认值 | 示例 |
|---|---|---|---|
MINERU_APISERVER | MinerU API 服务的 URL | 未设置 | MINERU_APISERVER=http://your-mineru-server:8886 |
MINERU_BACKEND | MinerU 解析后端 | pipeline | MINERU_BACKEND=pipeline|vlm-transformers|vlm-vllm-engine|vlm-mlx-engine|vlm-vllm-async-engine|vlm-http-client |
MINERU_SERVER_URL | 远程 vLLM 服务器的 URL(适用于 vlm-http-client) | 未设置 | MINERU_SERVER_URL=http://your-vllm-server-ip:30000 |
MINERU_OUTPUT_DIR | MinerU 输出文件的目录 | 系统定义的临时目录 | MINERU_OUTPUT_DIR=/home/ragflow/mineru/output |
MINERU_DELETE_OUTPUT | 当使用临时目录时,是否删除 MinerU 输出目录 | 1(删除临时输出) | MINERU_DELETE_OUTPUT=0 |
- 设置
MINERU_APISERVER以将 RAGFlow 指向您的 MinerU API 服务器。 - 设置
MINERU_BACKEND以指定解析后端。 - 如果使用
"vlm-http-client"后端,请将MINERU_SERVER_URL设置为您的 vLLM 服务器 URL。MinerU API 要求在请求体中包含backend=vlm-http-client和server_url=http://<server>:30000。 - 设置
MINERU_OUTPUT_DIR以指定 RAGFlow 存储 MinerU API 输出的位置;否则将使用系统临时目录。 - 将
MINERU_DELETE_OUTPUT设置为0以保留 MinerU 的临时输出(对调试很有用)。
有关 MinerU 原生支持的其他环境变量信息,请参见此处。
如何配合 vLLM 服务器使用 MinerU 进行文档解析?
RAGFlow 支持 MinerU 的 vlm-http-client 后端,使您能够在通过 HTTP 调用 MinerU 的同时,将文档解析任务委托给远程 vLLM 服务器。配置步骤如下:
- 确保 MinerU API 服务可访问(例如
http://mineru-host:8886)。 - 设置或指向一个 vLLM HTTP 服务器(例如
http://vllm-host:30000)。 - 在您的 docker/.env 文件中(或如果您从源码运行,则在 shell 中)进行以下配置:
MINERU_APISERVER=http://mineru-host:8886MINERU_BACKEND="vlm-http-client"MINERU_SERVER_URL="http://vllm-host:30000"MinerU API 调用要求在请求体中包含backend=vlm-http-client和server_url=http://<server>:30000。
- 根据需要配置
MINERU_OUTPUT_DIR/MINERU_DELETE_OUTPUT,以便在摄取前管理返回的 zip/JSON 文件。
使用 vlm-http-client 后端时,RAGFlow 服务器不需要 GPU,仅需网络连接。这使得多个 RAGFlow 实例共享一个远程 vLLM 服务器的成本效益型分布式部署成为可能。
如何使用外部 Docling Serve 服务器进行文档解析?
RAGFlow 支持两种 Docling 模式:
- 本地 Docling(现有模式):在 RAGFlow 运行时中安装 Docling (
USE_DOCLING=true) 并在进程内解析。 - 外部 Docling Serve(远程模式):将 RAGFlow 指向 Docling Serve 端点。
要启用远程模式,请设置:
DOCLING_SERVER_URL=http://your-docling-serve-host:5001
行为
- 当设置了
DOCLING_SERVER_URL时,RAGFlow 使用/v1/convert/source将 PDF 发送到 Docling Serve(对于旧版服务器则回退到/v1alpha/convert/source)。 - 当未设置
DOCLING_SERVER_URL时,RAGFlow 使用本地进程内 Docling。
如何使用 PaddleOCR 进行文档解析?
从 v0.24.0 版本开始,RAGFlow 将 PaddleOCR 作为一个可选的 PDF 解析器。请注意,RAGFlow 仅作为 PaddleOCR 的*远程客户端*,通过调用 PaddleOCR API 来解析 PDF 并读取返回的文件。
在 RAGFlow 中配置和使用 PaddleOCR 主要有两种方式:
1. 使用 PaddleOCR 官方 API
此方法使用带有访问令牌的 PaddleOCR 官方 API 服务。
步骤 1:配置 RAGFlow
-
通过环境变量
# In your docker/.env file:
PADDLEOCR_API_URL=https://your-paddleocr-api-endpoint
PADDLEOCR_ALGORITHM=PaddleOCR-VL
PADDLEOCR_ACCESS_TOKEN=your-access-token-here -
通过界面 (UI)
- 导航至模型供应商页面
- 添加一个新的 OCR 模型,厂商类型选择 "PaddleOCR"
- 配置以下字段:
- PaddleOCR API URL:您的 PaddleOCR API 端点
- PaddleOCR 算法:选择与 API 端点对应的算法
- AI Studio 访问令牌:您的 PaddleOCR API 访问令牌
步骤 2:在数据集配置中使用
- 在数据集的配置页面,找到解析方法部分
- 如果使用支持 PDF 解析的内置切片方法,在 PDF 解析器下拉菜单中选择 PaddleOCR
- 如果使用自定义解析流水线,在 Parser 组件中选择 PaddleOCR
注意事项
- 要获取 API URL,请访问 PaddleOCR 官方网站,点击 API 按钮,为您想要使用的特定算法(例如 PaddleOCR-VL)选择示例代码,并复制
API_URL。 - 访问令牌可以从 AI Studio 平台 获取。
- 此方法需要互联网连接以访问官方 PaddleOCR API。
2. 使用自托管 PaddleOCR 服务
此方法允许您部署自己的 PaddleOCR 服务,且无需访问令牌即可使用。
步骤 1:部署 PaddleOCR 服务。按照 PaddleOCR 服务化部署文档 部署您自己的服务。对于布局解析,您可以使用如下端点:
https://:8080/layout-parsing
步骤 2:配置 RAGFlow
-
通过环境变量
PADDLEOCR_API_URL=https://:8080/layout-parsing
PADDLEOCR_ALGORITHM=PaddleOCR-VL
# No access token required for self-hosted service -
通过界面 (UI)
- 导航至模型供应商页面
- 添加一个新的 OCR 模型,厂商类型选择 "PaddleOCR"
- 配置以下字段:
- PaddleOCR API URL:您部署服务的端点
- PaddleOCR 算法:选择与所部署服务对应的算法
- AI Studio 访问令牌:留空
步骤 3:在数据集配置中使用
- 在数据集的配置页面,找到解析方法部分
- 如果使用支持 PDF 解析的内置切片方法,在 PDF 解析器下拉菜单中选择 PaddleOCR
- 如果使用自定义解析流水线,在 Parser 组件中选择 PaddleOCR
环境变量摘要
| 环境变量 | 描述 | 默认值 | 是否必填 |
|---|---|---|---|
PADDLEOCR_API_URL | PaddleOCR API 端点 URL | "" | 是(当使用环境变量时) |
PADDLEOCR_ALGORITHM | 用于解析的算法 | "PaddleOCR-VL" | 否 |
PADDLEOCR_ACCESS_TOKEN | 官方 API 的访问令牌 | 无 | 仅在使用官方 API 时 |
环境变量可用于自动配置,但如果通过 UI 配置则不是必须的。设置环境变量后,这些值将在首次使用时用于为租户自动配置 PaddleOCR 模型。
如何在 RAGFlow 中使用 Ollama 进行本地 LLM 推理?
RAGFlow 支持将 Ollama 作为本地模型供应商,用于私有、离线推理。
步骤 1:启动 Ollama 并拉取模型
export OLLAMA_HOST=0.0.0.0
ollama serve
ollama pull llama3
步骤 2:在 RAGFlow 中添加 Ollama
- 前往设置 > 模型供应商 > Ollama。
- 将基础 URL 设置为
http://host.docker.internal:11434(Docker) 或https://:11434(裸机)。 - 输入模型名称(例如
llama3)并点击保存。
步骤 3:在您的助手中使用 Ollama
- 打开助手的配置页面,在聊天模型下选择 Ollama 模型。