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

1"""IONOS AI Model Hub LLM provider for Local Deep Research.""" 

2 

3from ..base import Exposure 

4from ..openai_base import OpenAICompatibleProvider 

5 

6 

7class IONOSProvider(OpenAICompatibleProvider): 

8 """IONOS AI Model Hub provider using OpenAI-compatible endpoint.""" 

9 

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 

14 

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 

21 

22 @classmethod 

23 def requires_auth_for_models(cls): 

24 """IONOS requires authentication for listing models.""" 

25 return True