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:
@@ -0,0 +1,184 @@
|
||||
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
Entry point script for the DeepFlow project.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import asyncio
|
||||
|
||||
from InquirerPy import inquirer
|
||||
|
||||
from src.config.questions import BUILT_IN_QUESTIONS, BUILT_IN_QUESTIONS_ZH_CN
|
||||
from src.workflow import run_agent_workflow_async
|
||||
|
||||
|
||||
def ask(
|
||||
question,
|
||||
debug=False,
|
||||
max_plan_iterations=1,
|
||||
max_step_num=3,
|
||||
enable_background_investigation=True,
|
||||
enable_clarification=False,
|
||||
max_clarification_rounds=None,
|
||||
):
|
||||
"""Run the agent workflow with the given question.
|
||||
|
||||
Args:
|
||||
question: The user's query or request
|
||||
debug: If True, enables debug level logging
|
||||
max_plan_iterations: Maximum number of plan iterations
|
||||
max_step_num: Maximum number of steps in a plan
|
||||
enable_background_investigation: If True, performs web search before planning to enhance context
|
||||
enable_clarification: If False (default), skip clarification; if True, enable multi-turn clarification
|
||||
max_clarification_rounds: Maximum number of clarification rounds (default: None, uses State default=3)
|
||||
"""
|
||||
asyncio.run(
|
||||
run_agent_workflow_async(
|
||||
user_input=question,
|
||||
debug=debug,
|
||||
max_plan_iterations=max_plan_iterations,
|
||||
max_step_num=max_step_num,
|
||||
enable_background_investigation=enable_background_investigation,
|
||||
enable_clarification=enable_clarification,
|
||||
max_clarification_rounds=max_clarification_rounds,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def main(
|
||||
debug=False,
|
||||
max_plan_iterations=1,
|
||||
max_step_num=3,
|
||||
enable_background_investigation=True,
|
||||
enable_clarification=False,
|
||||
max_clarification_rounds=None,
|
||||
):
|
||||
"""Interactive mode with built-in questions.
|
||||
|
||||
Args:
|
||||
enable_background_investigation: If True, performs web search before planning to enhance context
|
||||
debug: If True, enables debug level logging
|
||||
max_plan_iterations: Maximum number of plan iterations
|
||||
max_step_num: Maximum number of steps in a plan
|
||||
enable_clarification: If False (default), skip clarification; if True, enable multi-turn clarification
|
||||
max_clarification_rounds: Maximum number of clarification rounds (default: None, uses State default=3)
|
||||
"""
|
||||
# First select language
|
||||
language = inquirer.select(
|
||||
message="Select language / 选择语言:",
|
||||
choices=["English", "中文"],
|
||||
).execute()
|
||||
|
||||
# Choose questions based on language
|
||||
questions = (
|
||||
BUILT_IN_QUESTIONS if language == "English" else BUILT_IN_QUESTIONS_ZH_CN
|
||||
)
|
||||
ask_own_option = (
|
||||
"[Ask my own question]" if language == "English" else "[自定义问题]"
|
||||
)
|
||||
|
||||
# Select a question
|
||||
initial_question = inquirer.select(
|
||||
message=(
|
||||
"What do you want to know?" if language == "English" else "您想了解什么?"
|
||||
),
|
||||
choices=[ask_own_option] + questions,
|
||||
).execute()
|
||||
|
||||
if initial_question == ask_own_option:
|
||||
initial_question = inquirer.text(
|
||||
message=(
|
||||
"What do you want to know?"
|
||||
if language == "English"
|
||||
else "您想了解什么?"
|
||||
),
|
||||
).execute()
|
||||
|
||||
# Pass all parameters to ask function
|
||||
ask(
|
||||
question=initial_question,
|
||||
debug=debug,
|
||||
max_plan_iterations=max_plan_iterations,
|
||||
max_step_num=max_step_num,
|
||||
enable_background_investigation=enable_background_investigation,
|
||||
enable_clarification=enable_clarification,
|
||||
max_clarification_rounds=max_clarification_rounds,
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Set up argument parser
|
||||
parser = argparse.ArgumentParser(description="Run the Deer")
|
||||
parser.add_argument("query", nargs="*", help="The query to process")
|
||||
parser.add_argument(
|
||||
"--interactive",
|
||||
action="store_true",
|
||||
help="Run in interactive mode with built-in questions",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--max_plan_iterations",
|
||||
type=int,
|
||||
default=1,
|
||||
help="Maximum number of plan iterations (default: 1)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--max_step_num",
|
||||
type=int,
|
||||
default=3,
|
||||
help="Maximum number of steps in a plan (default: 3)",
|
||||
)
|
||||
parser.add_argument("--debug", action="store_true", help="Enable debug logging")
|
||||
parser.add_argument(
|
||||
"--no-background-investigation",
|
||||
action="store_false",
|
||||
dest="enable_background_investigation",
|
||||
help="Disable background investigation before planning",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--enable-clarification",
|
||||
action="store_true",
|
||||
dest="enable_clarification",
|
||||
help="Enable multi-turn clarification for vague questions (default: disabled)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--max-clarification-rounds",
|
||||
type=int,
|
||||
dest="max_clarification_rounds",
|
||||
help="Maximum number of clarification rounds (default: 3)",
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.interactive:
|
||||
# Pass command line arguments to main function
|
||||
main(
|
||||
debug=args.debug,
|
||||
max_plan_iterations=args.max_plan_iterations,
|
||||
max_step_num=args.max_step_num,
|
||||
enable_background_investigation=args.enable_background_investigation,
|
||||
enable_clarification=args.enable_clarification,
|
||||
max_clarification_rounds=args.max_clarification_rounds,
|
||||
)
|
||||
else:
|
||||
# Parse user input from command line arguments or user input
|
||||
if args.query:
|
||||
user_query = " ".join(args.query)
|
||||
else:
|
||||
# Loop until user provides non-empty input
|
||||
while True:
|
||||
user_query = input("Enter your query: ")
|
||||
if user_query is not None and user_query != "":
|
||||
break
|
||||
|
||||
# Run the agent workflow with the provided parameters
|
||||
ask(
|
||||
question=user_query,
|
||||
debug=args.debug,
|
||||
max_plan_iterations=args.max_plan_iterations,
|
||||
max_step_num=args.max_step_num,
|
||||
enable_background_investigation=args.enable_background_investigation,
|
||||
enable_clarification=args.enable_clarification,
|
||||
max_clarification_rounds=args.max_clarification_rounds,
|
||||
)
|
||||
Reference in New Issue
Block a user