aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Reinier van der Leer <pwuts@agpt.co> 2024-04-18 21:35:11 +0200
committerGravatar Reinier van der Leer <pwuts@agpt.co> 2024-04-18 21:35:11 +0200
commit452df39a524747652994190cd9afbb16246f9aa0 (patch)
treea828aeef037b000807c45a7f849ef88108a25233
parentrefactor(agent): Remove redundant parsing functions in config classes (diff)
downloadAuto-GPT-452df39a524747652994190cd9afbb16246f9aa0.tar.gz
Auto-GPT-452df39a524747652994190cd9afbb16246f9aa0.tar.bz2
Auto-GPT-452df39a524747652994190cd9afbb16246f9aa0.zip
feat(agent/core): Allow zero-argument instantiation of `OpenAIProvider`
-rw-r--r--autogpts/autogpt/autogpt/core/resource/model_providers/openai.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/autogpts/autogpt/autogpt/core/resource/model_providers/openai.py b/autogpts/autogpt/autogpt/core/resource/model_providers/openai.py
index cd01b496a..b974e6e03 100644
--- a/autogpts/autogpt/autogpt/core/resource/model_providers/openai.py
+++ b/autogpts/autogpt/autogpt/core/resource/model_providers/openai.py
@@ -319,15 +319,20 @@ class OpenAIProvider(
_budget: ModelProviderBudget
_configuration: OpenAIConfiguration
+ _credentials: OpenAICredentials
def __init__(
self,
- settings: OpenAISettings,
- logger: logging.Logger,
+ settings: Optional[OpenAISettings] = None,
+ logger: Optional[logging.Logger] = None,
):
+ if not settings:
+ settings = self.default_settings.copy(deep=True)
+ if not settings.credentials:
+ settings.credentials = OpenAICredentials.from_env()
+
self._settings = settings
- assert settings.credentials, "Cannot create OpenAIProvider without credentials"
self._configuration = settings.configuration
self._credentials = settings.credentials
self._budget = settings.budget
@@ -343,7 +348,7 @@ class OpenAIProvider(
self._client = AsyncOpenAI(**self._credentials.get_api_access_kwargs())
- self._logger = logger
+ self._logger = logger or logging.getLogger(__name__)
def get_token_limit(self, model_name: str) -> int:
"""Get the token limit for a given model."""