module AI::OpenAI::Responses

Defined in:

ai/openai/responses/convert_openai_responses_usage.cr
ai/openai/responses/openai_responses_api.cr
ai/openai/responses/openai_responses_language_model.cr
ai/openai/responses/openai_responses_options.cr
ai/openai/responses/openai_responses_prepare_tools.cr
ai/openai/responses/openai_responses_provider_metadata.cr

Constant Summary

MODEL_IDS = ["gpt-4.1", "gpt-4.1-2025-04-14", "gpt-4.1-mini", "gpt-4.1-mini-2025-04-14", "gpt-4.1-nano", "gpt-4.1-nano-2025-04-14", "gpt-4o", "gpt-4o-2024-05-13", "gpt-4o-2024-08-06", "gpt-4o-2024-11-20", "gpt-4o-audio-preview", "gpt-4o-audio-preview-2024-10-01", "gpt-4o-audio-preview-2024-12-17", "gpt-4o-search-preview", "gpt-4o-search-preview-2025-03-11", "gpt-4o-mini-search-preview", "gpt-4o-mini-search-preview-2025-03-11", "gpt-4o-mini", "gpt-4o-mini-2024-07-18", "gpt-4-turbo", "gpt-4-turbo-2024-04-09", "gpt-4-turbo-preview", "gpt-4-0125-preview", "gpt-4-1106-preview", "gpt-4", "gpt-4-0613", "gpt-4.5-preview", "gpt-4.5-preview-2025-02-27", "gpt-3.5-turbo-0125", "gpt-3.5-turbo", "gpt-3.5-turbo-1106", "chatgpt-4o-latest", "gpt-5-chat-latest"] + REASONING_MODEL_IDS

All supported model IDs for Responses API

REASONING_MODEL_IDS = ["o1", "o1-2024-12-17", "o3", "o3-2025-04-16", "o3-deep-research", "o3-deep-research-2025-06-26", "o3-mini", "o3-mini-2025-01-31", "o4-mini", "o4-mini-2025-04-16", "o4-mini-deep-research", "o4-mini-deep-research-2025-06-26", "codex-mini-latest", "computer-use-preview", "gpt-5", "gpt-5-2025-08-07", "gpt-5-codex", "gpt-5-mini", "gpt-5-mini-2025-08-07", "gpt-5-nano", "gpt-5-nano-2025-08-07", "gpt-5-pro", "gpt-5-pro-2025-10-06", "gpt-5.1", "gpt-5.1-chat-latest", "gpt-5.1-codex-mini", "gpt-5.1-codex", "gpt-5.1-codex-max", "gpt-5.2", "gpt-5.2-chat-latest", "gpt-5.2-pro"]

Reasoning model IDs that require special handling

TOP_LOGPROBS_MAX = 20

top_logprobs request body argument can be set to an integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability.

https://platform.openai.com/docs/api-reference/responses/create#responses_create-top_logprobs

Class Method Summary

Class Method Detail

def self.convert_responses_usage(usage : ResponsesUsage | Nil) : AI::Provider::LanguageModel::Usage #

Convert OpenAI Responses API usage to SDK usage format


[View source]
def self.map_responses_finish_reason(finish_reason : String | Nil, has_function_call : Bool) : AI::Provider::LanguageModel::UnifiedFinishReason #

Map OpenAI Responses API finish reason to SDK finish reason


[View source]
def self.prepare_responses_tools(tools : Array(Provider::LanguageModel::Tool) | Nil, tool_choice : Provider::LanguageModel::ToolChoice | Nil) : NamedTuple(tools: Array(Hash(String, JSON::Any)) | Nil, tool_choice: ResponsesToolChoice, tool_warnings: Array(Provider::Shared::Warning)) #

Prepare tools for the Responses API


[View source]
def self.reasoning_model?(model_id : String) : Bool #

Check if a model ID is a reasoning model


[View source]