文档|路线图| Twitter |不和谐|演示
目录
什么是ragflow ?
ragflow是一种基于深厚文档理解的开源抹布(检索增强的生成)引擎。它为任何规模的企业提供了简化的RAG工作流程,结合了LLM(大型语言模型),以提供真实的提问功能,并获得来自各种复杂格式化数据的良好引用。
?演示
在https://demo.ra**gfl*ow.io上尝试我们的演示。
最新更新
- 2025-05-23将Python/JavaScript代码执行程序组件添加到代理中。
- 2025-05-05支持跨语言查询。
- 2025-03-19支持使用多模式模型来理解PDF或DOCX文件中的图像。
- 2025-02-28与互联网搜索(Tavily)结合使用,支持任何LLM的深入研究。
- 2024-12-18在DeepDoc中升级文档布局分析模型。
- 2024-08-22通过RAG支持SQL语句的文本。
?请继续关注
配进我们的存储库,以保持最新的新功能和改进!获取新版本的即时通知! ?
?关键功能
? “质量,质量”
- 深层文档理解基于复杂格式的非结构化数据的知识提取。
- 从字面上找到无限令牌的“数据干草堆中的针头”。
?基于模板的块
- 聪明而可以解释。
- 大量的模板选项可供选择。
?以减少幻觉的扎根引用
- 可视化文本块,以允许人类干预。
- 快速查看关键参考和可追溯引用以支持基础答案。
?与异质数据源的兼容性
- 支持单词,幻灯片,Excel,TXT,图像,扫描副本,结构化数据,网页等。
?自动且轻松的抹布工作流程
- 精简的RAG编排均符合个人和大型企业。
- 可配置的LLM以及嵌入模型。
- 多次召回与融合重新排列配对。
- 与业务无缝集成的直观API。
?系统体系结构
?开始
先决条件
- CPU> = 4个内核
- RAM> = 16 GB
- 磁盘> = 50 GB
- docker> = 24.0.0&docker组成> = = v2.26.1
- Gvisor:仅在您打算使用ragflow的代码执行程序(沙盒)功能时才需要。
提示
如果您尚未在本地计算机(Windows,Mac或Linux)上安装Docker,请参见Install Docker Engine。
启动服务器
-
确保vm.max_map_count> = 262144:
要检查vm.max_map_count的值:
$ sysctl vm.max_map_count
reset vm.max_map_count如果不是,则至少为262144。
# In this case, we set it to 262144: $ sudo sysctl -w vm.max_map_count=262144重新启动后,将重置此更改。为确保您的更改保持永久性,请在/etc/sysctl.conf中添加或更新vm.max_map_count值:
vm.max_map_count=262144
-
克隆回购:
$ git clone https://g*i*thub*.com/infiniflow/ragflow.git
-
使用预构建的Docker映像启动服务器:
警告
所有Docker图像都是为X86平台构建的。我们目前不提供ARM64的Docker图像。如果您在ARM64平台上,请按照本指南构建与系统兼容的Docker Image。
下面的命令下载了ragflow Docker Image的V0.19.1-SLIM版。有关不同的ragflow版本的描述,请参见下表。要下载与v0.19.1-Slim不同的ragflow Edition,请在使用Docker撰写以启动服务器之前,在Docker/.env中相应地更新ragflow _image变量。例如:设置ragflow _image = infiniflow/ ragflow :v0.19.1对于完整版V0.19.1。
ragflow/docker
# Use CPU for embedding and DeepDoc tasks:
$ docker compose -f docker-compose.yml up -d
# To use GPU to accelerate embedding and DeepDoc tasks:
# docker compose -f docker-compose-gpu.yml up -d\”>
$ cd ragflow /docker # Use CPU for embedding and DeepDoc tasks: $ docker compose -f docker-compose.yml up -d # To use GPU to accelerate embedding and DeepDoc tasks: # docker compose -f docker-compose-gpu.yml up -d
| ragflow图像标签 | 图像大小(GB) | 有嵌入模型吗? | 稳定的? |
|---|---|---|---|
| V0.19.1 | ≈9 | ✔️ | 稳定版本 |
| v0.19.1-slim | ≈2 | 稳定版本 | |
| 每晚 | ≈9 | ✔️ | 夜间不稳定 |
| 夜间lim | ≈2 | 夜间不稳定 |
-
在让服务器启动并运行服务器后检查服务器状态:
$ docker logs -f ragflow -server以下输出证实了系统的成功启动:
____ ___ ______ ______ __ / __ \\ / | / ____// ____// /____ _ __ / /_/ // / | | / / __ / /_ / // __ \\| | / | / / / _, _// ___ | / /_/ // __/ / // /_/ / | | / | / / /_/ | _ | /_/ | _ | \\_ ___//_/ /_/ \\_ ___/ | __/ | __/ * Running on all addresses (0.0.0.0)如果您跳过此确认步骤并直接登录到ragflow ,则浏览器可能会引起网络androral错误,因为当时,您的ragflow可能无法完全初始化。
-
在您的Web浏览器中,输入服务器的IP地址并登录到ragflow 。
使用默认设置,您只需要输入http:// ip_of_your_machine( sans端口号),因为使用默认配置时,即可省略默认的http服务端口80。
-
在service_conf.yaml.template中,选择USER_DEFAULT_LLM中所需的LLM工厂,然后使用相应的API键更新API_KEY字段。
有关更多信息,请参见LLM_API_KEY_SETUP。
节目开始了!
?配置
在系统配置方面,您需要管理以下文件:
- 。
- service_conf.yaml.template:配置后端服务。当Docker容器启动时,该文件中的环境变量将自动填充。 Docker容器中设置的任何环境变量均可使用,使您可以根据部署环境自定义服务行为。
- docker-compose.yml:该系统依赖于docker-compose.yml启动。
./docker/readme文件提供了环境设置和服务配置的详细说明,可以用作service_conf.yaml.template文件中的$ {env_vars}。
要更新默认的HTTP服务端口(80),请转到Docker-compose.yml,然后将80:80更改为<your_serving_port>:80。
上述配置的更新需要重新启动所有容器才能生效:
$ docker compose -f docker-compose.yml up -d
将DOC引擎从Elasticsearch转换为无限
ragflow默认使用Elasticsearch来存储全文和向量。要切换到无穷大,请按照以下步骤:
-
停止所有运行容器:
$ docker compose -f docker/docker-compose.yml down -v
警告
-v将删除Docker容器量,并将清除现有数据。
-
将doc_engine设置在docker/.env中的无限。
-
启动容器:
$ docker compose -f docker-compose.yml up -d
警告
尚未正式支持在Linux/ARM64机器上切换到Infinity。
?在不嵌入模型的情况下构建Docker映像
该图像的大小约为2 GB,依赖于外部LLM和嵌入服务。
ragflow/
docker build –platform linux/amd64 –build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ ragflow :nightly-slim .\”>
git clone https://g*i*thub*.com/infiniflow/ragflow.git cd ragflow / docker build --platform linux/amd64 --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ ragflow :nightly-slim .
?构建一个码头图像,包括嵌入模型
该图像的大小约为9 GB。由于它包括嵌入模型,因此它仅依赖于外部LLM服务。
ragflow/
docker build –platform linux/amd64 -f Dockerfile -t infiniflow/ ragflow :nightly .\”>
git clone https://g*i*thub*.com/infiniflow/ragflow.git cd ragflow / docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ ragflow :nightly .
?开发来源的启动服务
-
安装UV,或者如果已经安装了此步骤:
pipx install uv pre-commit
-
克隆源代码并安装python依赖性:
ragflow/
uv sync –python 3.10 –all-extras # install ragflow dependent python modules
uv run download_deps.py
pre-commit install\”>git clone https://g*i*thub*.com/infiniflow/ragflow.git cd ragflow / uv sync --python 3.10 --all-extras # install ragflow dependent python modules uv run download_deps.py pre-commit install
-
使用Docker组成:
docker compose -f docker/docker-compose-base.yml up -d
将以下行添加到/etc/hosts以解决Docker/.env中指定的所有主机至127.0.0.1:
127.0.0.1 es01 infinity mysql minio redis sandbox-executor-manager
-
如果您无法访问拥抱面,请设置HF_ENDPOINT环境变量以使用镜像站点:
export HF_ENDPOINT=https://hf*-m**irror.com -
如果您的操作系统没有Jemalloc,请按以下方式安装:
# ubuntu sudo apt-get install libjemalloc-dev # centos sudo yum install jemalloc
-
启动后端服务:
source .venv/bin/activate export PYTHONPATH= $( pwd ) bash docker/launch_backend_service.sh
-
安装前端依赖性:
cd web npm install -
启动前端服务:
npm run dev
以下输出证实了系统的成功启动:
-
开发完成后停止ragflow前端和后端服务:
pkill -f \" ragflow _server.py|task_executor.py \"
文档
- Quickstart
- 配置
- 发行说明
- 用户指南
- 开发人员指南
- 参考
- 常见问题解答
路线图
请参阅ragflow路线图2025
?社区
- 不和谐
- 叽叽喳喳
- Github讨论
?贡献
ragflow通过开源协作蓬勃发展。本着这种精神,我们接受社区的各种贡献。如果您想参与其中,请首先查看我们的贡献指南。
