#!/usr/bin/env python3 # -*- coding: utf-8 -*- """作业 7 · 步骤 2:注册 OpenAPI 工具。""" from __future__ import annotations import sys from pathlib import Path import _bootstrap # noqa: F401 import _config as C from dify_api import Dify, pp SCHEMA_PATH = ( Path(__file__).resolve().parents[2] / "patches_cursor" / "作业7_故障自愈工作流" / "作业7_self_heal_openapi.yaml" ) def main() -> int: schema = SCHEMA_PATH.read_text(encoding="utf-8") d = Dify(C.DIFY_EMAIL, C.DIFY_PASSWORD) try: d.login() existing = d.get("/workspaces/current/tools/api") names = [(x.get("name") or x.get("provider")) for x in (existing.get("json") or [])] if C.SELF_HEAL_PROVIDER in names: d.post( "/workspaces/current/tool-provider/api/delete", body={"provider": C.SELF_HEAL_PROVIDER}, ) r = d.post( "/workspaces/current/tool-provider/api/add", body={ "provider": C.SELF_HEAL_PROVIDER, "credentials": {"auth_type": "none"}, "schema_type": "openapi", "schema": schema, "icon": {"background": "#FEE2E2", "content": "🚑"}, "privacy_policy": "", "custom_disclaimer": "", "labels": ["ops", "homework7", "self-heal"], }, ) pp("add api tool", r) return 0 if r.get("code") in ("200", "201") else 1 finally: d.close() if __name__ == "__main__": sys.exit(main())