Spaces:
Build error
Build error
| import os | |
| import sys | |
| import time | |
| from openai import OpenAI | |
| from tenacity import ( | |
| retry, | |
| stop_after_attempt, # type: ignore | |
| wait_random_exponential, # type: ignore | |
| ) | |
| if sys.version_info >= (3, 8): | |
| from typing import Literal | |
| else: | |
| from typing_extensions import Literal | |
| Model = Literal['gpt-4', 'gpt-3.5-turbo', 'text-davinci-003'] | |
| OpenAI.api_key = os.getenv('OPENAI_API_KEY') | |
| OPENAI_GEN_HYP = { | |
| 'temperature': 0, | |
| 'max_tokens': 250, | |
| 'top_p': 1.0, | |
| 'frequency_penalty': 0, | |
| 'presence_penalty': 0, | |
| } | |
| def run_chatgpt_query_multi_turn( | |
| messages, | |
| model_name='gpt-4-turbo', # pass "gpt4" for more recent model output | |
| max_tokens=256, | |
| temperature=0.0, | |
| json_response=False, | |
| ): | |
| response = None | |
| num_retries = 3 | |
| retry = 0 | |
| while retry < num_retries: | |
| retry += 1 | |
| try: | |
| client = OpenAI() | |
| if json_response: | |
| response = client.chat.completions.create( | |
| model=model_name, | |
| response_format={'type': 'json_object'}, | |
| messages=messages, | |
| **OPENAI_GEN_HYP, | |
| ) | |
| else: | |
| response = client.chat.completions.create( | |
| model=model_name, messages=messages, **OPENAI_GEN_HYP | |
| ) | |
| break | |
| except Exception as e: | |
| print(e) | |
| print('GPT error. Retrying in 2 seconds...') | |
| time.sleep(2) | |
| return response | |