in src/open-r1-multimodal/local_scripts/create_vision_cot_data.py [0:0]
def gpt4o_query(image, prompt, max_retries=5, initial_delay=3):
if image is None:
return None
data_url_list = [get_image_data_url(image)]
client = AzureOpenAI(
azure_endpoint="YOUR_AZURE_ENDPOINT",
api_version="2023-07-01-preview",
api_key="YOUR_API_KEY",
)
for attempt in range(max_retries):
try:
messages = [
{
"role": "system",
"content": "You are an expert to analyze the image and provide useful information for users.",
},
{
"role": "user",
"content": [
{"type": "text", "text": prompt},
],
},
]
for data_url in data_url_list:
messages[1]["content"].insert(
0, {"type": "image_url", "image_url": {"url": data_url}}
)
response = client.chat.completions.create(
model="gpt-4o-2024-08-06",
messages=messages,
temperature=0.2,
max_tokens=8192,
)
return response.choices[0].message.content
except Exception as e:
if attempt == max_retries - 1:
raise Exception(
f"Failed after {max_retries} attempts. Last error: {str(e)}"
)
delay = initial_delay * (2**attempt) + random.uniform(
0, 0.1 * initial_delay * (2**attempt)
)
time.sleep(delay)