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 | |