英语 | 简体中文 | 日本语 | 한국어
?什么是 RAGFlow?
?演示
?最新更新
?主要特点
?系统架构
?开始使用
?配置
?构建不嵌入模型的 docker 镜像
?构建包含嵌入模型的 docker 镜像
?从源头启动服务进行开发
?文档
?路线图
?社区
?贡献
RAGFlow 是一个基于深度文档理解的开源 RAG(检索增强生成)引擎。它为任何规模的企业提供简化的 RAG 工作流程,结合 LLM(大型语言模型)来提供真实的问答功能,并以来自各种复杂格式数据的有根据的引用为后盾。
请尝试我们的演示:https://demo.ragflow.io。
2024-11-04 升级 deepdoc 中的 DLA(文档布局分析)模型。
2024-11-01 在解析块中添加关键词提取和相关问题生成,以提高检索的准确性。
2024-09-13 新增知识库问答搜索模式。
2024-09-09 添加医疗顾问代理模板。
2024-08-22 通过RAG支持文本转SQL语句。
2024-08-02 支持受 graphrag 和思维导图启发的 GraphRAG。
⭐️ 给我们的存储库加注星标,以了解最新的令人兴奋的新功能和改进!获取新版本的即时通知! ?
基于深度文档理解,从复杂格式的非结构化数据中提取知识。
找到几乎无限的令牌的“数据大海捞针”。
智能且可解释。
有大量模板选项可供选择。
文本分块的可视化以允许人工干预。
快速查看关键参考文献和可追溯的引文,以支持有根据的答案。
支持Word、幻灯片、Excel、txt、图像、扫描件、结构化数据、网页等。
简化的 RAG 编排可满足个人和大型企业的需求。
可配置的法学硕士以及嵌入模型。
多重召回与融合重新排名相结合。
直观的 API,可与业务无缝集成。
CPU >= 4 核
内存 >= 16 GB
磁盘 >= 50 GB
Docker >= 24.0.0 & Docker Compose >= v2.26.1
如果您尚未在本地计算机(Windows、Mac 或 Linux)上安装 Docker,请参阅安装 Docker 引擎。
确保vm.max_map_count
>= 262144:
要检查
vm.max_map_count
的值:$ sysctl vm.max_map_count如果不是,请将
vm.max_map_count
重置为至少 262144 的值。# 在本例中,我们将其设置为 262144:$ sudo sysctl -w vm.max_map_count=262144此更改将在系统重新启动后重置。为了确保您的更改保持永久,请相应地添加或更新/etc/sysctl.conf中的
vm.max_map_count
值:vm.max_map_count=262144
克隆存储库:
$ git 克隆 https://github.com/infiniflow/ragflow.git
构建预构建的 Docker 镜像并启动服务器:
以下命令下载 RAGFlow slim (
dev-slim
) 的开发版本 Docker 映像。请注意,RAGFlow slim Docker 映像不包含嵌入模型或 Python 库,因此大小约为 1GB。
$ cd ragflow/docker $ docker compose -f docker-compose.yml up -d
注意:包含嵌入模型和 Python 库的 RAGFlow Docker 映像大小约为 9GB,并且可能需要更长的时间来加载。
要下载特定版本的 RAGFlow slim Docker 映像,请将 * docker/.env * 中的RAGFlow_IMAGE
变量更新为您所需的版本。例如, RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0-slim
。进行此更改后,重新运行上面的命令以启动下载。
要下载包括嵌入模型和 Python 库的 RAGFlow Docker 映像的开发版本,请将docker/.env中的RAGFlow_IMAGE
变量更新为RAGFLOW_IMAGE=infiniflow/ragflow:dev
。进行此更改后,重新运行上面的命令以启动下载。
要下载特定版本的 RAGFlow Docker 映像(包括嵌入模型和 Python 库),请将docker/.env中的RAGFlow_IMAGE
变量更新为您所需的版本。例如, RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0
。进行此更改后,重新运行上面的命令以启动下载。
服务器启动并运行后检查服务器状态:
$ docker 日志 -f ragflow-server
以下输出确认系统已成功启动:
____ ___ ______ __ __ / __ / | / ____// ____// /____ _ __ / /_/ // /| | // __ / /_ / // __ | | /| // / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|____//_/ /_/ ____/ |__/|__/ * 在所有地址 (0.0.0.0) 上运行 * 在 http://127.0.0.1:9380 上运行 * 在 http://xxxx:9380 上运行 信息:werkzeug:按 CTRL+C 退出
如果您跳过此确认步骤直接登录 RAGFlow,您的浏览器可能会提示
network abnormal
错误,因为此时您的 RAGFlow 可能尚未完全初始化。
在 Web 浏览器中,输入服务器的 IP 地址并登录 RAGFlow。
使用默认设置时,您只需输入
http://IP_OF_YOUR_MACHINE
(无端口号),因为使用默认配置时可以省略默认 HTTP 服务端口80
。
在 service_conf.yaml 中,在user_default_llm
中选择所需的 LLM 工厂,并使用相应的 API 密钥更新API_KEY
字段。
有关详细信息,请参阅 llm_api_key_setup。
演出开始啦!
当涉及到系统配置时,您将需要管理以下文件:
.env:保留系统的基本设置,例如SVR_HTTP_PORT
、 MYSQL_PASSWORD
和MINIO_PASSWORD
。
service_conf.yaml:配置后端服务。
docker-compose.yml:系统依赖docker-compose.yml启动。
您必须确保对 .env 文件的更改与 service_conf.yaml 文件中的内容一致。
./docker/README 文件提供了环境设置和服务配置的详细描述,您需要确保 ./docker/README 文件中列出的所有环境设置与 service_conf.yaml 文件中的相应配置保持一致。
要更新默认 HTTP 服务端口 (80),请转到 docker-compose.yml 并将80:80
更改为<YOUR_SERVING_PORT>:80
。
对上述配置的更新需要重新启动所有容器才能生效:
$ docker compose -f docker/docker-compose.yml up -d
该映像大小约为 1 GB,依赖于外部 LLM 和嵌入服务。
git 克隆 https://github.com/infiniflow/ragflow.gitcd ragflow/ pip3 安装 Huggingface-hub nltk python3 download_deps.py docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim 。
该图像的大小约为 9 GB。由于它包含嵌入模型,因此它仅依赖于外部 LLM 服务。
git 克隆 https://github.com/infiniflow/ragflow.gitcd ragflow/ pip3 安装 Huggingface-hub nltk python3 download_deps.py docker build -f Dockerfile -t infiniflow/ragflow:dev 。
安装 Poetry,如果已经安装则跳过此步骤:
卷曲-sSL https://install.python-poetry.org |蟒蛇3 -
克隆源代码并安装 Python 依赖项:
git clone https://github.com/infiniflow/ragflow.gitcd ragflow/export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true~/.local/bin/poetry install --sync --no-root # 安装 RAGFlow 依赖的 python 模块
使用 Docker Compose 启动依赖服务(MinIO、Elasticsearch、Redis 和 MySQL):
docker compose -f docker/docker-compose-base.yml up -d
将以下行添加到/etc/hosts
以将docker/service_conf.yaml中指定的所有主机解析为127.0.0.1
:
127.0.0.1 es01 mysql minio redis
在docker/service_conf.yaml中,将 mysql 端口更新为5455
,将 es 端口更新为1200
,如docker/.env中指定。
如果无法访问 HuggingFace,请设置HF_ENDPOINT
环境变量以使用镜像站点:
导出 HF_ENDPOINT=https://hf-mirror.com
启动后端服务:
源 .venv/bin/activateexport PYTHONPATH=$(pwd)bash docker/launch_backend_service.sh
安装前端依赖项:
光盘网 npm 安装 --force
配置前端将.umirc.ts中的proxy.target
更新为http://127.0.0.1:9380
:
启动前端服务:
npm 运行开发
以下输出确认系统已成功启动:
快速入门
用户指南
参考
常问问题
请参阅 2024 年 RAGFlow 路线图
不和谐
叽叽喳喳
GitHub 讨论
RAGFlow 通过开源协作蓬勃发展。本着这种精神,我们接受社区的各种贡献。如果您想成为其中一员,请先查看我们的贡献指南。