Add a custom OpenAI-compatible provider. API keys should be set via environment variables. Default env var pattern: {PROVIDER_NAME}_API_KEY Args: name: Provider name (must be unique) api_base: API base URL (e.g., https://api.example.com)
(
self,
name: str,
api_base: str,
default_model: str = "gpt-4",
models: list[str] | None = None,
env_var_name: str | None = None,
)
| 601 | return name in self.preferences.servers.runtime_servers |
| 602 | |
| 603 | def add_custom_provider( |
| 604 | self, |
| 605 | name: str, |
| 606 | api_base: str, |
| 607 | default_model: str = "gpt-4", |
| 608 | models: list[str] | None = None, |
| 609 | env_var_name: str | None = None, |
| 610 | ) -> None: |
| 611 | """Add a custom OpenAI-compatible provider. |
| 612 | |
| 613 | API keys should be set via environment variables. |
| 614 | Default env var pattern: {PROVIDER_NAME}_API_KEY |
| 615 | |
| 616 | Args: |
| 617 | name: Provider name (must be unique) |
| 618 | api_base: API base URL (e.g., https://api.example.com) |
| 619 | default_model: Default model to use |
| 620 | models: List of available models |
| 621 | env_var_name: Optional custom environment variable name for API key |
| 622 | """ |
| 623 | if not models: |
| 624 | models = ["gpt-4", "gpt-3.5-turbo"] |
| 625 | |
| 626 | provider = CustomProvider( |
| 627 | name=name, |
| 628 | api_base=api_base, |
| 629 | default_model=default_model, |
| 630 | models=models, |
| 631 | env_var_name=env_var_name, |
| 632 | ) |
| 633 | |
| 634 | self.preferences.provider.custom_providers[name] = provider.to_dict() |
| 635 | self.save_preferences() |
| 636 | |
| 637 | def remove_custom_provider(self, name: str) -> bool: |
| 638 | """Remove a custom provider. |