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. 其它参考官网
相关推荐
aini_lovee2 小时前
寻找 MAC 协议的 MATLAB 仿真
开发语言·macos·matlab
2501_9151063212 小时前
最新版本iOS系统设备管理功能全面指南
android·macos·ios·小程序·uni-app·cocoa·iphone
2501_9159184113 小时前
iOS 性能监控 运行时指标与系统行为的多工具协同方案
android·macos·ios·小程序·uni-app·cocoa·iphone
TheNextByte113 小时前
适用于Windows和Mac电脑的Android文件传输工具
windows·macos·电脑
Orange裴14 小时前
Kali linux2025.3 安装nessus(Mac M4芯片)
linux·运维·macos·kali linux
通域14 小时前
MacOS Ventura EasyConnect 安装提示 “正在等待其他安装完成“
macos
Digitally15 小时前
5种将iPhone同步到Mac/MacBook的方法
macos·ios·iphone
Digitally15 小时前
7种在iPhone和Mac之间传输文件的最佳方法
macos·ios·iphone
linweidong1 天前
实战救火型 从 500MB 降到 50MB:高频业务场景下的 iOS 内存急救与避坑指南
macos·ios·objective-c·cocoa·ios面试·nstimer·ios面经