"""规则生成接口。""" from __future__ import annotations from flask import Blueprint, current_app, request from app.utils.response import error, success from app.utils.rule_generation import RuleGenerationService rules_bp = Blueprint("rules", __name__) @rules_bp.post("/api/rules/generate") def generate_rules(): payload = request.get_json(silent=True) or request.form.to_dict() or {} limit = int(payload.get("limit", 1)) create_sql = bool(payload.get("create_sql", current_app.config.get("CREATE_SQL", False))) state = RuleGenerationService(create_sql=create_sql).start(limit=limit) data = { "task_id": state["task_id"], "status": state["status"], "async": True, "limit": state["limit"], "status_url": f"/api/rules/status?task_id={state['task_id']}", } return success(data, message="规则生成任务创建成功") @rules_bp.get("/api/rules/status") def rule_status(): task_id = request.args.get("task_id", "") if not task_id: return error("查询失败:缺少 task_id", 400) state = RuleGenerationService().get_status(task_id) if not state: return error("查询失败:任务不存在", 404) return success(state, message="查询成功")