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. 其它参考官网
相关推荐
元Y亨H4 天前
MacBook Air 开发神器:IDEA 与 PyCharm 极简安装及环境配置
macos
yuanyxh5 天前
macOS 应用 - 纯对话生成
前端·macos·ai编程
AI创界者7 天前
PilotTTS 一键整合包(Win/Mac):8G 显存畅跑,实测解锁情绪与副语言的精准控制
人工智能·macos·aigc·音视频
AirDroid_cn7 天前
系统终端与iTerm2字体看起来不一样?macOS Sequoia统一渲染指南
macos
JiaWen技术圈7 天前
2026 年的 macOS 磁盘清理方法
macos
lichong9517 天前
让AI自己用电脑!Cua:后台操作鼠标键盘,Mac/Windows/Linux全支持
人工智能·macos·ai·计算机外设·agent·提示词
A尘埃7 天前
批处理命令(Linux/Mac、Windows项目启动脚本)
linux·windows·macos
他们都不看好你,偏偏你最不争气8 天前
【iOS】Runtime - Part 2 && 消息发送:缓存、查找与转发
macos·ios·objective-c·cocoa
Deepzz8 天前
macOS 上调教第三方鼠标的一些经验:从滚动顺滑到输入法自动切换
macos·swift·鼠标