diff --git a/dataherald/api/fastapi.py b/dataherald/api/fastapi.py index 26409845..00f69053 100644 --- a/dataherald/api/fastapi.py +++ b/dataherald/api/fastapi.py @@ -451,7 +451,7 @@ def update_response(self, response_id: str) -> Response: response = generates_nl_answer.execute(response) response.exec_time = time.time() - start_generated_answer response_repository.update(response) - except openai.error.AuthenticationError as e: + except openai.AuthenticationError as e: raise HTTPException(status_code=400, detail=str(e)) from e except ValueError as e: raise HTTPException(status_code=404, detail=str(e)) from e @@ -550,7 +550,7 @@ def create_response( response = generates_nl_answer.execute( response, sql_response_only, generate_csv ) - except openai.error.AuthenticationError as e: + except openai.AuthenticationError as e: raise HTTPException(status_code=400, detail=str(e)) from e except ValueError as e: raise HTTPException(status_code=404, detail=str(e)) from e diff --git a/dataherald/sql_generator/dataherald_finetuning_agent.py b/dataherald/sql_generator/dataherald_finetuning_agent.py index 141c0d14..e8b032d2 100644 --- a/dataherald/sql_generator/dataherald_finetuning_agent.py +++ b/dataherald/sql_generator/dataherald_finetuning_agent.py @@ -51,23 +51,21 @@ def decorator(fn: Callable[[str], str]) -> Callable[[str], str]: # noqa: C901 def wrapper(*args: Any, **kwargs: Any) -> Any: # noqa: PLR0911 try: return fn(*args, **kwargs) - except openai.error.APIError as e: + except openai.AuthenticationError as e: + # Handle authentication error here + return f"OpenAI API authentication error: {e}" + except openai.RateLimitError as e: # Handle API error here, e.g. retry or log - return f"OpenAI API returned an API Error: {e}" - except openai.error.APIConnectionError as e: + return f"OpenAI API request exceeded rate limit: {e}" + except openai.BadRequestError as e: # Handle connection error here - return f"Failed to connect to OpenAI API: {e}" - except openai.error.RateLimitError as e: + return f"OpenAI API request timed out: {e}" + except openai.APIResponseValidationError as e: # Handle rate limit error (we recommend using exponential backoff) - return f"OpenAI API request exceeded rate limit: {e}" - except openai.error.Timeout as e: + return f"OpenAI API response is invalid: {e}" + except openai.OpenAIError as e: # Handle timeout error (we recommend using exponential backoff) - return f"OpenAI API request timed out: {e}" - except openai.error.ServiceUnavailableError as e: - # Handle service unavailable error (we recommend using exponential backoff) - return f"OpenAI API service unavailable: {e}" - except openai.error.InvalidRequestError as e: - return f"OpenAI API request was invalid: {e}" + return f"OpenAI API returned an error: {e}" except GoogleAPIError as e: return f"Google API returned an error: {e}" except SQLAlchemyError as e: diff --git a/dataherald/sql_generator/dataherald_sqlagent.py b/dataherald/sql_generator/dataherald_sqlagent.py index b0991390..78d760cc 100644 --- a/dataherald/sql_generator/dataherald_sqlagent.py +++ b/dataherald/sql_generator/dataherald_sqlagent.py @@ -64,23 +64,21 @@ def decorator(fn: Callable[[str], str]) -> Callable[[str], str]: # noqa: C901 def wrapper(*args: Any, **kwargs: Any) -> Any: # noqa: PLR0911 try: return fn(*args, **kwargs) - except openai.error.APIError as e: + except openai.AuthenticationError as e: + # Handle authentication error here + return f"OpenAI API authentication error: {e}" + except openai.RateLimitError as e: # Handle API error here, e.g. retry or log - return f"OpenAI API returned an API Error: {e}" - except openai.error.APIConnectionError as e: + return f"OpenAI API request exceeded rate limit: {e}" + except openai.BadRequestError as e: # Handle connection error here - return f"Failed to connect to OpenAI API: {e}" - except openai.error.RateLimitError as e: + return f"OpenAI API request timed out: {e}" + except openai.APIResponseValidationError as e: # Handle rate limit error (we recommend using exponential backoff) - return f"OpenAI API request exceeded rate limit: {e}" - except openai.error.Timeout as e: + return f"OpenAI API response is invalid: {e}" + except openai.OpenAIError as e: # Handle timeout error (we recommend using exponential backoff) - return f"OpenAI API request timed out: {e}" - except openai.error.ServiceUnavailableError as e: - # Handle service unavailable error (we recommend using exponential backoff) - return f"OpenAI API service unavailable: {e}" - except openai.error.InvalidRequestError as e: - return f"OpenAI API request was invalid: {e}" + return f"OpenAI API returned an error: {e}" except GoogleAPIError as e: return f"Google API returned an error: {e}" except SQLAlchemyError as e: diff --git a/requirements.txt b/requirements.txt index d102da95..4e4d9173 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ dnspython==2.3.0 fastapi==0.98.0 httpx==0.24.1 -langchain==0.0.312 +langchain==0.0.335 load-dotenv==0.1.0 mypy-extensions==1.0.0 -openai==0.27.8 +openai==1.3.6 openapi-schema-pydantic==1.2.4 overrides==7.3.1 packaging==23.1