diff --git a/llmops/controller/task.py b/llmops/controller/task.py index 06b008eaf2a9a55d11605deb218158fc28429c41..0f37724eba7b1a76eb90287047ea144c19cd9b0b 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 0000000000000000000000000000000000000000..6e85df853b5b157fb34b1ea4597a0488f5932d11 --- /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 0000000000000000000000000000000000000000..9dd4dd94052a2638c29892334c24026377489184 --- /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 0000000000000000000000000000000000000000..327cce23e627384859e7ca0ead7d7e74344837e4 --- /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 7fe0efb8171a7a29fab05a542f5ab6e1193c3e64..5aadea70329c0df01eca24aca29ba34f338478f0 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 cb66d4c29922fd0984be1904fb1afb3f3a71d4ae..cdcf63d58953647c98c299a1273eb0fac925d023 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("完成")