| 297 | http_client_config: Optional[Dict[str, Any]] = None # Config dict for httpx.Client |
| 298 | |
| 299 | def __init__(self, **kwargs) -> None: # type: ignore |
| 300 | local_model = "api_base" in kwargs and kwargs["api_base"] is not None |
| 301 | |
| 302 | chat_model = kwargs.get("chat_model", "") |
| 303 | local_prefixes = ["local/", "litellm/", "ollama/", "vllm/", "llamacpp/"] |
| 304 | if any(chat_model.startswith(prefix) for prefix in local_prefixes): |
| 305 | local_model = True |
| 306 | |
| 307 | warn_gpt_3_5 = ( |
| 308 | "chat_model" not in kwargs.keys() |
| 309 | and not local_model |
| 310 | and default_openai_chat_model == OpenAIChatModel.GPT3_5_TURBO |
| 311 | ) |
| 312 | |
| 313 | if warn_gpt_3_5: |
| 314 | existing_hook = kwargs.get("run_on_first_use", noop) |
| 315 | |
| 316 | def with_warning() -> None: |
| 317 | existing_hook() |
| 318 | gpt_3_5_warning() |
| 319 | |
| 320 | kwargs["run_on_first_use"] = with_warning |
| 321 | |
| 322 | super().__init__(**kwargs) |
| 323 | |
| 324 | model_config = SettingsConfigDict(env_prefix="OPENAI_") |
| 325 | |