Skip to main content
Version: DEV

常见问题

关于一般功能、故障排除、使用等方面的查询。


通用特性


RAGFlow与其他RAG产品有何不同?

尽管大型语言模型(LLMs)显著推进了自然语言处理(NLP)的发展,但“垃圾进垃圾出”的现状依然未变。为此,RAGFlow相比其他检索增强生成(RAG)产品引入了两个独特的功能。

  • 细粒度文档解析:文档解析涉及图像和表格,您可以根据需要灵活干预。
  • 可追踪的答案,减少幻觉:您可以信任RAGFlow的响应,因为您可以查看支持它们的引用和参考文献。

为什么RAGFlow解析文档比LangChain花费的时间更长?

我们在文档预处理任务上投入了大量精力,如使用我们的视觉模型进行布局分析、表格结构识别和OCR(光学字符识别)。这导致了所需时间的增加。


为什么RAGFlow比其他项目需要更多的资源?

RAGFlow 有许多内置模型用于文档结构解析,这些模型占用了额外的计算资源。


RAGFlow支持哪些架构或设备?

我们正式支持x86 CPU和nvidia GPU。虽然我们也在ARM64平台上测试了RAGFlow,但我们不计划维护ARM的RAGFlow Docker镜像。


哪些嵌入模型可以本地部署?

RAGFlow 提供两个 Docker 镜像版本,v0.15.1-slimv0.15.1

  • infiniflow/ragflow:v0.15.1-slim (默认): 不包含嵌入模型的RAGFlow Docker镜像。
  • infiniflow/ragflow:v0.15.1: 包含嵌入模型的RAGFlow Docker镜像:
    • 内置嵌入模型:
      • BAAI/bge-large-zh-v1.5
      • BAAI/bge-reranker-v2-m3
      • maidalun1020/bce-embedding-base_v1
      • maidalun1020/bce-reranker-base_v1
    • 在RAGFlow UI中选择后才会下载的嵌入模型:
      • BAAI/bge-base-en-v1.5
      • BAAI/bge-large-en-v1.5
      • BAAI/bge-small-en-v1.5
      • BAAI/bge-small-zh-v1.5
      • jinaai/jina-embeddings-v2-base-en
      • jinaai/jina-embeddings-v2-small-en
      • nomic-ai/nomic-embed-text-v1.5
      • sentence-transformers/all-MiniLM-L6-v2

你们是否提供用于与第三方应用程序集成的API?

相应的API现已可用。更多信息请参见RAGFlow HTTP API参考RAGFlow Python API参考


是否支持流输出?

是的,我们做。


是否可以通过URL分享对话?

不,此功能不受支持。


是否支持多轮对话,将之前的对话作为当前查询的上下文?

是的,我们支持根据正在进行的对话的现有上下文增强用户查询:

  1. 聊天页面,将鼠标悬停在所需的助手上方并选择编辑
  2. 聊天配置弹出窗口中,点击提示引擎标签。
  3. 打开多轮优化以启用此功能。

故障排除


Docker镜像的问题


如何从头开始构建RAGFlow镜像?

参见构建RAGFlow Docker镜像


huggingface模型的问题


无法访问 https://huggingface.co

本地部署的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 代替:

  1. 停止所有容器并移除所有相关资源:

    cd ragflow/docker/
    docker compose down
  2. 取消注释ragflow/docker/.env中的以下行:

    # HF_ENDPOINT=https://hf-mirror.com
  3. 启动服务器:

    docker compose up -d 

MaxRetryError: HTTPSConnectionPool(host='hf-mirror.com', port=443)

此错误表明您无法访问互联网或无法连接到hf-mirror.com。请尝试以下操作:

  1. 手动从huggingface.co/InfiniFlow/deepdoc下载资源文件到本地文件夹~/deepdoc

  2. 添加卷到docker-compose.yml,例如:

    - ~/deepdoc:/ragflow/rag/res/deepdoc

RAGFlow服务器的问题


WARNING: 无法找到 /raglof/rag/res/borker.tm

忽略此警告并继续。所有系统警告都可以忽略。


network anomaly 您的网络存在异常,无法连接到服务器。

anomaly

除非服务器完全初始化,否则您将无法登录到RAGFlow。运行docker logs -f ragflow-server

服务器已成功初始化,如果您的系统显示以下内容:

     ____   ___    ______ ______ __               
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/

* 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

RAGFlow后端服务的问题


实时同义词功能已禁用,因为没有redis连接

忽略此警告并继续。所有系统警告都可以忽略。


为什么我的文档解析停滞在不到百分之一?

stall

点击“解析状态”栏旁边的红色十字,然后重新启动解析过程,看看问题是否仍然存在。如果问题仍然存在并且您的RAGFlow是本地部署的,请尝试以下操作:

  1. 检查您的RAGFlow服务器的日志,看看它是否正常运行:

    docker logs -f ragflow-server
  2. 检查task_executor.py进程是否存在。

  3. 检查您的RAGFlow服务器是否可以访问hf-mirror.com或huggingface.com。


为什么我的pdf解析在接近完成时停滞,而日志没有显示任何错误?

