电商平台网站建设,网站建设题目,专业的营销型网站制作,重庆大渡口营销型网站建设公司哪家好RAGFlow 是一款基于深度文档理解构建的开源 RAG#xff08;Retrieval-Augmented Generation#xff09;引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程#xff0c;结合大语言模型#xff08;LLM#xff09;针对用户各类不同的复杂格式数据提供可靠…RAGFlow 是一款基于深度文档理解构建的开源 RAGRetrieval-Augmented Generation引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程结合大语言模型LLM针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。
前提条件 CPU 4 核RAM 16 GBDisk 50 GBDocker 24.0.0 Docker Compose v2.26.1 如果你并没有在本机安装 DockerWindows、Mac或者 Linux, 可以参考文档 Install Docker Engine 自行安装。 启动服务器 确保 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_count262144 你的改动会在下次系统重启时被重置。如果希望做永久改动还需要在 /etc/sysctl.conf 文件里把 vm.max_map_count 的值再相应更新一遍 vm.max_map_count262144 克隆仓库 $ git clone https://github.com/infiniflow/ragflow.git 进入 docker 文件夹利用提前编译好的 Docker 镜像启动服务器 运行以下命令会自动下载 dev 版的 RAGFlow slim Docker 镜像dev-slim该镜像并不包含 embedding 模型以及一些 Python 库因此镜像大小约 1GB。 $ cd ragflow/docker
$ docker compose -f docker-compose.yml up -d 如果你想下载并运行特定版本的 RAGFlow slim Docker 镜像请在 docker/.env 文件中找到 RAGFLOW_IMAGE 变量将其改为对应版本。例如 RAGFLOW_IMAGEinfiniflow/ragflow:v0.13.0-slim然后再运行上述命令。如果您想安装内置 embedding 模型和 Python 库的 dev 版本的 Docker 镜像需要将 docker/.env 文件中的 RAGFLOW_IMAGE 变量修改为 RAGFLOW_IMAGEinfiniflow/ragflow:dev。如果您想安装内置 embedding 模型和 Python 库的指定版本的 RAGFlow Docker 镜像需要将 docker/.env 文件中的 RAGFLOW_IMAGE 变量修改为 RAGFLOW_IMAGEinfiniflow/ragflow:v0.13.0当前改的这个。修改后再运行上面的命令。 注意 安装内置 embedding 模型和 Python 库的指定版本的 RAGFlow Docker 镜像大小约 9 GB可能需要更长时间下载请耐心等待。 服务器启动成功后再次确认服务器状态 $ 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:9380INFO:werkzeug:Press CTRLC to quit 如果您跳过这一步系统确认步骤就登录 RAGFlow你的浏览器有可能会提示 network anormal 或 网络异常因为 RAGFlow 可能并未完全启动成功。 在你的浏览器中输入你的服务器对应的 IP 地址并登录 RAGFlow。 上面这个例子中您只需输入 http://IP_OF_YOUR_MACHINE 即可未改动过配置则无需输入端口默认的 HTTP 服务端口 80。 在 service_conf.yaml 文件的 user_default_llm 栏配置 LLM factory并在 API_KEY 栏填写和你选择的大模型相对应的 API key。 详见 llm_api_key_setup。 好戏开始接着奏乐接着舞 系统配置 系统配置涉及以下三份文件
.env存放一些基本的系统环境变量比如 SVR_HTTP_PORT、MYSQL_PASSWORD、MINIO_PASSWORD 等。service_conf.yaml配置各类后台服务。docker-compose.yml: 系统依赖该文件完成启动。
请务必确保 .env 文件中的变量设置与 service_conf.yaml 文件中的配置保持一致
如果不能访问镜像站点hub.docker.com或者模型站点huggingface.co请按照.env注释修改RAGFLOW_IMAGE和HF_ENDPOINT。 ./docker/README 文件提供了环境变量设置和服务配置的详细信息。请一定要确保 ./docker/README 文件当中列出来的环境变量的值与 service_conf.yaml 文件当中的系统配置保持一致。 如需更新默认的 HTTP 服务端口(80), 可以在 docker-compose.yml 文件中将配置 80:80 改为 YOUR_SERVING_PORT:80。 所有系统配置都需要通过系统重启生效 $ docker compose -f docker-compose.yml up -d 按照上面的文档默认启动后检查日志是有报错的。 错误信息 处理办法更换镜像版本注意查看红色的代码位置
最终的文件修改如下
rootnode11:~/ragflow/docker# ll total 6656 drwxr-xr-x 4 root root 4096 11月 18 12:32 ./ drwxr-xr-x 16 root root 4096 11月 13 15:01 ../ -rw-r--r-- 1 root root 924 11月 13 15:01 docker-compose-admin-tool.yml -rw-r--r-- 1 root root 3416 11月 18 10:24 docker-compose-base.yml -rw-r--r-- 1 root root 767 11月 13 15:01 docker-compose-CN-oc9.yml -rw-r--r-- 1 root root 925 11月 13 15:01 docker-compose-gpu-CN-oc9.yml -rw-r--r-- 1 root root 853 11月 18 10:36 docker-compose-gpu.yml -rw-r--r-- 1 root root 1059 11月 13 15:01 docker-compose.yml -rwxr-xr-x 1 root root 841 11月 13 15:01 entrypoint.sh* -rw-r--r-- 1 root root 4407 11月 18 12:32 .env -rwxr-xr-x 1 root root 2631 11月 13 15:01 init-kibana.sh* -rw-r--r-- 1 root root 53 11月 13 15:01 init.sql -rw-r--r-- 1 root root 2733 11月 13 15:01 launch_backend_service.sh drwxr-xr-x 2 root root 4096 11月 13 15:01 nginx/ -rw-r--r-- 1 root root 4582686 11月 15 09:49 r1.log -rw-r--r-- 1 root root 2107770 11月 14 00:28 rag1.log drwxr-xr-x 4 root root 4096 11月 18 12:29 ragflow-logs/ -rw-r--r-- 1 root root 5037 11月 13 15:58 rag.log -rwxr-xr-x 1 root root 198 11月 13 16:14 rag.sh* -rw-r--r-- 1 root root 6864 11月 13 15:01 README.md -rw-r--r-- 1 root root 945 11月 16 19:41 r.log -rwxr-xr-x 1 root root 84 11月 14 09:03 r.sh* -rw-r--r-- 1 root root 1740 11月 18 10:41 service_conf.yaml -rw-r--r-- 1 root root 8700 11月 18 09:28 service_conf.yaml-bak -rw-r--r-- 1 root root 2024 11月 13 15:01 service_conf.yaml.template rootnode11:~/ragflow/docker# more docker-compose-base.yml services: es01: container_name: ragflow-es-01 image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION} volumes: - esdata01:/usr/share/elasticsearch/data ports: - ${ES_PORT}:9200 env_file: .env environment: - node.namees01 - ELASTIC_PASSWORD${ELASTIC_PASSWORD} - bootstrap.memory_lockfalse - discovery.typesingle-node - xpack.security.enabledtrue - xpack.security.http.ssl.enabledfalse - xpack.security.transport.ssl.enabledfalse - TZ${TIMEZONE} mem_limit: ${MEM_LIMIT} ulimits: memlock: soft: -1 hard: -1 healthcheck: test: [CMD-SHELL, curl http://localhost:9200] interval: 10s timeout: 10s retries: 120 networks: - ragflow restart: on-failure # infinity: # container_name: ragflow-infinity # image: infiniflow/infinity:v0.5.0-dev2 # volumes: # - infinity_data:/var/infinity # ports: # - ${INFINITY_THRIFT_PORT}:23817 # - ${INFINITY_HTTP_PORT}:23820 # - ${INFINITY_PSQL_PORT}:5432 # env_file: .env # environment: # - TZ${TIMEZONE} # mem_limit: ${MEM_LIMIT} # ulimits: # nofile: # soft: 500000 # hard: 500000 # networks: # - ragflow # healthcheck: # test: [CMD, curl, http://localhost:23820/admin/node/current] # interval: 10s # timeout: 10s # retries: 120 # restart: on-failure mysql: # mysql:5.7 linux/arm64 image is unavailable. image: mysql:8.0.39-debian container_name: ragflow-mysql env_file: .env environment: - MYSQL_ROOT_PASSWORD${MYSQL_PASSWORD} - TZ${TIMEZONE} command: --max_connections1000 --character-set-serverutf8mb4 --collation-serverutf8mb4_general_ci --default-authentication-pluginmysql_native_password --tls_versionTLSv1.2,TLSv1.3 --init-file /data/application/init.sql ports: - ${MYSQL_PORT}:3306 volumes: - mysql_data:/var/lib/mysql - ./init.sql:/data/application/init.sql networks: - ragflow healthcheck: test: [CMD, mysqladmin ,ping, -uroot, -p${MYSQL_PASSWORD}] interval: 10s timeout: 10s retries: 3 restart: on-failure minio: # image: quay.io/minio/minio:RELEASE.2023-04-28T18-11-17Z image: quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z container_name: ragflow-minio command: server --console-address :9001 /data ports: - ${MINIO_PORT}:9000 - ${MINIO_CONSOLE_PORT}:9001 env_file: .env environment: - MINIO_ROOT_USER${MINIO_USER} - MINIO_ROOT_PASSWORD${MINIO_PASSWORD} - TZ${TIMEZONE} volumes: - minio_data:/data networks: - ragflow restart: on-failure redis: image: redis:7.2.4 # image: valkey/valkey:8 container_name: ragflow-redis command: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory 128mb --maxmemory-policy allkeys-lru env_file: .env ports: - ${REDIS_PORT}:6379 volumes: - redis_data:/data networks: - ragflow restart: on-failure
volumes: esdata01: driver: local infinity_data: driver: local mysql_data: driver: local minio_data: driver: local redis_data: driver: local
networks: ragflow: driver: bridge rootnode11:~/ragflow/docker# more docker-compose-admin-tool.yml include: - path: ./docker-compose.yml env_file: ./.env
services: kibana: image: kibana:${STACK_VERSION} container_name: ragflow-kibana environment: ELASTICSEARCH_USERNAME: ${KIBANA_USER} ELASTICSEARCH_PASSWORD: ${KIBANA_PASSWORD} ELASTICSEARCH_HOSTS: http://es01:9200 ports: - ${KIBANA_PORT}:5601 depends_on: es01: condition: service_healthy kibana-user-init: condition: service_completed_successfully networks: - ragflow kibana-user-init: image: appropriate/curl depends_on: es01: condition: service_healthy volumes: - ./init-kibana.sh:/app/init-kibana.sh environment: - ELASTIC_PASSWORD${ELASTIC_PASSWORD} - KIBANA_USER${KIBANA_USER} - KIBANA_PASSWORD${KIBANA_PASSWORD} command: /bin/sh -c sh /app/init-kibana.sh networks: - ragflow restart: no rootnode11:~/ragflow/docker# cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 node11
# The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters rootnode11:~/ragflow/docker# more .env|grep -v #|grep -v $^ STACK_VERSION8.11.3
ES_HOSTes01
ES_PORT1200
ELASTIC_PASSWORDinfini_rag_flow
KIBANA_PORT6601 KIBANA_USERrag_flow KIBANA_PASSWORDinfini_rag_flow
MEM_LIMIT8073741824
INFINITY_THRIFT_PORT23817 INFINITY_HTTP_PORT23820 INFINITY_PSQL_PORT5432
MYSQL_PASSWORDinfini_rag_flow MYSQL_HOSTmysql MYSQL_DBNAMErag_flow MYSQL_PORT5455
MINIO_HOSTminio MINIO_CONSOLE_PORT9001 MINIO_PORT9000 MINIO_USERrag_flow MINIO_PASSWORDinfini_rag_flow
REDIS_HOSTredis REDIS_PORT6379 REDIS_PASSWORDinfini_rag_flow
SVR_HTTP_PORT9380
RAGFLOW_IMAGEinfiniflow/ragflow:v0.13.0 TIMEZONEAsia/Shanghai rootnode11:~/ragflow/docker# 可参考连接
https://github.com/infiniflow/ragflow/issues/2587
https://github.com/infiniflow/ragflow/issues/3418
RAG 实践- OllamaRagFlow 部署本地知识库_ragflow本地化部署知识库-CSDN博客