常见问题
关于一般功能、故障排除、使用等方面的查询。
通用特性
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-slim 和 v0.15.1:
infiniflow/ragflow:v0.15.1-slim(默认): 不包含嵌入模型的RAGFlow Docker镜像。infiniflow/ragflow:v0.15.1: 包含嵌入模型的RAGFlow Docker镜像:- 内置嵌入模型:
BAAI/bge-large-zh-v1.5BAAI/bge-reranker-v2-m3maidalun1020/bce-embedding-base_v1maidalun1020/bce-reranker-base_v1
- 在RAGFlow UI中选择后才会下载的嵌入模型:
BAAI/bge-base-en-v1.5BAAI/bge-large-en-v1.5BAAI/bge-small-en-v1.5BAAI/bge-small-zh-v1.5jinaai/jina-embeddings-v2-base-enjinaai/jina-embeddings-v2-small-ennomic-ai/nomic-embed-text-v1.5sentence-transformers/all-MiniLM-L6-v2
- 内置嵌入模型:
你们是否提供用于与第三方应用程序集成的API?
相应的API现已可用。更多信息请参见RAGFlow HTTP API参考或RAGFlow Python API参考。
是否支持流输出?
是的,我们做。
是否可以通过URL分享对话?
不,此功能不受支持。
是否支持多轮对话,将之前的对话作为当前查询的上下文?
是的,我们支持根据正在进行的对话的现有上下文增强用户查询:
- 在聊天页面,将鼠标悬停在所需的助手上方并选择编辑。
- 在聊天配置弹出窗口中,点击提示引擎标签。
- 打开多轮优化以启用此功能。
故障排除
Docker镜像的问题
如何从头开始构建RAGFlow镜像?
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 代替:
-
停止所有容器并移除所有相关资源:
cd ragflow/docker/
docker compose down -
取消注释ragflow/docker/.env中的以下行:
# HF_ENDPOINT=https://hf-mirror.com -
启动服务器:
docker compose up -d
MaxRetryError: HTTPSConnectionPool(host='hf-mirror.com', port=443)
此错误表明您无法访问互联网或无法连接到hf-mirror.com。请尝试以下操作:
-
手动从huggingface.co/InfiniFlow/deepdoc下载资源文件到本地文件夹~/deepdoc。
-
添加卷到docker-compose.yml,例如:
- ~/deepdoc:/ragflow/rag/res/deepdoc
RAGFlow服务器的问题
WARNING: 无法找到 /raglof/rag/res/borker.tm
忽略此警告并继续。所有系统警告都可以忽略。
network 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连接
忽略此警告并继续。所有系统警告都可以忽略。
为什么我的文档解析停滞在不到百分之一?
点击“解析状态”栏旁边的红色十字,然后重新启动解析过程,看看问题是否仍然存在。如果问题仍然存在并且您的RAGFlow是本地部署的,请尝试以下操作:
-
检查您的RAGFlow服务器的日志,看看它是否正常运行:
docker logs -f ragflow-server -
检查task_executor.py进程是否存在。
-
检查您的RAGFlow服务器是否可以访问hf-mirror.com或huggingface.com。
为什么我的pdf解析在接近完成时停滞,而日志没有显示任何错误?
点击“解析状态”栏旁边的红色叉号,然后重新启动解析过程,看看问题是否仍然存在。如果问题仍然存在并且您的RAGFlow是本地部署的,解析过程很可能由于内存不足而被终止。尝试通过在docker/.env中增加MEM_LIMIT值来增加内存分配。
请确保重新启动您的RAGFlow服务器以使更改生效!
docker compose stop
docker compose up -d
Index failure
索引失败通常表示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 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 -
按照此文档检查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
这是因为你忘记更新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环境变量:
-
在ragflow/docker/.env中,取消注释环境变量
MAX_CONTENT_LENGTH:MAX_CONTENT_LENGTH=176160768 # 168MB -
更新 ragflow/docker/nginx/nginx.conf:
client_max_body_size 168M -
重启RAGFlow服务器:
docker compose up ragflow -d
FileNotFoundError: [Errno 2] 没有这样的文件或目录
-
检查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响应的长度?
- 右键点击所需的对话框以显示聊天配置窗口。
- 切换到模型设置标签,并调整最大令牌数滑块以获得所需的长度。
- 点击确定以确认您的更改。
如何运行RAGFlow与本地部署的LLM?
您可以使用Ollama或Xinference来部署本地LLM。更多信息请参见这里。
是否可以添加一个不受支持的LLM?
如果您的模型目前不受支持,但具有与OpenAI兼容的API,请在模型提供商页面上点击OpenAI-API-Compatible来配置您的模型:
如何将RAGFlow与Ollama互连?
- 如果 RAGFlow 是本地部署的,请确保您的 RAGFlow 和 Ollama 在同一个局域网内。
- 如果您正在使用我们的在线演示,请确保您的Ollama服务器的IP地址是公开且可访问的。
更多信息请参见这里。
错误:输入长度的范围应为 [1, 30000]
此错误发生的原因是匹配您搜索条件的块太多。尝试减少TopN并增加相似度阈值来解决此问题:
- 点击页面顶部中间的聊天。
- 右键点击所需的对话 > 编辑 > 提示引擎
- 减少TopN和/或提高相似度阈值。
- 点击确定以确认您的更改。
如何获取用于与第三方应用程序集成的API密钥?
如何升级RAGFlow?
有关更多信息,请参阅升级RAGFlow。