赞
踩
RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。
检索流程
知识加载
Quality in, quality out
基于模板的文本切片
有理有据、最大程度降低幻觉(hallucination)
兼容各类异构数据源
全程无忧、自动化的 RAG 工作流
1.到手一个全新的Ubuntu系统,从零开始搭建,使用MobaXterm来远程Ubuntu系统进行操作。
2.更新本地包列表:apt-get update
;升级已安装的软件包到最新版本:apt-get upgrade
在Ubuntu系统上安装conda、Python、git和pip的详细步骤如下:
Conda是一个开源的包、依赖和环境管理器,用于安装多个版本的软件包及其依赖,并在它们之间轻松切换。以下是安装conda的步骤:
# 下载最新镜像源
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
注意:由于无法直接获取当前最新版本的URL,请访问清华大学开源软件镜像站
由于清华镜像站安装时出错了,所以换了源下载下来。
下载成功的源地址如下:
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
bash Anaconda3-2024.06-1-Linux-x86_64.sh
source ~/.bashrc
conda --version
来验证conda
是否已成功安装。Ubuntu系统通常已经预装了Python3。但如果你需要安装特定版本的Python3或确认是否已安装,可以按照以下步骤操作:
1.检查Python3版本:
python3 --version
来检查已安装的Python3版本。2.安装Python(如果未安装):
apt-get install python3
。apt-get install git
。git --version
来验证git是否已成功安装。pip是Python的包安装程序,用于安装和管理Python包。Ubuntu系统通常已经预装了pip。但如果你需要安装或更新pip,可以按照以下步骤操作:
apt-get install python3-pip
。pip3 install --upgrade pip3
。pip3 --version
来验证pip是否已成功安装。通过以上步骤,可以在Ubuntu系统上成功安装conda、Python、git和pip。这些工具将帮助你更有效地进行软件开发和版本控制。
git clone https://github.com/infiniflow/ragflow.git
cd ragflow
为了避免依赖冲突,建议为Ragflow创建一个独立的Python虚拟环境。使用conda来创建。
conda create -n ragflow python=3.12.4
conda activate ragflow
accelerate==0.27.2 aiohttp==3.9.5 aiosignal==1.3.1 annotated-types==0.6.0 anyio==4.3.0 argon2-cffi==23.1.0 argon2-cffi-bindings==21.2.0 Aspose.Slides==24.2.0 attrs==23.2.0 blinker==1.7.0 cachelib==0.12.0 cachetools==5.3.3 certifi==2024.2.2 cffi==1.16.0 charset-normalizer==3.3.2 click==8.1.7 coloredlogs==15.0.1 cryptography==42.0.5 dashscope==1.14.1 datasets==2.17.1 datrie==0.8.2 demjson3==3.0.6 dill==0.3.8 distro==1.9.0 elastic-transport==8.12.0 elasticsearch==8.12.1 elasticsearch-dsl==8.12.0 et-xmlfile==1.1.0 filelock==3.13.1 fastembed==0.2.6 FlagEmbedding==1.2.5 Flask==3.0.2 Flask-Cors==4.0.0 Flask-Login==0.6.3 Flask-Session==0.6.0 flatbuffers==23.5.26 frozenlist==1.4.1 fsspec==2023.10.0 h11==0.14.0 hanziconv==0.3.2 httpcore==1.0.4 httpx==0.27.0 huggingface-hub==0.20.3 humanfriendly==10.0 idna==3.6 install==1.3.5 itsdangerous==2.1.2 Jinja2==3.1.3 joblib==1.3.2 lxml==5.1.0 MarkupSafe==2.1.5 minio==7.2.4 mpmath==1.3.0 multidict==6.0.5 multiprocess==0.70.16 networkx==3.2.1 nltk==3.8.1 numpy==1.26.4 nvidia-cublas-cu12==12.1.3.1 nvidia-cuda-cupti-cu12==12.1.105 nvidia-cuda-nvrtc-cu12==12.1.105 nvidia-cuda-runtime-cu12==12.1.105 nvidia-cudnn-cu12==8.9.2.26 nvidia-cufft-cu12==11.0.2.54 nvidia-curand-cu12==10.3.2.106 nvidia-cusolver-cu12==11.4.5.107 nvidia-cusparse-cu12==12.1.0.106 nvidia-nccl-cu12==2.19.3 nvidia-nvjitlink-cu12==12.3.101 nvidia-nvtx-cu12==12.1.105 ollama==0.1.9 onnxruntime-gpu==1.17.1 openai==1.12.0 opencv-python==4.9.0.80 openpyxl==3.1.2 packaging==23.2 pandas==2.2.1 pdfminer.six==20221105 pdfplumber==0.10.4 peewee==3.17.1 pillow==10.3.0 protobuf==4.25.3 psutil==5.9.8 pyarrow==15.0.0 pyarrow-hotfix==0.6 pyclipper==1.3.0.post5 pycparser==2.21 pycryptodome pycryptodome-test-vectors pycryptodomex pydantic==2.6.2 pydantic_core==2.16.3 PyJWT==2.8.0 PyMySQL==1.1.1 PyPDF2==3.0.1 pypdfium2==4.27.0 python-dateutil==2.8.2 python-docx==1.1.0 python-dotenv==1.0.1 python-pptx==0.6.23 PyYAML==6.0.1 redis==5.0.3 regex==2023.12.25 requests==2.31.0 ruamel.yaml==0.18.6 ruamel.yaml.clib==0.2.8 safetensors==0.4.2 scikit-learn==1.4.1.post1 scipy==1.12.0 sentence-transformers==2.4.0 shapely==2.0.3 six==1.16.0 sniffio==1.3.1 StrEnum==0.4.15 sympy==1.12 threadpoolctl==3.3.0 tika==2.6.0 tiktoken==0.6.0 tokenizers==0.15.2 torch==2.2.1 tqdm==4.66.2 transformers==4.38.1 triton==2.2.0 typing_extensions==4.10.0 tzdata==2024.1 urllib3==2.2.1 Werkzeug==3.0.3 xgboost==2.0.3 XlsxWriter==3.2.0 xpinyin==0.7.6 xxhash==3.4.1 yarl==1.9.4 zhipuai==2.0.1 BCEmbedding loguru==0.7.2 umap-learn fasttext==0.9.2 volcengine==1.0.141 readability-lxml==0.8.1 html_text==0.6.2 selenium==4.21.0 webdriver-manager==4.0.1 cn2an==0.5.22 roman-numbers==1.0.2 word2number==1.1 markdown==3.6 mistralai==0.4.2 boto3==1.34.140 duckduckgo_search==6.1.9 google-generativeai==0.7.2 groq==0.9.0
pip3 install -r requirements.txt
注意:如果遇到依赖冲突,可能需要手动解决,如调整包版本或卸载冲突的包。
这里使用ragflow中原来的requirements.txt文件,总共要安装151个依赖,由于我安装的python3版本 = 3.12.4,在安装到Aspose.Slides == 24.2.0 时,会报错,这个依赖的版本支持 python3 >= 3.5,< 3.11,所以安装不成功
解决方法:
将Aspose.Slides == 24.2.0后面的版本修改为 Aspose.Slides==24.6.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/
$ 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
$ cd docker
$ docker compose -f docker-compose-base.yml up -d
$ chmod +x ./entrypoint.sh
$ bash ./entrypoint.sh
$ cd web
$ npm install --registry=https://registry.npmmirror.com --force
$ vim .umirc.ts
# 修改proxy.target为http://127.0.0.1:9380
$ npm run dev
$ 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。