Skip to content

Commit

Permalink
DH-5036/refactor the code for openai new SDK (#270)
Browse files Browse the repository at this point in the history
  • Loading branch information
MohammadrezaPourreza authored Nov 30, 2023
1 parent acee6ab commit 840995d
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 30 deletions.
4 changes: 2 additions & 2 deletions dataherald/api/fastapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
24 changes: 11 additions & 13 deletions dataherald/sql_generator/dataherald_finetuning_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
24 changes: 11 additions & 13 deletions dataherald/sql_generator/dataherald_sqlagent.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -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
Expand Down

0 comments on commit 840995d

Please sign in to comment.