Feat: refine create and list operations for MCP dashboard (#8823) What problem does this PR solve?Refine MCP dashboard create and list operations. Type of change Refactoring
Feat: refine create and list operations for MCP dashboard (#8823)
Refine MCP dashboard create and list operations.
#
RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。
请登录网址 https://demo.ragflow.io 试用 demo。
⭐️ 点击右上角的 Star 关注 RAGFlow,可以获取最新发布的实时通知 !🌟
[!TIP] 如果你并没有在本机安装 Docker(Windows、Mac,或者 Linux), 可以参考文档 Install Docker Engine 自行安装。
确保 vm.max_map_count 不小于 262144:
vm.max_map_count
如需确认 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
如需确认 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 clone https://github.com/infiniflow/ragflow.git
进入 docker 文件夹,利用提前编译好的 Docker 镜像启动服务器:
[!CAUTION] 请注意,目前官方提供的所有 Docker 镜像均基于 x86 架构构建,并不提供基于 ARM64 的 Docker 镜像。 如果你的操作系统是 ARM64 架构,请参考这篇文档自行构建 Docker 镜像。
运行以下命令会自动下载 RAGFlow slim Docker 镜像 v0.19.1-slim。请参考下表查看不同 Docker 发行版的描述。如需下载不同于 v0.19.1-slim 的 Docker 镜像,请在运行 docker compose 启动服务之前先更新 docker/.env 文件内的 RAGFLOW_IMAGE 变量。比如,你可以通过设置 RAGFLOW_IMAGE=infiniflow/ragflow:v0.19.1 来下载 RAGFlow 镜像的 v0.19.1 完整发行版。
v0.19.1-slim
docker compose
RAGFLOW_IMAGE
RAGFLOW_IMAGE=infiniflow/ragflow:v0.19.1
v0.19.1
$ 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
[!TIP] 如果你遇到 Docker 镜像拉不下来的问题,可以在 docker/.env 文件内根据变量 RAGFLOW_IMAGE 的注释提示选择华为云或者阿里云的相应镜像。 华为云镜像名:swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow 阿里云镜像名:registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow
[!TIP] 如果你遇到 Docker 镜像拉不下来的问题,可以在 docker/.env 文件内根据变量 RAGFLOW_IMAGE 的注释提示选择华为云或者阿里云的相应镜像。
swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow
registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow
服务器启动成功后再次确认服务器状态:
$ docker logs -f ragflow-server
出现以下界面提示说明服务器启动成功:
____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0)
如果您在没有看到上面的提示信息出来之前,就尝试登录 RAGFlow,你的浏览器有可能会提示 network anormal 或 网络异常。
network anormal
网络异常
在你的浏览器中输入你的服务器对应的 IP 地址并登录 RAGFlow。
上面这个例子中,您只需输入 http://IP_OF_YOUR_MACHINE 即可:未改动过配置则无需输入端口(默认的 HTTP 服务端口 80)。
在 service_conf.yaml.template 文件的 user_default_llm 栏配置 LLM factory,并在 API_KEY 栏填写和你选择的大模型相对应的 API key。
user_default_llm
API_KEY
详见 llm_api_key_setup。
好戏开始,接着奏乐接着舞!
系统配置涉及以下三份文件:
SVR_HTTP_PORT
MYSQL_PASSWORD
MINIO_PASSWORD
请务必确保 .env 文件中的变量设置与 service_conf.yaml.template 文件中的配置保持一致!
如果不能访问镜像站点 hub.docker.com 或者模型站点 huggingface.co,请按照 .env 注释修改 RAGFLOW_IMAGE 和 HF_ENDPOINT。
HF_ENDPOINT
./docker/README 解释了 service_conf.yaml.template 用到的环境变量设置和服务配置。
如需更新默认的 HTTP 服务端口(80), 可以在 docker-compose.yml 文件中将配置 80:80 改为 <YOUR_SERVING_PORT>:80。
80:80
<YOUR_SERVING_PORT>:80
所有系统配置都需要通过系统重启生效: $ docker compose -f docker-compose.yml up -d
所有系统配置都需要通过系统重启生效:
$ docker compose -f docker-compose.yml up -d
RAGFlow 默认使用 Elasticsearch 存储文本和向量数据. 如果要切换为 Infinity, 可以按照下面步骤进行:
停止所有容器运行:
$ docker compose -f docker/docker-compose.yml down -v
Note: -v 将会删除 docker 容器的 volumes,已有的数据会被清空。
-v
设置 docker/.env 目录中的 DOC_ENGINE 为 infinity.
DOC_ENGINE
infinity
启动容器:
[!WARNING] Infinity 目前官方并未正式支持在 Linux/arm64 架构下的机器上运行.
本 Docker 镜像大小约 2 GB 左右并且依赖外部的大模型和 embedding 服务。
git clone https://github.com/infiniflow/ragflow.git cd ragflow/ docker build --platform linux/amd64 --build-arg LIGHTEN=1 --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
本 Docker 大小约 9 GB 左右。由于已包含 embedding 模型,所以只需依赖外部的大模型服务即可。
git clone https://github.com/infiniflow/ragflow.git cd ragflow/ docker build --platform linux/amd64 --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:nightly .
安装 uv。如已经安装,可跳过本步骤:
pipx install uv pre-commit export UV_INDEX=https://mirrors.aliyun.com/pypi/simple
下载源代码并安装 Python 依赖:
git clone https://github.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 Compose 启动依赖的服务(MinIO, Elasticsearch, Redis, and MySQL):
docker compose -f docker/docker-compose-base.yml up -d
在 /etc/hosts 中添加以下代码,目的是将 conf/service_conf.yaml 文件中的所有 host 地址都解析为 127.0.0.1:
/etc/hosts
127.0.0.1
127.0.0.1 es01 infinity mysql minio redis sandbox-executor-manager
如果无法访问 HuggingFace,可以把环境变量 HF_ENDPOINT 设成相应的镜像站点:
export HF_ENDPOINT=https://hf-mirror.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"
详见 RAGFlow Roadmap 2025 。
RAGFlow 只有通过开源协作才能蓬勃发展。秉持这一精神,我们欢迎来自社区的各种贡献。如果您有意参与其中,请查阅我们的 贡献者指南 。
扫二维码添加 RAGFlow 小助手,进 RAGFlow 交流群。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
Document | Roadmap | Twitter | Discord | Demo
#
📕 目录
💡 RAGFlow 是什么?
RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。
🎮 Demo 试用
请登录网址 https://demo.ragflow.io 试用 demo。
🔥 近期更新
🎉 关注项目
⭐️ 点击右上角的 Star 关注 RAGFlow,可以获取最新发布的实时通知 !🌟
🌟 主要功能
🍭 “Quality in, quality out”
🍱 基于模板的文本切片
🌱 有理有据、最大程度降低幻觉(hallucination)
🍔 兼容各类异构数据源
🛀 全程无忧、自动化的 RAG 工作流
🔎 系统架构
🎬 快速开始
📝 前提条件
🚀 启动服务器
确保
vm.max_map_count
不小于 262144:克隆仓库:
进入 docker 文件夹,利用提前编译好的 Docker 镜像启动服务器:
服务器启动成功后再次确认服务器状态:
出现以下界面提示说明服务器启动成功:
在你的浏览器中输入你的服务器对应的 IP 地址并登录 RAGFlow。
在 service_conf.yaml.template 文件的
user_default_llm
栏配置 LLM factory,并在API_KEY
栏填写和你选择的大模型相对应的 API key。好戏开始,接着奏乐接着舞!
🔧 系统配置
系统配置涉及以下三份文件:
SVR_HTTP_PORT
、MYSQL_PASSWORD
、MINIO_PASSWORD
等。请务必确保 .env 文件中的变量设置与 service_conf.yaml.template 文件中的配置保持一致!
如果不能访问镜像站点 hub.docker.com 或者模型站点 huggingface.co,请按照 .env 注释修改
RAGFLOW_IMAGE
和HF_ENDPOINT
。如需更新默认的 HTTP 服务端口(80), 可以在 docker-compose.yml 文件中将配置
80:80
改为<YOUR_SERVING_PORT>:80
。把文档引擎从 Elasticsearch 切换成为 Infinity
RAGFlow 默认使用 Elasticsearch 存储文本和向量数据. 如果要切换为 Infinity, 可以按照下面步骤进行:
停止所有容器运行:
Note:
-v
将会删除 docker 容器的 volumes,已有的数据会被清空。设置 docker/.env 目录中的
DOC_ENGINE
为infinity
.启动容器:
🔧 源码编译 Docker 镜像(不含 embedding 模型)
本 Docker 镜像大小约 2 GB 左右并且依赖外部的大模型和 embedding 服务。
🔧 源码编译 Docker 镜像(包含 embedding 模型)
本 Docker 大小约 9 GB 左右。由于已包含 embedding 模型,所以只需依赖外部的大模型服务即可。
🔨 以源代码启动服务
安装 uv。如已经安装,可跳过本步骤:
下载源代码并安装 Python 依赖:
通过 Docker Compose 启动依赖的服务(MinIO, Elasticsearch, Redis, and MySQL):
在
/etc/hosts
中添加以下代码,目的是将 conf/service_conf.yaml 文件中的所有 host 地址都解析为127.0.0.1
:如果无法访问 HuggingFace,可以把环境变量
HF_ENDPOINT
设成相应的镜像站点:如果你的操作系统没有 jemalloc,请按照如下方式安装:
启动后端服务:
安装前端依赖:
启动前端服务:
以下界面说明系统已经成功启动:
开发完成后停止 RAGFlow 前端和后端服务:
📚 技术文档
📜 路线图
详见 RAGFlow Roadmap 2025 。
🏄 开源社区
🙌 贡献指南
RAGFlow 只有通过开源协作才能蓬勃发展。秉持这一精神,我们欢迎来自社区的各种贡献。如果您有意参与其中,请查阅我们的 贡献者指南 。
🤝 商务合作
👥 加入社区
扫二维码添加 RAGFlow 小助手,进 RAGFlow 交流群。