Mac 上开发 Ragflow

说明

在「Mac 上编译 Ragflow」的文章中只是简单的说到可以通过 Remote Development 来进入容器,可以通过修改Dockerfile的方式,增加映射卷的方式来开发。为什么要映射卷呢?这样可以保持 ragflow 原有的目录结构,同时保持 git 的代码管理,文件在卷中也不用担心因容器销毁等导致修改代码丢失的情况。

我今天完整的走通了开发的过程,重新整理开发部分的文档。为了保持完整,保留了 Remote Development 的部分说明。注意,前提是已经在 Mac 上编译完 ragflow 的 Dockerfile,并且可以正常运行。

开发

Remote Development

VS Code 安装 Remote Development 插件。它包含多个插件,其中 Dev Containters 可以连接到 Docker 容器作为开发环境,这样的好处是开发环境与部署环境一致。

在这里插入图片描述

当安装好 Remote Development,就可以通过 Remote Explorer 查看已经安装的容器,并通过点击对应容器的箭头(注意下图红色框的部分)。

在这里插入图片描述

进入到容器内部,选对应的目录,就可以打开 /ragflow,这样就能看到实际的代码了。

在这里插入图片描述

修改Dockerfile

主要是屏蔽编译过程和 probuction 步骤,增加 /raflow 卷的映射。

# base stage
FROM docker.m.daocloud.io/ubuntu:22.04 AS base
USER root
SHELL ["/bin/bash", "-c"]

ARG NEED_MIRROR=0
ARG LIGHTEN=0
ENV LIGHTEN=${LIGHTEN}

WORKDIR /ragflow

# Copy models downloaded via download_deps.py
RUN mkdir -p /ragflow/rag/res/deepdoc /root/.ragflow
RUN --mount=type=bind,from=infiniflow/ragflow_deps:latest,source=/huggingface.co,target=/huggingface.co \
    cp /huggingface.co/InfiniFlow/huqie/huqie.txt.trie /ragflow/rag/res/ && \
    tar --exclude='.*' -cf - \
        /huggingface.co/InfiniFlow/text_concat_xgb_v1.0 \
        /huggingface.co/InfiniFlow/deepdoc \
        | tar -xf - --strip-components=3 -C /ragflow/rag/res/deepdoc 
RUN --mount=type=bind,from=infiniflow/ragflow_deps:latest,source=/huggingface.co,target=/huggingface.co \
    if [ "$LIGHTEN" != "1" ]; then \
        (tar -cf - \
            /huggingface.co/BAAI/bge-large-zh-v1.5 \
            /huggingface.co/BAAI/bge-reranker-v2-m3 \
            /huggingface.co/maidalun1020/bce-embedding-base_v1 \
            /huggingface.co/maidalun1020/bce-reranker-base_v1 \
            | tar -xf - --strip-components=2 -C /root/.ragflow) \
    fi

# https://github.com/chrismattmann/tika-python
# This is the only way to run python-tika without internet access. Without this set, the default is to check the tika version and pull latest every time from Apache.
RUN --mount=type=bind,from=infiniflow/ragflow_deps:latest,source=/,target=/deps \
    cp -r /deps/nltk_data /root/ && \
    cp /deps/tika-server-standard-3.0.0.jar /deps/tika-server-standard-3.0.0.jar.md5 /ragflow/ && \
    cp /deps/cl100k_base.tiktoken /ragflow/9b5ad71b2ce5302211f9c61530b329a4922fc6a4

ENV TIKA_SERVER_JAR="file:///ragflow/tika-server-standard-3.0.0.jar"
ENV DEBIAN_FRONTEND=noninteractive

# Setup apt
# Python package and implicit dependencies:
# opencv-python: libglib2.0-0 libglx-mesa0 libgl1
# aspose-slides: pkg-config libicu-dev libgdiplus         libssl1.1_1.1.1f-1ubuntu2_amd64.deb
# python-pptx:   default-jdk                              tika-server-standard-3.0.0.jar
# selenium:      libatk-bridge2.0-0                       chrome-linux64-121-0-6167-85
# Building C extensions: libpython3-dev libgtk-4-1 libnss3 xdg-utils libgbm-dev
RUN --mount=type=cache,id=ragflow_apt,target=/var/cache/apt,sharing=locked \
    if [ "$NEED_MIRRO
### 安装和配置RAGFLOW框架 #### 环境准备 对于配备Apple M3 Pro芯片、18GB内存并运行macOS Sonoma 14.6.1的MacBook Pro,在此环境下安装Docker和Docker Compose是必要的前置条件[^1]。 #### Docker与Docker Compose安装 确保已成功安装Docker Desktop应用,该应用程序集成了Docker引擎以及Compose功能。通过官方渠道下载适用于苹果硅架构(ARM64)版本的Docker Desktop,并按照提示完成整个安装流程。启动Docker Desktop之后,验证命令行工具是否正常工作: ```bash docker --version docker-compose --version ``` 上述命令应当返回各自软件的具体版本号,表明环境搭建完毕。 #### 获取RAGFlow源码 前往[RAGFlow GitHub仓库](https://github.com/example/RAGFlow),克隆项目到本地机器: ```bash git clone https://github.com/example/RAGFlow.git ragflow-0.14.1 cd ragflow-0.14.1 ``` 注意替换URL为实际地址,这里假设`example`作为占位符。 #### 配置文件调整 进入刚拉取下来的目录内寻找名为`.env.example`的文件,复制一份重命名为`.env`: ```bash cp .env.example .env ``` 编辑新创建出来的`.env`文档来适应个人开发需求,比如设置数据库连接字符串或其他服务参数等。 #### 构建镜像和服务启动 利用Docker Compose构建所需容器化组件并将它们一同启动起来: ```bash docker-compose up -d --build ``` 这一步骤会读取当前路径下的`docker-compose.yml`定义好的各项服务描述信息,自动处理依赖关系,最终实现一键部署的效果。 #### 测试访问 打开浏览器输入指定端口对应的网址即可查看前端界面;如果涉及API接口调用,则可以借助Postman这类客户端发起请求测试后端逻辑是否正确响应数据。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值