当前位置: 首页 > news >正文

macos下 ragflow二次开发环境搭建

  1. 参考官网链接
    https://ragflow.io/docs/dev/launch_ragflow_from_source
  2. 虚拟环境
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
# if not pipx, please install it at first
pip3 install pipxpipx install uv
uv sync --python 3.10 --all-extras 
  1. 安装 elk, redis, mysql等docker
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:ragflowuser:{MYSQL_USER:-root}’
    password: ‘${MYSQL_PASSWORD:-infini_rag_flow}’
    host: ‘101.15.113.113’
    port: 5455
  3. pyprojct.toml修改
    因为macos下 torch包与linux要求不同。
 	  "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
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动态库
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
{"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. 其它参考官网

http://www.mrgr.cn/news/97754.html

相关文章:

  • ABAP小白开发操作手册+(十)验证和替代——下
  • js异步机制
  • OSPF基础入门篇②:OSPF邻居建立篇-网络设备的“社交礼仪“
  • 程序代码篇---时间复杂度空间复杂度
  • 如何在Dify中安装运行pandas、numpy库(离线、在线均支持,可提供远程指导)
  • OminiAdapt:学习跨任务不变性,实现稳健且环境-觉察的机器人操作
  • MCP协议介绍
  • Spring Security 的核心配置项详解,涵盖认证、授权、过滤器链、HTTP安全设置等关键配置,结合 Spring Boot 3.x 版本最佳实践
  • ruby超高级语法
  • DDoS防御与流量优化
  • Java 开发中主流安全框架的详细对比,涵盖 认证、授权、加密、安全策略 等核心功能,帮助开发者根据需求选择合适的方案
  • [C++面试] 初始化相关面试点深究
  • 【C++】 —— 笔试刷题day_13
  • 解锁ChatGPT-4o文生图潜力:精选提示词收集整理更新中
  • LangChain4j(7):Springboot集成LangChain4j实现知识库RAG
  • dify文本生成图片
  • 探索 Shell 中的扩展通配符:从 Bash 到 Zsh
  • Linux: 线程控制
  • 嵌入式系统中如何构建事件响应架构
  • Windows 图形显示驱动开发-WDDM 2.0功能_分配用法跟踪