图龙网络科技

问答社区

原创作者: 图龙网络科技 发布时间: 2023-09-23 229.8K 人阅读

RAGFlow 是一个基于深度文档理解的开源 RAG(检索增强生成)引擎。

图龙网络科技 发布于 1个月前 分类:语言模型

RAGFlow 是什么?

RAGFlow是一款基于深度文档理解构建的开源RAG(Retrieval-Augmented Generation)引擎。RAGFlow个人可以为各种规模的企业及提供一套专业的RAG工作流程,结合针对用户群体的大语言模型(LLM)不同的复杂格式数据提供可靠的问答以及有理有据的引用。

试用

请登录网址https://demo.ragflow.io试用演示。

近期更新

  • 2024-09-13 增加知识库问答搜索模式。
  • 2024-09-09 在代理加入医疗问诊模板。
  • 2024-08-22 支持用RAG技术实现从自然语言到SQL语句的转换。
  • 2024-08-02 支持GraphRAG启发于graphrag和思维导图。
  • 2024-07-23 支持解析音频文件。
  • 2024-07-08 支持Agentic RAG:基于Graph的工作流程。
  • 2024-06-27 Q&A 解析方式支持Markdown文件和Docx文件,支持提取出Docx文件中的图片和Markdown文件中的表格。
  • 2024-05-23 实现RAPTOR提供更好的文本搜索。
  • 主要功能
    🍭 “进的质量,出的质量”
    基于深度文档理解,能够从各种复杂格式的非重构数据中提取真知灼见。
    真正在无限上下文(代币)的场景接下来完成快速大海捞针测试。
    🍱基于模板的食材片
    不仅仅是智能,更重要的是可控可解释。
    多种内容模板提供选择
    🌱有理有据、最大程度降低幻觉(幻觉)
    文本切片过程可视化,支持手动调整。
    有理有据:答案提供了快照的关键引用并支持追根溯源。
    🍔兼容多种数据源
    支持丰富的文件类型,包括Word文档、PPT、excel表格、txt文件、图片、PDF、影印件、格式、格式化数据、网页等。
    🛀全程无忧、自动化的RAG工作流程
    全面优化的RAG工作流程可以支持从个人应用其实超大型企业的群体生态系统。
    大语言模型LLM以及提供模型均支持配置。
    基于多路召回、融合重排序。
    提供易用的API,可以轻松集成到各类企业系统。
    🔎 系统架构:
  • 1727084185-39bf3a4149318f5
  • 快速开始

    📝 前提条件

    • CPU >= 4核
    • 内存 >= 16 GB
    • 磁盘 >= 50 GB
    • Docker >= 24.0.0 & Docker Compose >= v2.26.1

      如果您并没有在本机安装 Docker(Windows、Mac,或者 Linux),可以参考文档安装 Docker Engine自行安装。

    🚀 启动服务器

    1. 确保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
    2. 克隆仓库:

      $ git clone https://github.com/infiniflow/ragflow.git
    3. 进入docker文件夹,利用提前编译好的Docker镜像启动服务器:

      $ cd ragflow/docker
      $ chmod +x ./entrypoint.sh
      $ docker compose -f docker-compose-CN.yml up -d

      请注意,运行上述命令会自动下载 RAGFlow 的开发版本 docker 镜像。如果你想下载并特定运行版本的 docker 镜像,请在 docker/.env 文件中找到 RAGFLOW_VERSION 变量,将其改为对应版本。例如 RAGFLOW_VERSION= v0.11.0,然后运行上述命令。

      核心镜像下载大小为9 GB,可能需要一定时间拉取。请耐心等待。

    4. 服务器启动成功后再次确认服务器状态:

      $ 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,您的浏览器可能会有提示network abnormal网络异常,因为 RAGFlow 可能会完全启动成功。

    5. 在你的浏览器中输入你的服务器的IP地址并登录RAGFlow。

      上面这个例子中,您只需输入 http://IP_OF_YOUR_MACHINE 即可:未配置过配置则消耗输入端口(默认的 HTTP 服务端口 80)。

    6. service_conf.yaml文件的user_default_llm栏配置LLM工厂,并在API_KEY栏填写和你选择的大模型相对应的API密钥。

      详见llm_api_key_setup

      好戏开始,接着奏乐接着舞!

    🔧 系统配置

    系统配置涉及以下三份文件:

    • .env:存放一些基本的系统环境变量,比如SVR_HTTP_PORTMYSQL_PASSWORDMINIO_PASSWORD等。
    • service_conf.yaml:各类配置后台服务。
    • docker-compose-CN.yml : 系统依赖该文件完成启动。

    请务必确保.env文件中的参数设置与service_conf.yaml文件中的配置保持一致!

    ./docker/README文件提供了环境变量设置和服务配置的详细信息。请一定要确保./docker/README文件中列出的环境变量的值与service_conf.yaml文件中所涉及的系统配置保持一致。

    底层更新默认的HTTP服务端口(80),可以在docker-compose-CN.yml文件中将80:80配置<YOUR_SERVING_PORT>:80

    所有系统配置都需要通过系统重启才能生效:

    $ docker compose -f docker-compose-CN.yml up -d

    🛠️ 源码编译、安装 Docker 镜像

    需要从安装Docker镜像源码:

    $ git clone https://github.com/infiniflow/ragflow.git
    $ cd ragflow/
    $ docker build -t infiniflow/ragflow:v0.11.0 .
    $ cd ragflow/docker
    $ chmod +x ./entrypoint.sh
    $ docker compose up -d

    🛠️ 源码启动服务

    从启动服务开始,请参考以下源码:

    1. 仓库
    $ git clone https://github.com/infiniflow/ragflow.git
    $ cd ragflow/
    1. 创建虚拟环境(确保已安装 Anaconda 或 Miniconda)
    $ conda create -n ragflow python=3.11.0
    $ conda activate ragflow
    $ pip install -r requirements.txt

    如果cuda > 12.0,需额外执行以下命令:

    $ pip uninstall -y onnxruntime-gpu
    $ pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/
    1. 副本脚本和配置环境变量
    $ cp docker/entrypoint.sh .
    $ vi entrypoint.sh

    使用以下获取命令python路径及ragflow项目路径:

    $ which python
    $ pwd

    将上述which python的输出作为PY的值,将pwd的输出作为PYTHONPATH的值。

    LD_LIBRARY_PATH如果环境已经配置好,可以注释掉。

    # 此处配置需要按照实际情况调整,两个 export 为新增配置
    PY=${PY}
    export PYTHONPATH=${PYTHONPATH}
    # 可选:添加 Hugging Face 镜像
    export HF_ENDPOINT=https://hf-mirror.com
    1. 基础服务
    $ cd docker
    $ docker compose -f docker-compose-base.yml up -d
    1. 检查配置文件确保docker/.env中的配置与conf/service_conf.yaml中的配置一致,service_conf.yaml中相关服务的IP与端口应该修改成本机IP地址及容器映射出来的端口。

    2. 启动服务

    $ chmod +x ./entrypoint.sh
    $ bash ./entrypoint.sh
    1. 启动WebUI服务
    $ cd web
    $ npm install --registry=https://registry.npmmirror.com --force
    $ vim .umirc.ts
    # 修改proxy.target为http://127.0.0.1:9380
    $ npm run dev
    1. 部署WebUI服务
    $ cd web
    $ npm install --registry=https://registry.npmmirror.com --force
    $ umi build
    $ mkdir -p /ragflow/web
    $ cp -r dist /ragflow/web
    $ apt install nginx -y
    $ cp ../docker/nginx/proxy.conf /etc/nginx
    $ cp ../docker/nginx/nginx.conf /etc/nginx
    $ cp ../docker/nginx/ragflow.conf /etc/nginx/conf.d
    $ systemctl start nginx

0个回复

  • 龙族们都在等待回复

提供中小企业建站高端正版精品系统

正品模板 购买协议