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. 其它参考官网
相关推荐
梅名智6 小时前
IOS 蓝牙连接
macos·ios·cocoa
帅次20 小时前
Objective-C面向对象编程:类、对象、方法详解(保姆级教程)
flutter·macos·ios·objective-c·iphone·swift·safari
fengyun289120 小时前
fcpx音视频剪辑编辑 Final Cut Pro X(Mac电脑)
macos·mac
fengyun289121 小时前
Mac电脑 卸载工具 App Cleaner
macos
aerror1 天前
Xbox One 控制器转换为 macOS HID 设备的工作原理分析
macos·xbox
晴风向上1 天前
mac mini m4安装node.js@16以下版本方法
macos·node.js
JPCstorm1 天前
Mac homebrew 安装教程
macos
秋窗71 天前
Mac 部署Latex OCR并优化体验(打包成App并支持全局快捷键)
macos·ocr·latex
FreeBuf_1 天前
朝鲜APT组织使用Nim语言恶意软件对macOS发起隐秘Web3与加密货币攻击
macos·web3·策略模式
Digitally1 天前
如何将信息从 iPhone 同步到Mac(完整步骤和示意图)
macos·ios·iphone