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
+69 -79
View File
@@ -1,79 +1,69 @@
# 镜像仓库与版本
REGISTRY=
VERSION=latest
# 数据库核心密码【必须修改】
DB_PASSWORD=Apescale123
# JWT配置 (必须 >= 32 字符,即 256 bits)
JWT_SECRET=ApescaleSuperSecureJwtSecretKey2026v1
DEEPDATA_JWT_ENABLE=false
# 日志轮转配置
LOG_ROTATION_MAX_SIZE=100MB
LOG_ROTATION_BACKUP_COUNT=30
LOG_LEVEL=INFO
# 日志磁盘监控
LOG_PVC_MONITOR_ENABLED=true
LOG_PVC_MONITOR_PATH=/var/log/deepdata
LOG_PVC_MONITOR_THRESHOLD=0.9
LOG_PVC_MONITOR_INTERVAL_SECONDS=300
LOG_PVC_MONITOR_DELETE_BATCH_SIZE=10
LOG_PVC_MONITOR_FILE_SUFFIXES=log,out,err
# Milvus向量库配置(启用milvus profile生效)
MILVUS_URI=http://milvus:19530
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=Minio@Passw0rd
# LabelStudio配置
LABEL_STUDIO_USERNAME=admin@demo.com
LABEL_STUDIO_PASSWORD=LabelStudio@123
LABEL_STUDIO_USER_TOKEN=50d54c9fa842a1cd8e26c55efa7113db22870c47
LABEL_STUDIO_HOST=http://labelstudio.ailab.yilise.com
LABEL_STUDIO_BASE_URL=http://label-studio:8000
# MinerU额外启动参数
EXTRA_ARGS=
MINIO_ACCESS_KEY_ID=minioadmin
MINIO_SECRET_ACCESS_KEY=Minio@Passw0rd
AWS_REGION=us-east-1
# ==========================================
# Ray 分布式集群配置
# ==========================================
# 1. Redis 密码 (Ray Head 强依赖 Redis)
RAY_REDIS_PASSWORD=ray_redis_secret
RAY_REDIS_ADDRESS=deepdata-ray-redis:6379
# 2. Dashboard 地址 (用于 Client 提交任务,即 job_task_scheduler.py 读取的值)
# 注意:默认值是 K8s 的 svc,这里覆盖为 Compose 服务名
RAY_DASHBOARD_ADDRESS=http://deepdata-ray-head:8265
# 3. Head GCS 地址 (用于 Worker 节点加入集群)
RAY_HEAD_GCS_ADDRESS=deepdata-ray-head:6379
# Ray Head 端口配置
RAY_HEAD_PORT=6379
RAY_DASHBOARD_PORT=8265
RAY_CLIENT_PORT=10001
# Ray Worker 资源配置 (可根据服务器性能调整)
# NUM_CPUS: 每个 Worker 容器分配的 CPU 核数
RAY_WORKER_NUM_CPUS=4
# NUM_GPUS: 如果不需要 GPU 则设为 0
RAY_WORKER_NUM_GPUS=0
ENABLE_RAY_EXECUTION=true
# ==========================================
# Collection Task Execution Mode
# - local: Backend 本地执行 (默认,兼容旧版)
# - runtime: 提交给 Runtime -> Ray 集群执行
# ==========================================
COLLECTION_EXECUTION_MODE=runtime
# 数据库核心密码【必须修改】
DB_PASSWORD=Apescale123
# JWT配置 (必须 >= 32 字符,即 256 bits)
JWT_SECRET=ApescaleSuperSecureJwtSecretKey2026v1
DEEPDATA_JWT_ENABLE=true
# 日志轮转配置
LOG_ROTATION_MAX_SIZE=100MB
LOG_ROTATION_BACKUP_COUNT=30
LOG_LEVEL=INFO
# 日志磁盘监控
LOG_PVC_MONITOR_ENABLED=true
LOG_PVC_MONITOR_PATH=/var/log/deepdata
LOG_PVC_MONITOR_THRESHOLD=0.9
LOG_PVC_MONITOR_INTERVAL_SECONDS=300
LOG_PVC_MONITOR_DELETE_BATCH_SIZE=10
LOG_PVC_MONITOR_FILE_SUFFIXES=log,out,err
# Milvus向量库配置(启用milvus profile生效)
MILVUS_URI=http://milvus:19530
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=Minio@Passw0rd
# LabelStudio配置
LABEL_STUDIO_USERNAME=admin@demo.com
LABEL_STUDIO_PASSWORD=LabelStudio@123
LABEL_STUDIO_USER_TOKEN=50d54c9fa842a1cd8e26c55efa7113db22870c47
LABEL_STUDIO_HOST=http://labelstudio.ailab.ccoop.cc:18585
LABEL_STUDIO_BASE_URL=http://label-studio:8000
# MinerU额外启动参数
EXTRA_ARGS=
MINIO_ACCESS_KEY_ID=minioadmin
MINIO_SECRET_ACCESS_KEY=Minio@Passw0rd
AWS_REGION=us-east-1
# ==========================================
# Ray 分布式集群配置
# ==========================================
RAY_REDIS_PASSWORD=ray_redis_secret
# 内部使用的board地址
RAY_DASHBOARD_ADDRESS=http://deepdata-ray-head:8265
# 内部使用的GCS/head地址
RAY_HEAD_GCS_ADDRESS=deepdata-ray-head:6379
# 宿主机映射的head端口
RAY_HEAD_PORT=6379
# 宿主机映射的dashboard端口
RAY_DASHBOARD_PORT=8267
# 宿主机映射的client端口
RAY_CLIENT_PORT=10002
RAY_WORKER_NUM_CPUS=4
RAY_WORKER_NUM_GPUS=0
ENABLE_RAY_EXECUTION=true
MAX_ACTOR_NUMS=40
NUM_RAY_WORKERS=2
RAY_WORKER_MEMORY_MB=8000
# ==========================================
# Collection Task Execution Mode
# - local: Backend 本地执行 (默认,兼容旧版)
# - runtime: 提交给 Runtime -> Ray 集群执行
# ==========================================
COLLECTION_EXECUTION_MODE=runtime
@@ -1,97 +1,97 @@
# DeepFlow 服务
## 概述
DeepFlow 是一个 LLM 驱动的服务,用于规划和推理任务,支持多种 LLM 提供商。
## 架构
```
runtime/deepflow/
├── conf.yaml # DeepFlow 配置文件
├── .env # 环境变量
└── (其他源代码)
```
## 配置
### 基本配置 (conf.yaml)
```yaml
# 基础模型配置
BASIC_MODEL:
base_url: https://api.example.com/v1
model: "model-name"
api_key: your_api_key
max_retries: 3
verify_ssl: false # 如果使用自签名证书,设为 false
# 推理模型配置(可选)
REASONING_MODEL:
base_url: https://api.example.com/v1
model: "reasoning-model-name"
api_key: your_api_key
max_retries: 3
# 搜索引擎配置(可选)
SEARCH_ENGINE:
engine: tavily
include_domains:
- example.com
- trusted-news.com
exclude_domains:
- spam-site.com
search_depth: "advanced"
include_raw_content: true
include_images: true
include_image_descriptions: true
min_score_threshold: 0.0
max_content_length_per_page: 4000
```
## 支的 LLM 提供商
#### OpenAI
```yaml
BASIC_MODEL:
base_url: https://api.openai.com/v1
model: "gpt-4"
api_key: sk-...
```
#### Ollama (本地部署)
```yaml
BASIC_MODEL:
base_url: "http://localhost:11434/v1"
model: "qwen2:7b"
api_key: "ollama"
verify_ssl: false
```
#### Google AI Studio
```yaml
BASIC_MODEL:
platform: "google_aistudio"
model: "gemini-2.5-flash"
api_key: your_gemini_api_key
```
## 开发
### 添加新的 LLM 提供商
1. 在 `conf.yaml` 添加新的模型配置
2. 实现对应的 API 调用逻辑
3. 测试连接和推理
### 自定义提示词模板
1. 创建提示词模板文件
2. 在 `conf.yaml` 引用模板
3. 测试提示词效果
## 文档
- [DeepFlow 模块说明](../../deepflow/README_zh.md)
## 相关链接
- [运行时 README](../README.md)
# DeepFlow 服务
## 概述
DeepFlow 是一个 LLM 驱动的服务,用于规划和推理任务,支持多种 LLM 提供商。
## 架构
```
runtime/deep-flow/
├── conf.yaml # DeepFlow 配置文件
├── .env # 环境变量
└── (其他源代码)
```
## 配置
### 基本配置 (conf.yaml)
```yaml
# 基础模型配置
BASIC_MODEL:
base_url: https://api.example.com/v1
model: "model-name"
api_key: your_api_key
max_retries: 3
verify_ssl: false # 如果使用自签名证书,设为 false
# 推理模型配置(可选)
REASONING_MODEL:
base_url: https://api.example.com/v1
model: "reasoning-model-name"
api_key: your_api_key
max_retries: 3
# 搜索引擎配置(可选)
SEARCH_ENGINE:
engine: tavily
include_domains:
- example.com
- trusted-news.com
exclude_domains:
- spam-site.com
search_depth: "advanced"
include_raw_content: true
include_images: true
include_image_descriptions: true
min_score_threshold: 0.0
max_content_length_per_page: 4000
```
## 支的 LLM 提供商
#### OpenAI
```yaml
BASIC_MODEL:
base_url: https://api.openai.com/v1
model: "gpt-4"
api_key: sk-...
```
#### Ollama (本地部署)
```yaml
BASIC_MODEL:
base_url: "http://localhost:11434/v1"
model: "qwen2:7b"
api_key: "ollama"
verify_ssl: false
```
#### Google AI Studio
```yaml
BASIC_MODEL:
platform: "google_aistudio"
model: "gemini-2.5-flash"
api_key: your_gemini_api_key
```
## 开发
### 添加新的 LLM 提供商
1. 在 `conf.yaml` 添加新的模型配置
2. 实现对应的 API 调用逻辑
3. 测试连接和推理
### 自定义提示词模板
1. 创建提示词模板文件
2. 在 `conf.yaml` 引用模板
3. 测试提示词效果
## 文档
- [DeepFlow 官方文档](https://github.com/ModelEngine-Group/DeepFlow)
## 相关链接
- [运行时 README](../README.md)
@@ -1,97 +1,97 @@
# DeepFlow Service
## Overview
DeepFlow is an LLM-driven service for planning and reasoning tasks, supporting multiple LLM providers.
## Architecture
```
runtime/deepflow/
├── conf.yaml # DeepFlow configuration file
├── .env # Environment variables
└── (other source code)
```
## Configuration
### Basic Configuration (conf.yaml)
```yaml
# Basic model configuration
BASIC_MODEL:
base_url: https://api.example.com/v1
model: "model-name"
api_key: your_api_key
max_retries: 3
verify_ssl: false # Set to false if using self-signed certificates
# Reasoning model configuration (optional)
REASONING_MODEL:
base_url: https://api.example.com/v1
model: "reasoning-model-name"
api_key: your_api_key
max_retries: 3
# Search engine configuration (optional)
SEARCH_ENGINE:
engine: tavily
include_domains:
- example.com
- trusted-news.com
exclude_domains:
- spam-site.com
search_depth: "advanced"
include_raw_content: true
include_images: true
include_image_descriptions: true
min_score_threshold: 0.0
max_content_length_per_page: 4000
```
## Supported LLM Providers
#### OpenAI
```yaml
BASIC_MODEL:
base_url: https://api.openai.com/v1
model: "gpt-4"
api_key: sk-...
```
#### Ollama (Local Deployment)
```yaml
BASIC_MODEL:
base_url: "http://localhost:11434/v1"
model: "qwen2:7b"
api_key: "ollama"
verify_ssl: false
```
#### Google AI Studio
```yaml
BASIC_MODEL:
platform: "google_aistudio"
model: "gemini-2.5-flash"
api_key: your_gemini_api_key
```
## Development
### Adding a New LLM Provider
1. Add new model configuration in `conf.yaml`
2. Implement corresponding API call logic
3. Test connection and inference
### Customizing Prompt Templates
1. Create a prompt template file
2. Reference the template in `conf.yaml`
3. Test prompt effectiveness
## Documentation
- [DeepFlow Module README](../../deepflow/README.md)
## Related Links
- [Runtime README](../README.md)
# DeepFlow Service
## Overview
DeepFlow is an LLM-driven service for planning and reasoning tasks, supporting multiple LLM providers.
## Architecture
```
runtime/deep-flow/
├── conf.yaml # DeepFlow configuration file
├── .env # Environment variables
└── (other source code)
```
## Configuration
### Basic Configuration (conf.yaml)
```yaml
# Basic model configuration
BASIC_MODEL:
base_url: https://api.example.com/v1
model: "model-name"
api_key: your_api_key
max_retries: 3
verify_ssl: false # Set to false if using self-signed certificates
# Reasoning model configuration (optional)
REASONING_MODEL:
base_url: https://api.example.com/v1
model: "reasoning-model-name"
api_key: your_api_key
max_retries: 3
# Search engine configuration (optional)
SEARCH_ENGINE:
engine: tavily
include_domains:
- example.com
- trusted-news.com
exclude_domains:
- spam-site.com
search_depth: "advanced"
include_raw_content: true
include_images: true
include_image_descriptions: true
min_score_threshold: 0.0
max_content_length_per_page: 4000
```
## Supported LLM Providers
#### OpenAI
```yaml
BASIC_MODEL:
base_url: https://api.openai.com/v1
model: "gpt-4"
api_key: sk-...
```
#### Ollama (Local Deployment)
```yaml
BASIC_MODEL:
base_url: "http://localhost:11434/v1"
model: "qwen2:7b"
api_key: "ollama"
verify_ssl: false
```
#### Google AI Studio
```yaml
BASIC_MODEL:
platform: "google_aistudio"
model: "gemini-2.5-flash"
api_key: your_gemini_api_key
```
## Development
### Adding a New LLM Provider
1. Add new model configuration in `conf.yaml`
2. Implement corresponding API call logic
3. Test connection and inference
### Customizing Prompt Templates
1. Create a prompt template file
2. Reference the template in `conf.yaml`
3. Test prompt effectiveness
## Documentation
- [DeepFlow Official Documentation](https://github.com/ModelEngine-Group/DeepFlow)
## Related Links
- [Runtime README](../README.md)
@@ -71,13 +71,13 @@
# max_content_length_per_page: 4000
sandbox:
use: deepflow.community.aio_sandbox:AioSandboxProvider
use: DeepFlow.community.aio_sandbox:AioSandboxProvider
image: enterprise-public-cn-beijing.cr.volces.com/vefaas-public/all-in-one-sandbox:latest
port: 8080
auto_start: true
replicas: 2
container_prefix: deepdata-deepflow-sandbox
# 把 DeepData 的 dataset 卷透进沙箱,Agent 写报告能直接落到 /dataset/deepflow-output
container_prefix: deepdata-DeepFlow-sandbox
# 把 DeepData 的 dataset 卷透进沙箱,Agent 写报告能直接落到 /dataset/DeepFlow-output
mounts:
- host_path: /var/lib/docker/volumes/deepdata-dataset-volume/_data
container_path: /dataset
-104
View File
@@ -1,104 +0,0 @@
# Application Settings
DEBUG=True
APP_ENV=development
# docker build args
NEXT_PUBLIC_API_URL="/deepflow-backend"
AGENT_RECURSION_LIMIT=30
# CORS settings
# Comma-separated list of allowed origins for CORS requests
# Example: ALLOWED_ORIGINS=http://localhost:3000,http://example.com
ALLOWED_ORIGINS=*
# Enable or disable MCP server configuration, the default is false.
# Please enable this feature before securing your front-end and back-end in a managed environment.
# Otherwise, you system could be compromised.
ENABLE_MCP_SERVER_CONFIGURATION=true
# Enable or disable PYTHON_REPL configuration, the default is false.
# Please enable this feature before securing your in a managed environment.
# Otherwise, you system could be compromised.
ENABLE_PYTHON_REPL=false
# Search Engine, Supported values: tavily (recommended), duckduckgo, brave_search, arxiv, searx
SEARCH_API=tavily
TAVILY_API_KEY=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
# SEARX_HOST=xxx # Required only if SEARCH_API is searx.(compatible with both Searx and SearxNG)
# BRAVE_SEARCH_API_KEY=xxx # Required only if SEARCH_API is brave_search
# JINA_API_KEY=jina_xxx # Optional, default is None
# Optional, RAG provider
# RAG_PROVIDER=vikingdb_knowledge_base
# VIKINGDB_KNOWLEDGE_BASE_API_URL="api-knowledgebase.mlp.cn-beijing.volces.com"
# VIKINGDB_KNOWLEDGE_BASE_API_AK="AKxxx"
# VIKINGDB_KNOWLEDGE_BASE_API_SK=""
# VIKINGDB_KNOWLEDGE_BASE_RETRIEVAL_SIZE=15
# RAG_PROVIDER=ragflow
# RAGFLOW_API_URL="http://localhost:9388"
# RAGFLOW_API_KEY="ragflow-xxx"
# RAGFLOW_RETRIEVAL_SIZE=10
# RAGFLOW_CROSS_LANGUAGES=English,Chinese,Spanish,French,German,Japanese,Korean # Optional. To use RAGFlow's cross-language search, please separate each language with a single comma
# RAG_PROVIDER=dify
# DIFY_API_URL="https://api.dify.ai/v1"
# DIFY_API_KEY="dataset-xxx"
# MOI is a hybrid database that mainly serves enterprise users (https://www.matrixorigin.io/matrixone-intelligence)
# RAG_PROVIDER=moi
# MOI_API_URL="https://cluster.matrixonecloud.cn"
# MOI_API_KEY="xxx-xxx-xxx-xxx"
# MOI_RETRIEVAL_SIZE=10
# MOI_LIST_LIMIT=10
# RAG_PROVIDER: milvus (using free milvus instance on zilliz cloud: https://docs.zilliz.com/docs/quick-start )
RAG_PROVIDER=milvus
MILVUS_URI=http://milvus:19530
MILVUS_USER=root
MILVUS_PASSWORD=Milvus
MILVUS_AUTO_LOAD_EXAMPLES=false
MILVUS_COLLECTION=kb_deepdata
MILVUS_EMBEDDING_PROVIDER=dashscope # 或 dashscope,看 DeepData 侧用的哪家
MILVUS_EMBEDDING_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
MILVUS_EMBEDDING_MODEL=text-embedding-v2
MILVUS_EMBEDDING_API_KEY=sk-e653053a9ce049b795682194b91a56c9
# MILVUS_EMBEDDING_PROVIDER=openai # support openai,dashscope
# MILVUS_EMBEDDING_BASE_URL=
# MILVUS_EMBEDDING_MODEL=
# MILVUS_EMBEDDING_API_KEY=
# RAG_PROVIDER: milvus (using milvus lite on Mac or Linux)
# RAG_PROVIDER=milvus
# MILVUS_URI=./milvus_demo.db
# MILVUS_COLLECTION=documents
# MILVUS_EMBEDDING_PROVIDER=openai # support openai,dashscope
# MILVUS_EMBEDDING_BASE_URL=
# MILVUS_EMBEDDING_MODEL=
# MILVUS_EMBEDDING_API_KEY=
# MILVUS_AUTO_LOAD_EXAMPLES=true
# Optional, volcengine TTS for generating podcast
VOLCENGINE_TTS_APPID=xxx
VOLCENGINE_TTS_ACCESS_TOKEN=xxx
# VOLCENGINE_TTS_CLUSTER=volcano_tts # Optional, default is volcano_tts
# VOLCENGINE_TTS_VOICE_TYPE=BV700_V2_streaming # Optional, default is BV700_V2_streaming
# Option, for langsmith tracing and monitoring
# LANGSMITH_TRACING=true
# LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
# LANGSMITH_API_KEY="xxx"
# LANGSMITH_PROJECT="xxx"
# [!NOTE]
# For model settings and other configurations, please refer to `docs/configuration_guide.md`
# Option, for langgraph mongodb checkpointer
# Enable LangGraph checkpoint saver, supports MongoDB, Postgres
#LANGGRAPH_CHECKPOINT_SAVER=true
# Set the database URL for saving checkpoints
#LANGGRAPH_CHECKPOINT_DB_URL=mongodb://localhost:27017/
#LANGGRAPH_CHECKPOINT_DB_URL=postgresql://localhost:5432/postgres
+592 -533
View File
File diff suppressed because it is too large Load Diff
+20
View File
@@ -0,0 +1,20 @@
#!/bin/bash
mkdir -p ./volumes/dataset
mkdir -p ./volumes/flow
mkdir -p ./volumes/logs/deepdata
mkdir -p ./volumes/postgres/data
mkdir -p ./volumes/ray/logs
mkdir -p ./volumes/logs/frontend
mkdir -p ./volumes/logs/database
mkdir -p ./volumes/operators/upload
mkdir -p ./volumes/operators/runtime
mkdir -p ./volumes/operators/site-packages
mkdir -p ./volumes/rag_storage
mkdir -p ./volumes/logs/deep-flow
mkdir -p ./volumes/label-studio/data
mkdir -p ./volumes/label-studio/db
mkdir -p ./volumes/milvus/etcd
mkdir -p ./volumes/milvus/minio
mkdir -p ./volumes/milvus/data
mkdir -p ./volumes/redis/data
echo "所有挂载目录创建完成"
+1
View File
@@ -1,5 +1,6 @@
(function () {
const exactTextMap = new Map([
["A full-fledged open source solution for data labeling", ""],
["Label Studio", "Label Studio 标注平台"],
["Projects", "项目"],
["Project", "项目"],