improve bedrock exception granularity

This commit is contained in:
David Leen 2024-01-12 16:38:55 +01:00
parent 51110bfb62
commit a674de8f36
2 changed files with 20 additions and 0 deletions

View file

@ -573,6 +573,10 @@ def completion(
response = client.invoke_model(
body=data, modelId=model, accept=accept, contentType=contentType
)
except client.exceptions.ValidationException as e:
if "The provided model identifier is invalid" in str(e):
raise BedrockError(status_code=404, message=str(e))
raise BedrockError(status_code=400, message=str(e))
except Exception as e:
raise BedrockError(status_code=500, message=str(e))

View file

@ -5912,6 +5912,22 @@ def exception_type(
model=model,
response=original_exception.response,
)
elif original_exception.status_code == 400:
exception_mapping_worked = True
raise BadRequestError(
message=f"BedrockException - {original_exception.message}",
llm_provider="bedrock",
model=model,
response=original_exception.response,
)
elif original_exception.status_code == 404:
exception_mapping_worked = True
raise NotFoundError(
message=f"BedrockException - {original_exception.message}",
llm_provider="bedrock",
model=model,
response=original_exception.response,
)
elif custom_llm_provider == "sagemaker":
if "Unable to locate credentials" in error_str:
exception_mapping_worked = True