Current section

Files

Jump to
oapi_open_ai lib schemas response.ex
Raw

lib/schemas/response.ex

defmodule OpenAi.Response do
@moduledoc """
Provides struct and type for a Response
"""
@type t :: %__MODULE__{
created_at: number | nil,
error: OpenAi.Response.Error.t() | nil,
id: String.t() | nil,
incomplete_details: OpenAi.Response.IncompleteDetails.t() | nil,
instructions: String.t() | nil,
max_output_tokens: integer | nil,
metadata: map | nil,
model: String.t() | nil,
object: String.t() | nil,
output:
[
OpenAi.Response.Computer.ToolCall.t()
| OpenAi.Response.FileSearch.Tool.Call.t()
| OpenAi.Response.Function.ToolCall.t()
| OpenAi.Response.Output.Message.t()
| OpenAi.Response.Reasoning.Item.t()
| OpenAi.Response.WebSearch.ToolCall.t()
]
| nil,
output_text: String.t() | nil,
parallel_tool_calls: boolean | nil,
previous_response_id: String.t() | nil,
reasoning: OpenAi.Response.Reasoning.t() | nil,
service_tier: String.t() | nil,
status: String.t() | nil,
temperature: number | nil,
text: map | nil,
tool_choice:
OpenAi.Tool.Choice.Function.t() | OpenAi.Tool.Choice.Types.t() | String.t() | nil,
tools:
[
OpenAi.Response.Computer.UsePreviewTool.t()
| OpenAi.Response.FileSearch.Tool.t()
| OpenAi.Response.Function.Tool.t()
| OpenAi.Response.WebSearch.PreviewTool.t()
]
| nil,
top_p: number | nil,
truncation: String.t() | nil,
usage: OpenAi.Response.Usage.t() | nil,
user: String.t() | nil
}
defstruct [
:created_at,
:error,
:id,
:incomplete_details,
:instructions,
:max_output_tokens,
:metadata,
:model,
:object,
:output,
:output_text,
:parallel_tool_calls,
:previous_response_id,
:reasoning,
:service_tier,
:status,
:temperature,
:text,
:tool_choice,
:tools,
:top_p,
:truncation,
:usage,
:user
]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:t) do
[
created_at: :number,
error: {OpenAi.Response.Error, :t},
id: {:string, :generic},
incomplete_details: {OpenAi.Response.IncompleteDetails, :t},
instructions: {:string, :generic},
max_output_tokens: :integer,
metadata: :map,
model:
{:union,
enum: [
"gpt-4.1",
"gpt-4.1-mini",
"gpt-4.1-nano",
"gpt-4.1-2025-04-14",
"gpt-4.1-mini-2025-04-14",
"gpt-4.1-nano-2025-04-14",
"o4-mini",
"o4-mini-2025-04-16",
"o3",
"o3-2025-04-16",
"o3-mini",
"o3-mini-2025-01-31",
"o1",
"o1-2024-12-17",
"o1-preview",
"o1-preview-2024-09-12",
"o1-mini",
"o1-mini-2024-09-12",
"gpt-4o",
"gpt-4o-2024-11-20",
"gpt-4o-2024-08-06",
"gpt-4o-2024-05-13",
"gpt-4o-audio-preview",
"gpt-4o-audio-preview-2024-10-01",
"gpt-4o-audio-preview-2024-12-17",
"gpt-4o-mini-audio-preview",
"gpt-4o-mini-audio-preview-2024-12-17",
"gpt-4o-search-preview",
"gpt-4o-mini-search-preview",
"gpt-4o-search-preview-2025-03-11",
"gpt-4o-mini-search-preview-2025-03-11",
"chatgpt-4o-latest",
"gpt-4o-mini",
"gpt-4o-mini-2024-07-18",
"gpt-4-turbo",
"gpt-4-turbo-2024-04-09",
"gpt-4-0125-preview",
"gpt-4-turbo-preview",
"gpt-4-1106-preview",
"gpt-4-vision-preview",
"gpt-4",
"gpt-4-0314",
"gpt-4-0613",
"gpt-4-32k",
"gpt-4-32k-0314",
"gpt-4-32k-0613",
"gpt-3.5-turbo",
"gpt-3.5-turbo-16k",
"gpt-3.5-turbo-0301",
"gpt-3.5-turbo-0613",
"gpt-3.5-turbo-1106",
"gpt-3.5-turbo-0125",
"gpt-3.5-turbo-16k-0613"
],
enum: [
"o1-pro",
"o1-pro-2025-03-19",
"computer-use-preview",
"computer-use-preview-2025-03-11"
],
string: :generic},
object: {:const, "response"},
output: [
union: [
{OpenAi.Response.Computer.ToolCall, :t},
{OpenAi.Response.FileSearch.Tool.Call, :t},
{OpenAi.Response.Function.ToolCall, :t},
{OpenAi.Response.Output.Message, :t},
{OpenAi.Response.Reasoning.Item, :t},
{OpenAi.Response.WebSearch.ToolCall, :t}
]
],
output_text: {:string, :generic},
parallel_tool_calls: :boolean,
previous_response_id: {:string, :generic},
reasoning: {OpenAi.Response.Reasoning, :t},
service_tier: {:enum, ["auto", "default", "flex"]},
status: {:enum, ["completed", "failed", "in_progress", "incomplete"]},
temperature: :number,
text: :map,
tool_choice:
{:union,
[
{OpenAi.Tool.Choice.Function, :t},
{OpenAi.Tool.Choice.Types, :t},
enum: ["none", "auto", "required"]
]},
tools: [
union: [
{OpenAi.Response.Computer.UsePreviewTool, :t},
{OpenAi.Response.FileSearch.Tool, :t},
{OpenAi.Response.Function.Tool, :t},
{OpenAi.Response.WebSearch.PreviewTool, :t}
]
],
top_p: :number,
truncation: {:enum, ["auto", "disabled"]},
usage: {OpenAi.Response.Usage, :t},
user: {:string, :generic}
]
end
end