diff --git a/llama_hub/tools/openapi/base.py b/llama_hub/tools/openapi/base.py index 43e37ed894..083277900b 100644 --- a/llama_hub/tools/openapi/base.py +++ b/llama_hub/tools/openapi/base.py @@ -4,7 +4,6 @@ from llama_index.readers.schema.base import Document from llama_index.tools.tool_spec.base import BaseToolSpec -import jsonschema class OpenAPIToolSpec(BaseToolSpec): @@ -61,6 +60,13 @@ def reduce_details(details: dict) -> dict: def dereference_openapi(openapi_doc): """Dereferences a Swagger/OpenAPI document by resolving all $ref pointers.""" + try: + import jsonschema + except ImportError: + raise ImportError( + "The jsonschema library is required to parse OpenAPI documents. " + "Please install it with `pip install jsonschema`." + ) resolver = jsonschema.RefResolver.from_schema(openapi_doc) def _dereference(obj):