macos下 ragflow二次开发环境搭建

  1. 参考官网链接
    https://ragflow.io/docs/dev/launch_ragflow_from_source
  2. 虚拟环境
bash 复制代码
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
# if not pipx, please install it at first
pip3 install pipx

pipx install uv
uv sync --python 3.10 --all-extras 
  1. 安装 elk, redis, mysql等docker
bash 复制代码
docker compose -f docker/docker-compose-base.yml up -d
  1. .env配置
    将 .env中主机指向docker host主机的IP
    去掉macos=1的注释
  2. service_conf.yaml.template配置
    将5个资源节点的host指向docker host主机的IP,直接写IP地址
    如:
    mysql:
    name: ' M Y S Q L D B N A M E : − r a g f l o w ′ u s e r : ′ {MYSQL_DBNAME:-rag_flow}' user: ' MYSQLDBNAME:−ragflow′user:′{MYSQL_USER:-root}'
    password: '${MYSQL_PASSWORD:-infini_rag_flow}'
    host: '101.15.113.113'
    port: 5455
  3. pyprojct.toml修改
    因为macos下 torch包与linux要求不同。
bash 复制代码
 	  "xgboost==1.6.0", # 原始1.5.0
 	  "debugpy>=1.8.13",
    "threadpoolctl>=3.6.0", //增加

    [project.optional-dependencies]
full = [
    "bcembedding==0.1.5",
    "fastembed>=0.3.6,<0.4.0; sys_platform == 'darwin' or platform_machine != 'x86_64'",
    "fastembed-gpu>=0.3.6,<0.4.0; sys_platform != 'darwin' and platform_machine == 'x86_64'",
    "flagembedding==1.2.10",
    "torch>=2.0.0,<2.2.2; sys_platform == 'darwin' or platform_machine != 'x86_64'",
    "torch>=2.4.0,<2.5.1; sys_platform != 'darwin' and platform_machine == 'x86_64'",
    "transformers>=4.35.0,<5.0.0"
]
  1. 安装其它包,避免报错 Fatal Python error: Segmentation fault
bash 复制代码
source .venv/bin/activate
brew install libjemalloc
pip3 install aiohttp==3.11.13
pip3 install google-cloud-aiplatform==1.64.0
pip3 install akracer==0.0.13
  1. 修改 docker/entrypoint.sh
    因为macos下不是.so动态库
bash 复制代码
function task_exe() {
   local consumer_id="$1"
   local host_id="$2"
   JEMALLOC_PATH="$(pkg-config --variable=libdir jemalloc)/libjemalloc.2.dylib"
   #JEMALLOC_PATH="$(pkg-config --variable=libdir jemalloc)/libjemalloc.so"
   while true; do
       #LD_PRELOAD="$JEMALLOC_PATH" \
       DYLD_INSERT_LIBRARIES "$JEMALLOC_PATH" \
       "$PY" rag/svr/task_executor.py "${host_id}_${consumer_id}"
   done
}
  1. vscode 修改 lanuch.json
    新增 .vscode/launch.json
bash 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: ragflow_server",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/api/ragflow_server.py",
            "justMyCode": true,
            "cwd": "${workspaceFolder}", // 设置工作目录为项目根目录
            "console": "integratedTerminal",
            "env": {
                "HF_ENDPOINT": "https://hf-mirror.com",
                "PYTHONPATH": "${workspaceFolder}",
                "VIRTUAL_ENV": "${workspaceFolder}/.venv",  // 设定虚拟环境路径
                "PATH": "${workspaceFolder}/.venv/bin:${env:PATH}",  // 将虚拟环境的 bin 目录添加到 PATH
            },
            "envFile": "${workspaceFolder}/docker/.env",
            "args": []
        },
        {
            "name": "Python: task_executor",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/rag/svr/task_executor.py",
            "justMyCode": true,
            "cwd": "${workspaceFolder}", // 设置工作目录为项目根目录
            "console": "integratedTerminal",
            "env": {
                "HF_ENDPOINT": "https://hf-mirror.com",
                "PYTHONPATH": "${workspaceFolder}",
                "VIRTUAL_ENV": "${workspaceFolder}/.venv",  // 设定虚拟环境路径
                "PATH": "${workspaceFolder}/.venv/bin:${env:PATH}",  // 将虚拟环境的 bin 目录添加到 PATH
                //"LD_PRELOAD": "$(pkg-config --variable=libdir jemalloc)/libjemalloc.so", // linux
                "DYLD_INSERT_LIBRARIES": "/usr/local/Cellar/jemalloc/5.3.0/lib/libjemalloc.2.dylib", // macos
            },
            "envFile": "${workspaceFolder}/docker/.env",
            "args": []
        }
    ]}
  1. 其它参考官网
相关推荐
学渣676563 小时前
Zsh + iTerm2搭配使用教学,非常舒服,macOS
macos
恋猫de小郭6 小时前
Compose Multiplatform iOS 稳定版发布:可用于生产环境,并支持 hotload
android·flutter·macos·ios·kotlin·cocoa
ElenaYu8 小时前
homebrew安装配置Python(MAC版)
开发语言·python·macos
风吹一夏v10 小时前
Mac 使用 Charles代理生成https服务
macos·https·charles
Mr_sun.14 小时前
Mac中Docker下载与安装
java·macos·docker
:-)1 天前
macOS上管理多个Node.js版本
macos·node.js
安和昂1 天前
【iOS】 方法交换
macos·ios·cocoa
ElenaYu2 天前
使用Homebrew下载配置git和连接GitHub(Mac版)
git·macos·github
jtymyxmz2 天前
mac m2 安装 hbase
macos·hbase·homebrew
猪哥-嵌入式2 天前
MacOS+VSCODE 安装esp-adf详细流程
vscode·macos