Get the default LLM provider. First checks if LLM is enabled at the system level (config.LLM_ENABLED). If enabled, reads from user preferences (which default to system config). Returns None if disabled at system level or user preference is empty. Returns: The provider
()
| 505 | |
| 506 | |
| 507 | def get_default_provider(): |
| 508 | """ |
| 509 | Get the default LLM provider. |
| 510 | |
| 511 | First checks if LLM is enabled at the system level (config.LLM_ENABLED). |
| 512 | If enabled, reads from user preferences (which default to system config). |
| 513 | Returns None if disabled at system level or user preference is empty. |
| 514 | |
| 515 | Returns: |
| 516 | The provider name ('anthropic', 'openai', 'ollama', 'docker') |
| 517 | or None if disabled. |
| 518 | """ |
| 519 | # Check master switch first - cannot be overridden by user |
| 520 | if not getattr(config, 'LLM_ENABLED', False): |
| 521 | return None |
| 522 | |
| 523 | # Valid provider values |
| 524 | valid_providers = {'anthropic', 'openai', 'ollama', 'docker'} |
| 525 | |
| 526 | # Get preference value (includes config default if not set by user) |
| 527 | try: |
| 528 | pref_module = Preferences.module('ai') |
| 529 | if pref_module: |
| 530 | pref = pref_module.preference('default_provider') |
| 531 | if pref: |
| 532 | value = pref.get() |
| 533 | # Check if it's a valid provider |
| 534 | if value and str(value).strip() in valid_providers: |
| 535 | return str(value).strip() |
| 536 | except Exception: |
| 537 | pass |
| 538 | |
| 539 | # No valid provider configured |
| 540 | return None |
| 541 | |
| 542 | |
| 543 | def is_llm_enabled_system(): |
no test coverage detected