Make openai dependency optional (#236)
* Make openai optional dependency * Set openai as an extra dependency
This commit is contained in:
		
							parent
							
								
									1f8fd72acb
								
							
						
					
					
						commit
						68933e7e90
					
				|  | @ -23,7 +23,6 @@ dependencies = [ | ||||||
|   "duckduckgo-search>=6.3.7", |   "duckduckgo-search>=6.3.7", | ||||||
|   "python-dotenv>=1.0.1", |   "python-dotenv>=1.0.1", | ||||||
|   "e2b-code-interpreter>=1.0.3", |   "e2b-code-interpreter>=1.0.3", | ||||||
|   "openai>=1.58.1", |  | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [project.optional-dependencies] | [project.optional-dependencies] | ||||||
|  | @ -37,12 +36,13 @@ torch = [ | ||||||
| litellm = [ | litellm = [ | ||||||
|   "litellm>=1.55.10", |   "litellm>=1.55.10", | ||||||
| ] | ] | ||||||
|  | openai = ["openai>=1.58.1"] | ||||||
| quality = [ | quality = [ | ||||||
|   "ruff>=0.9.0", |   "ruff>=0.9.0", | ||||||
| ] | ] | ||||||
| test = [ | test = [ | ||||||
|   "pytest>=8.1.0", |   "pytest>=8.1.0", | ||||||
|   "smolagents[audio,litellm,torch]", |   "smolagents[audio,litellm,openai,torch]", | ||||||
| ] | ] | ||||||
| dev = [ | dev = [ | ||||||
|   "smolagents[quality,test]", |   "smolagents[quality,test]", | ||||||
|  |  | ||||||
|  | @ -34,8 +34,6 @@ from transformers import ( | ||||||
| ) | ) | ||||||
| from transformers.utils.import_utils import _is_package_available | from transformers.utils.import_utils import _is_package_available | ||||||
| 
 | 
 | ||||||
| import openai |  | ||||||
| 
 |  | ||||||
| from .tools import Tool | from .tools import Tool | ||||||
| 
 | 
 | ||||||
| logger = logging.getLogger(__name__) | logger = logging.getLogger(__name__) | ||||||
|  | @ -578,6 +576,12 @@ class OpenAIServerModel(Model): | ||||||
|         api_key: str, |         api_key: str, | ||||||
|         **kwargs, |         **kwargs, | ||||||
|     ): |     ): | ||||||
|  |         try: | ||||||
|  |             import openai | ||||||
|  |         except ModuleNotFoundError: | ||||||
|  |             raise ModuleNotFoundError( | ||||||
|  |                 "Please install 'openai' extra to use OpenAIServerModel: `pip install 'smolagents[openai]'`" | ||||||
|  |             ) from None | ||||||
|         super().__init__() |         super().__init__() | ||||||
|         self.model_id = model_id |         self.model_id = model_id | ||||||
|         self.client = openai.OpenAI( |         self.client = openai.OpenAI( | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue