import time import random from openai import OpenAI def get_response(prompt: str, ak: str) -> str: ''' prompt: ''' client = OpenAI(api_key=ak) completion = client.chat.completions.create( model="gpt-4-1106-preview", messages=[ {"role": "user", "content": prompt} ] ) return completion.choices[0].message.content def check_judge(answer: str) -> str: assert len(answer.split('\n')[0])>=1 , "Answer has no analysis." assert answer.split('\n')[-1] in ['0', '1'], "Judge output is not 0 or 1." + answer.split('\n')[-1] assert not (answer.split('\n')[0] in ['0', '1']), "Answer has no analysis." return answer.split('\n')[-1] def judge(rule: str, answer: str, ak: str): return get_response(rule.replace("[Answer to be judged]:", "[Answer to be judged]: " + answer + '\n'), ak) def alternate_judge(rule, answer, ak): maxtry = 10 while True: try: out = judge(rule, answer, ak) bitout = check_judge(out) return out, bitout except Exception as e: if maxtry <= 0: return None, "0" if not isinstance(e, KeyError): maxtry -= 1 print(e) else: print("Request Error: " + str(e)) print("Retrying...") time.sleep(random.uniform(1, 2)) continue def count_lines(file_path: str): with open(file_path, 'r') as f: return sum(1 for _ in f)