get_error_message()); return []; } $file_array = [ 'name' => sanitize_title($keyword) . '.png', 'tmp_name' => $tmp ]; $attachment_id = media_handle_sideload($file_array, 0); if (is_wp_error($attachment_id)) { @unlink($file_array['tmp_name']); error_log('Error uploading image: ' . $attachment_id->get_error_message()); return []; } $local_image_url = wp_get_attachment_url($attachment_id); return [ 'url' => $local_image_url, 'file_name' => $file_array['name'], 'alt_text' => 'Image for ' . $keyword, 'cost' => 0 ]; } } function ai_content_wizard_generate_image_openai($params) { // Если модель изображения не передана, извлекаем её из настроек if (empty($params['image_model'])) { $params['image_model'] = ai_content_wizard_get_setting('ai_content_wizard_image_model', 'dall-e-3'); } $response = wp_remote_post('https://api.openai.com/v1/images/generations', [ 'headers' => [ 'Authorization' => 'Bearer ' . $params['api_key'], 'Content-Type' => 'application/json', ], 'body' => json_encode([ 'model' => $params['image_model'], 'prompt' => $params['prompt'], 'n' => 1, 'size' => $params['size_options'], 'quality' => $params['quality_options'] // параметр качества включён в запрос ]), 'timeout' => 1000 ]); if (is_wp_error($response)) { error_log('Error while requesting image generation: ' . $response->get_error_message()); return []; } elseif (wp_remote_retrieve_response_code($response) != 200) { error_log('Unexpected API response during image generation: ' . wp_remote_retrieve_response_code($response)); return []; } else { $response_body = json_decode(wp_remote_retrieve_body($response), true); if (isset($response_body['data'][0]['url'])) { $image_url = $response_body['data'][0]['url']; return ai_content_wizard_save_image_locally($image_url, $params['keyword'], $params['cleaned_content_for_prompt']); } else { error_log('No image URL found in the response.'); return []; } } }