Coverage for src/local_deep_research/llm/providers/implementations/ionos.py: 100%
14 statements
« prev ^ index » next coverage.py v7.15.1, created at 2026-07-20 01:24 +0000
« prev ^ index » next coverage.py v7.15.1, created at 2026-07-20 01:24 +0000
1"""IONOS AI Model Hub LLM provider for Local Deep Research."""
3from ..base import Exposure
4from ..openai_base import OpenAICompatibleProvider
7class IONOSProvider(OpenAICompatibleProvider):
8 """IONOS AI Model Hub provider using OpenAI-compatible endpoint."""
10 provider_name = "IONOS AI Model Hub"
11 api_key_setting = "llm.ionos.api_key"
12 default_base_url = "https://openai.inference.de-txl.ionos.com/v1"
13 default_model = "" # User must explicitly pick a model — no silent fallback
15 # Metadata for auto-discovery
16 provider_key = "IONOS"
17 company_name = "IONOS"
18 is_cloud = True
19 # Egress exposure (ADR-0007): cloud inference sink — data leaves the box.
20 egress_exposure = Exposure.EXPOSING
22 @classmethod
23 def requires_auth_for_models(cls):
24 """IONOS requires authentication for listing models."""
25 return True