123456789101112131415161718192021222324 |
- import requests
- from core.tools.errors import ToolProviderCredentialValidationError
- from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
- class 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")
|