From 9928d23bc029eb87ea91a1e5c0c7facd973cd452 Mon Sep 17 00:00:00 2001 From: David Woloszyn Date: Wed, 23 Jul 2025 11:49:25 +1000 Subject: [PATCH] MDL-85967 aiprovider_openai: Cast types to stored model settings --- ai/provider/openai/classes/form/action_form.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ai/provider/openai/classes/form/action_form.php b/ai/provider/openai/classes/form/action_form.php index bbd1260c023..c2dd846d8bb 100644 --- a/ai/provider/openai/classes/form/action_form.php +++ b/ai/provider/openai/classes/form/action_form.php @@ -84,8 +84,23 @@ class action_form extends action_settings_form { } else { // Set the model to the selected model template. $data->model = $data->modeltemplate; - } + // Cast settings to their intended types. + if ($data->model === 'gpt-4o' || $data->model === 'o1') { + if (isset($data->top_p)) { + $data->top_p = floatval($data->top_p); + } + if (isset($data->max_completion_tokens)) { + $data->max_completion_tokens = intval($data->max_completion_tokens); + } + if (isset($data->presence_penalty)) { + $data->presence_penalty = floatval($data->presence_penalty); + } + if (isset($data->frequency_penalty)) { + $data->frequency_penalty = floatval($data->frequency_penalty); + } + } + } } // Unset the model template. unset($data->custommodel);