| 12345678910111213141516171819202122232425 | import requestsfrom core.tools.errors import ToolProviderCredentialValidationErrorfrom core.tools.provider.builtin_tool_provider import BuiltinToolProviderControllerclass XinferenceProvider(BuiltinToolProviderController):    def _validate_credentials(self, credentials: dict) -> None:        base_url = credentials.get("base_url", "").removesuffix("/")        api_key = credentials.get("api_key", "")        if not api_key:            api_key = "abc"            credentials["api_key"] = api_key        model = credentials.get("model", "")        if not base_url or not model:            raise ToolProviderCredentialValidationError("Xinference base_url and model is required")        headers = {"Authorization": f"Bearer {api_key}"}        res = requests.post(            f"{base_url}/sdapi/v1/options",            headers=headers,            json={"sd_model_checkpoint": model},        )        if res.status_code != 200:            raise ToolProviderCredentialValidationError("Xinference API key is invalid")
 |