-record(create_chat_completion_request, { model :: binary(), messages :: list(glopenai@chat:chat_message()), temperature :: gleam@option:option(float()), top_p :: gleam@option:option(float()), n :: gleam@option:option(integer()), stream :: gleam@option:option(boolean()), stream_options :: gleam@option:option(glopenai@chat:chat_completion_stream_options()), stop :: gleam@option:option(glopenai@chat:stop_configuration()), max_completion_tokens :: gleam@option:option(integer()), frequency_penalty :: gleam@option:option(float()), presence_penalty :: gleam@option:option(float()), logprobs :: gleam@option:option(boolean()), top_logprobs :: gleam@option:option(integer()), response_format :: gleam@option:option(glopenai@shared:response_format()), tools :: gleam@option:option(list(glopenai@chat:chat_completion_tool())), tool_choice :: gleam@option:option(glopenai@chat:tool_choice()), parallel_tool_calls :: gleam@option:option(boolean()), reasoning_effort :: gleam@option:option(glopenai@shared:reasoning_effort()), modalities :: gleam@option:option(list(glopenai@chat:response_modality())), verbosity :: gleam@option:option(glopenai@chat:verbosity()), web_search_options :: gleam@option:option(glopenai@chat:web_search_options()), store :: gleam@option:option(boolean()), metadata :: gleam@option:option(gleam@dict:dict(binary(), binary())), service_tier :: gleam@option:option(glopenai@chat:service_tier()), safety_identifier :: gleam@option:option(binary()), prompt_cache_key :: gleam@option:option(binary()) }).