def try_request()

in src/scripts/gen_completions.py [0:0]


def try_request(engine: str, cur_prompt: str, use_function: bool, retries: int = 0):
    if retries >= 5:
        return
    try:
        prompt_chat = [
            {"role": "system",
             "content": "You are a helpful assistant that extracts structured information from ATel and GCN Circulars datasets. Don't make assumptions about what values to plug into functions, but use only information from text."},
            {"role": "user",
             "content": cur_prompt}
        ]
        if use_function:
            response = openai.ChatCompletion.create(
                model=engine, functions=prompts["function"], messages=prompt_chat,
                function_call={"name": "extract_entities"})
            response = json.loads(response.choices[0]['message']['function_call']['arguments'])
        else:
            prompt_chat = [
                {"role": "system", "content": "You are a helpful assistant, who knows about astronomy."},
                {"role": "user", "content": cur_prompt}
            ]
            response = openai.ChatCompletion.create(
                model=engine, messages=prompt_chat)
            response = eval(response['choices'][0]['message']['content'])
        return response
    except openai.error.InvalidRequestError:
        return
    except Exception as e:
        print(f'Retrying after catching an exception, try {retries + 1}\n{e}')
        time.sleep(90)
        return try_request(engine, cur_prompt, use_function, retries + 1)