点击“解析状态”栏旁边的红色叉号,然后重新启动解析过程,看看问题是否仍然存在。如果问题仍然存在并且您的RAGFlow是本地部署的,解析过程很可能由于内存不足而被终止。尝试通过在docker/.env中增加MEM_LIMIT值来增加内存分配。

note

请确保重新启动您的RAGFlow服务器以使更改生效!

docker compose stop
docker compose up -d

nearcompletion


Index failure

索引失败通常表示Elasticsearch服务不可用。


如何检查RAGFlow的日志?

tail -f ragflow/docker/ragflow-logs/*.log

如何检查RAGFlow中每个组件的状态?

  1. 检查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   ragflow-server
    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
  2. 按照此文档检查Elasticsearch服务的健康状态。

IMPORTANT

Docker容器的状态并不一定反映服务的状态。您可能会发现,即使相应的Docker容器正在运行,您的服务也可能不健康。可能的原因包括网络故障、端口号错误或DNS问题。


Exception: Can't connect to ES cluster

  1. 检查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
  2. 按照此文档检查Elasticsearch服务的健康状态。

IMPORTANT

Docker容器的状态并不一定反映服务的状态。您可能会发现,即使相应的Docker容器正在运行,您的服务也可能不健康。可能的原因包括网络故障、端口号错误或DNS问题。

  1. 如果你的容器不断重启,请确保按照此README中的要求,vm.max_map_count >= 262144。如果你希望永久保留更改,则需要在/etc/sysctl.conf中更新vm.max_map_count值。请注意,此配置仅适用于Linux。

无法启动ES容器并获取Elasticsearch did not exit normally

这是因为你忘记更新vm.max_map_count值在/etc/sysctl.conf中,并且你的更改在系统重启后被重置。


{"data":null,"code":100,"message":"<NotFound '404: 未找到'>"}

您的IP地址或端口号可能不正确。如果您使用的是默认配置,请在浏览器中输入http://<IP_OF_YOUR_MACHINE>不是9380,也不需要端口号!)。这应该可以正常工作。


Ollama - Mistral 实例运行在 127.0.0.1:11434,但无法在 RagFlow 中添加 Ollama 作为模型

正确的Ollama IP地址和端口对于向Ollama添加模型至关重要:

  • 如果您在 demo.ragflow.io 上,请确保托管 Ollama 的服务器具有可公开访问的 IP 地址。请注意,127.0.0.1 不是一个可公开访问的 IP 地址。
  • 如果您在本地部署RAGFlow,请确保Ollama和RAGFlow在同一个局域网内,并且可以相互通信。

查看Deploy a local LLM以获取更多信息。


你们是否提供使用deepdoc解析PDF或其他文件的示例?

是的,我们有。请查看rag/app文件夹下的Python文件。


为什么我无法上传超过128MB的文件到本地部署的RAGFlow?

确保更新MAX_CONTENT_LENGTH环境变量:

  1. ragflow/docker/.env中,取消注释环境变量MAX_CONTENT_LENGTH

    MAX_CONTENT_LENGTH=176160768 # 168MB
  2. 更新 ragflow/docker/nginx/nginx.conf:

    client_max_body_size 168M
  3. 重启RAGFlow服务器:

    docker compose up ragflow -d

FileNotFoundError: [Errno 2] 没有这样的文件或目录

  1. 检查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
  2. 按照此文档检查Elasticsearch服务的健康状态。

IMPORTANT

Docker容器的状态并不一定反映服务的状态。您可能会发现,即使相应的Docker容器正在运行,您的服务也可能不健康。可能的原因包括网络故障、端口号错误或DNS问题。


用法


如何增加RAGFlow响应的长度?

  1. 右键点击所需的对话框以显示聊天配置窗口。
  2. 切换到模型设置标签,并调整最大令牌数滑块以获得所需的长度。
  3. 点击确定以确认您的更改。

如何运行RAGFlow与本地部署的LLM?

您可以使用Ollama或Xinference来部署本地LLM。更多信息请参见这里


是否可以添加一个不受支持的LLM?

如果您的模型目前不受支持,但具有与OpenAI兼容的API,请在模型提供商页面上点击OpenAI-API-Compatible来配置您的模型:

openai-api-compatible


如何将RAGFlow与Ollama互连?

  • 如果 RAGFlow 是本地部署的,请确保您的 RAGFlow 和 Ollama 在同一个局域网内。
  • 如果您正在使用我们的在线演示,请确保您的Ollama服务器的IP地址是公开且可访问的。

更多信息请参见这里


错误:输入长度的范围应为 [1, 30000]

此错误发生的原因是匹配您搜索条件的块太多。尝试减少TopN并增加相似度阈值来解决此问题:

  1. 点击页面顶部中间的聊天
  2. 右键点击所需的对话 > 编辑 > 提示引擎
  3. 减少TopN和/或提高相似度阈值
  4. 点击确定以确认您的更改。

topn


如何获取用于与第三方应用程序集成的API密钥?

参见获取RAGFlow API密钥


如何升级RAGFlow?

有关更多信息,请参阅升级RAGFlow