🐛 fix(base.py): handle import errors when importing utilities to prevent application crashes

The code now handles import errors when importing utilities from the `langchain.utilities` module. If an import error occurs, the utility is skipped and not added to the `type_dict` dictionary. This prevents the application from crashing when encountering an invalid or missing utility.
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-10-25 15:57:48 -03:00
commit f6ab266294

View file

@ -28,10 +28,14 @@ class UtilityCreator(LangChainTypeCreator):
"""
if self.type_dict is None:
settings_service = get_settings_service()
self.type_dict = {
utility_name: import_class(f"langchain.utilities.{utility_name}")
for utility_name in utilities.__all__
}
self.type_dict = {}
for utility_name in utilities.__all__:
try:
imported = import_class(f"langchain.utilities.{utility_name}")
self.type_dict[utility_name] = imported
except Exception:
pass
self.type_dict["SQLDatabase"] = utilities.SQLDatabase
# Filter according to settings.utilities
self.type_dict = {