import json from openai import OpenAI from tenacity import retry, stop_after_attempt, wait_random_exponential client = OpenAI() # openai sent @retry(wait=wait_random_exponential(multiplier=1, max=40), stop=stop_after_attempt(3)) def chat_completion_request( messages, tools=None, tool_choice=None, model="gpt-4o-mini", temperature=0.4, name="test", show=False, ): try: response = client.chat.completions.create( model=model, messages=messages, temperature=temperature, tools=tools, tool_choice=tool_choice, response_format={"type": "json_object"}, ) if show: print(f"input {name} = {messages}") print(f"output {name} = {response.choices[0].message.content}") return ( json.loads(response.choices[0].message.content), response.usage.completion_tokens, response.usage.prompt_tokens, ) except Exception as e: print("Unable to generate ChatCompletion response") print(f"Exception: {e}") return e