feat(deepdata): 引入修改密码、文件预览组件与清洗算子增强,deepflow 改名为 deep-flow

本次同步 09-12 至 09-28 的代码变更,主要内容:

新增功能
- 修改密码:后端新增 ChangePasswordRequest DTO 与UserController/UserService
  对应接口,前端新增 ChangePasswordDialog 并在 Header 接入入口
- 文件预览组件重构:file-preview 目录拆分出 VideoPreview(支持 blobUrl 直传)、
  ImagePreview、AudioPreview,index.tsx 统一调度各类型预览器
- 新增 my_ops 算子模块:markitdown_parser、mineru_pdf_parser、text_quality_evaluator
- 新增 tools/minio-file-server MinIO 文件服务

功能增强
- 数据清洗:cleaning_task_service/scheduler/routes 重构,
  data_juicer_executor 与 wrapper 增强,OperatorTable/LogsTable/TaskDetail 同步调整
- 数据标注:annotation sync.py、project.py 接口与schema 更新
- 数据采集、算子市场、首页与菜单路由相关页面调整
- DataJuicer 算子接入(useOperatorOperations、dj_ops_schema)

结构调整
- deepflow/ 更名为 deep-flow/(419 个文件重命名)
- 新增 helm 部署编排、GitHub Actions 之外的自建镜像构建脚本

未纳入本次提交
- scripts-backup/、runtime/python-executor-backup/、components_backup/(备份目录)
- *.backup*、__pycache__ 产物
- zh_core_web_sm-3.8.0-py3-none-any.whl(46MB 构建产物)
- DataX/(内嵌独立仓库,远程亦未收录其源码)
This commit is contained in:
沃巴蒂
2026-10-03 22:44:56 +08:00
parent cbb1048e18
commit ff22ed3a8b
1156 changed files with 129912 additions and 21716 deletions
+23 -5
View File
@@ -1,10 +1,12 @@
# ==============================================================================
# Stage 1: DataX Builder
# ==============================================================================
FROM maven:3-eclipse-temurin-8 AS datax-builder
FROM maven:3-eclipse-temurin-8-alpine AS datax-builder
# 安装 git
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
# 仅安装必要的 git
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
RUN apk update && apk add --no-cache git
COPY DataX/ /DataX/
COPY runtime/datax/ DataX/
@@ -83,7 +85,8 @@ ENV PATH="$PATH:$JAVA_HOME/bin"
WORKDIR /opt/runtime
COPY scripts/images/runtime-ray/zh_core_web_sm-3.8.0-py3-none-any.whl /tmp/
COPY scripts/images/common/nltk-data/ /tmp/nltk-data/
COPY scripts/images/runtime-ray/nltk_data /root/nltk_data
ENV UV_LINK_MODE=copy
@@ -91,9 +94,24 @@ ENV UV_LINK_MODE=copy
RUN --mount=type=cache,target=/root/.cache/uv \
uv pip install -e . --system \
&& uv pip install -r /opt/runtime/deepdata/ops/pyproject.toml --system \
&& uv pip install "ray[default]>=2.9.0" --system \
&& uv pip install "py-data-juicer[generic,nlp]==1.4.4" --system \
&& uv pip install "ray[default]==2.47.1" --system \
&& uv pip install "pandas>=2.0.0" --system \
&& uv pip install "pyarrow>=14.0.0" --system \
&& uv pip install "sqlalchemy>=2.0.0" --system \
&& uv pip install "loguru>=0.7.0" --system \
&& uv pip install "jsonargparse>=4.27.0" --system \
&& uv pip install "pyyaml>=6.0" --system \
&& uv pip install "pypdf>=3.17.0" --system \
&& uv pip install "python-docx>=1.1.0" --system \
&& uv pip install "python-pptx>=0.6.23" --system \
&& uv pip install "setuptools<75.0" --system \
&& uv pip install \
"opentelemetry-semantic-conventions>=0.48b0" \
"opentelemetry-exporter-prometheus>=0.48b0" \
--system \
&& uv pip install pyarrow pandas spacy nltk --system \
&& uv pip install /tmp/zh_core_web_sm-3.8.0-py3-none-any.whl --system \
&& python -c "import zipfile, os; os.makedirs('/usr/local/nltk_data/packages/tokenizers', exist_ok=True); os.makedirs('/usr/local/nltk_data/packages/taggers', exist_ok=True); zipfile.ZipFile('/tmp/nltk-data/punkt_tab.zip').extractall('/usr/local/nltk_data/packages/tokenizers'); zipfile.ZipFile('/tmp/nltk-data/averaged_perceptron_tagger_eng.zip').extractall('/usr/local/nltk_data/packages/taggers')" \
&& echo "/usr/local/lib/ops/site-packages" > /usr/local/lib/python3.11/site-packages/ops.pth
+10 -7
View File
@@ -1,7 +1,7 @@
#!/bin/bash
set -e
# 1. 初始化环境 (原有的逻辑:注入用户自定义算子)
# 1. 初始化环境
if [ -d "/opt/runtime/user" ]; then
cp -r /opt/runtime/user/* /opt/runtime/deepdata/ops/user 2>/dev/null || true
fi
@@ -9,27 +9,30 @@ fi
# 2. 根据 RAY_MODE 环境变量决定启动模式
if [ "${RAY_MODE}" = "head" ]; then
echo "🚀 Starting Ray Head..."
# ✅ 修复 Head 分支:
# Ray 2.x 已废弃 CLI 参数 --redis-address,改为自动读取环境变量 RAY_REDIS_ADDRESS。
# 只要确保 docker-compose.yml 中配置了 RAY_REDIS_ADDRESS 环境变量即可。
TOTAL_MEM_MB=${TOTAL_MEM_MB:-4096}
OBJECT_STORE_MEM_MB=$((TOTAL_MEM_MB / 2))
exec ray start --head \
--port=${RAY_HEAD_PORT:-6379} \
--redis-password=${RAY_REDIS_PASSWORD} \
--dashboard-host=0.0.0.0 \
--num-cpus=${NUM_CPUS:-0} \
--object-store-memory=${OBJECT_STORE_MEM_MB}000000 \
--block
elif [ "${RAY_MODE}" = "worker" ]; then
echo "🚀 Starting Ray Worker connecting to ${RAY_HEAD_ADDRESS}..."
# ✅ 修复 Worker 分支:
# Ray 2.x 移除了 --worker 参数。只要不传 --head,默认即为 Worker 模式。
TOTAL_MEM_MB=${TOTAL_MEM_MB:-16384}
OBJECT_STORE_MEM_MB=$((TOTAL_MEM_MB / 2))
exec ray start \
--address=${RAY_HEAD_ADDRESS} \
--redis-password=${RAY_REDIS_PASSWORD} \
--num-cpus=${NUM_CPUS:-4} \
--memory=${TOTAL_MEM_MB}000000 \
--object-store-memory=${OBJECT_STORE_MEM_MB}000000 \
--block
else
echo "🔧 Starting Runtime (Legacy Mode / Job Execution)..."
# 默认行为:执行 docker-compose.yml command 传入的指令,或 Ray Job 的入口点
# 默认行为:执行 docker-compose.yml command 传入的指令
exec "$@"
fi