From ac3ad37adfbfb2f54d9a6a849cb34c04e4b89a91 Mon Sep 17 00:00:00 2001 From: zhanghan2021 Date: Fri, 8 Nov 2024 11:39:53 +0800 Subject: [PATCH] after the user to confirm task and to continue run --- llmops/controller/task.py | 15 +++++++++ llmops/llm_tools/log_analysis/la_test.py | 1 + llmops/llm_tools/nlp/nlp_test.py | 1 + llmops/llm_tools/rca/rca_test.py | 1 + llmops/router/task.py | 1 + llmops/service/task.py | 41 ++++++++++++++++++++++++ 6 files changed, 60 insertions(+) create mode 100644 llmops/llm_tools/log_analysis/la_test.py create mode 100644 llmops/llm_tools/nlp/nlp_test.py create mode 100644 llmops/llm_tools/rca/rca_test.py diff --git a/llmops/controller/task.py b/llmops/controller/task.py index 06b008ea..0f37724e 100644 --- a/llmops/controller/task.py +++ b/llmops/controller/task.py @@ -23,3 +23,18 @@ def task_status(task_id): return not_found(None, "未找到该任务") return success(task_info, "获取到任务状态") + + +# 确认用户选择的方案 +def confirm_option(): + data = request.json + task_id = data.get("task_id") + selected_option = data.get("selected_option") + + if not task_id or not selected_option: + return not_found(None, "任务id和所选方案内容不能为空") + + result = confirm_task_option(task_id, selected_option) + if "error" in result: + return fail(None, result) + return success(result, "已确认所选方案") diff --git a/llmops/llm_tools/log_analysis/la_test.py b/llmops/llm_tools/log_analysis/la_test.py new file mode 100644 index 00000000..6e85df85 --- /dev/null +++ b/llmops/llm_tools/log_analysis/la_test.py @@ -0,0 +1 @@ +# 日志分析 diff --git a/llmops/llm_tools/nlp/nlp_test.py b/llmops/llm_tools/nlp/nlp_test.py new file mode 100644 index 00000000..9dd4dd94 --- /dev/null +++ b/llmops/llm_tools/nlp/nlp_test.py @@ -0,0 +1 @@ +# 自然语言交互 diff --git a/llmops/llm_tools/rca/rca_test.py b/llmops/llm_tools/rca/rca_test.py new file mode 100644 index 00000000..327cce23 --- /dev/null +++ b/llmops/llm_tools/rca/rca_test.py @@ -0,0 +1 @@ +# 故障定位 diff --git a/llmops/router/task.py b/llmops/router/task.py index 7fe0efb8..5aadea70 100644 --- a/llmops/router/task.py +++ b/llmops/router/task.py @@ -6,3 +6,4 @@ task_blueprint = Blueprint("tasks", __name__) # 路由 task_blueprint.route("/create", methods=["POST"])(create_task) task_blueprint.route("/status/", methods=["GET"])(task_status) +task_blueprint.route("/confirm", methods=["POST"])(confirm_option) diff --git a/llmops/service/task.py b/llmops/service/task.py index cb66d4c2..cdcf63d5 100644 --- a/llmops/service/task.py +++ b/llmops/service/task.py @@ -54,6 +54,31 @@ def get_task_status(task_id): } +# 用户确认方案,继续任务 +def confirm_task_option(task_id, selected_option): + task = tasks.get(task_id) + if not task: + return {"error": "未找到该任务"} + + if task.status != "等待确认": + return {"error": "该任务无等待人工确认的操作"} + + # 用户选择方案后继续任务 + task.update_step_result(task.current_step, f"Confirmed {selected_option}") + task.current_step += 1 # 进入下一步 + task.update_status("正在处理") + + # 启动一个线程继续执行任务 + thread = Thread(target=continue_task, args=(task.task_id, selected_option)) + thread.start() + + return { + "message": "Option confirmed, task continued", + "task_id": task_id, + "status": "正在处理", + } + + # 模拟 LLM 处理 def llm_process(task_id): task = tasks.get(task_id) @@ -68,3 +93,19 @@ def llm_process(task_id): task.set_options(options) task.update_step_result(task.current_step, options) task.update_status("等待确认") + + +# 模拟继续执行任务 +def continue_task(task_id, selected_option): + task = tasks.get(task_id) + if not task: + return + + task.update_status("正在处理") + time.sleep(2) # 模拟方案执行的延迟 + + # 模拟方案执行后的结果 + final_result = f"Final result for {selected_option}" + task.current_step += 1 + task.update_step_result(task.current_step, final_result) + task.update_status("完成") -- Gitee