Add or update a provider. Returns updated config (also saves to disk).
(
name: str,
api_key: str,
base_url: str | None = None,
models: list[str] | None = None,
plan: str = "",
config: ProvidersConfig | None = None,
)
| 137 | |
| 138 | |
| 139 | def add_provider( |
| 140 | name: str, |
| 141 | api_key: str, |
| 142 | base_url: str | None = None, |
| 143 | models: list[str] | None = None, |
| 144 | plan: str = "", |
| 145 | config: ProvidersConfig | None = None, |
| 146 | ) -> ProvidersConfig: |
| 147 | """Add or update a provider. Returns updated config (also saves to disk).""" |
| 148 | cfg = config or load_providers() |
| 149 | resolved_url = base_url or KNOWN_BASE_URLS.get(name, "") |
| 150 | resolved_models = models or PROVIDER_MODELS.get(name, []) |
| 151 | |
| 152 | cfg.providers[name] = ProviderEntry( |
| 153 | name=name, |
| 154 | api_key=api_key, |
| 155 | base_url=resolved_url, |
| 156 | models=resolved_models, |
| 157 | plan=plan, |
| 158 | ) |
| 159 | save_providers(cfg) |
| 160 | return cfg |
| 161 | |
| 162 | |
| 163 | def remove_provider(name: str, config: ProvidersConfig | None = None) -> bool: |