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. 其它参考官网
相关推荐
Lvan的前端笔记8 小时前
python:Mac 系统 uv 完整安装+入门实战
python·macos·uv
pop_xiaoli10 小时前
【iOS】离屏渲染
macos·ios·objective-c·cocoa
鸠摩智首席音效师10 小时前
如何在 macOS 上创建 React.js 应用程序 ?
前端·react.js·macos
colman wang2 天前
Git指令(Mac)
git·macos
酷虎软件3 天前
分享链接+视频音频文案提取 API 接口文档
ide·macos·xcode
Hyyy3 天前
为什么 macOS 应用一换 Bundle ID,之前授予的权限就全失效了?
macos·electron
p似笑非笑3 天前
实战验证——把 SDK 塞进一个 macOS 原生 Agent 应用
macos
p似笑非笑3 天前
在Mac上完美配置VSCode的C/C++开发环境(GCC/G++详细教程)
c语言·vscode·macos
韦胖漫谈IT3 天前
Apple M3 Max 与 Apple M5 Max 对比:本地算力的新旧王者之争
网络·人工智能·macos·transformer
greasyfork4 天前
多种数据库管理混乱?Navicat Premium 17 for Mac 统一解决
数据库·mysql·macos·mac