Current section

Files

Jump to
oapi_open_ai lib schemas chat completion create_request.ex
Raw

lib/schemas/chat/completion/create_request.ex

defmodule OpenAi.Chat.Completion.CreateRequest do
@moduledoc """
Provides struct and type for a Chat.Completion.CreateRequest
"""
@type t :: %__MODULE__{
frequency_penalty: number | nil,
function_call: OpenAi.Chat.Completion.FunctionCallOption.t() | String.t() | nil,
functions: [OpenAi.Chat.Completion.Function.t()] | nil,
logit_bias: OpenAi.Chat.Completion.CreateRequest.LogitBias.t() | nil,
logprobs: boolean | nil,
max_tokens: integer | nil,
messages: [
OpenAi.Chat.Completion.Request.AssistantMessage.t()
| OpenAi.Chat.Completion.Request.FunctionMessage.t()
| OpenAi.Chat.Completion.Request.SystemMessage.t()
| OpenAi.Chat.Completion.Request.ToolMessage.t()
| OpenAi.Chat.Completion.Request.UserMessage.t()
],
model: String.t(),
n: integer | nil,
parallel_tool_calls: boolean | nil,
presence_penalty: number | nil,
response_format: OpenAi.Chat.Completion.Request.CreateResponseFormat.t() | nil,
seed: integer | nil,
service_tier: String.t() | nil,
stop: String.t() | [String.t()] | nil,
stream: boolean | nil,
stream_options: OpenAi.Chat.Completion.StreamOptions.t() | nil,
temperature: number | nil,
tool_choice: OpenAi.Chat.Completion.NamedTool.Choice.t() | String.t() | nil,
tools: [OpenAi.Chat.Completion.Tool.t()] | nil,
top_logprobs: integer | nil,
top_p: number | nil,
user: String.t() | nil
}
defstruct [
:frequency_penalty,
:function_call,
:functions,
:logit_bias,
:logprobs,
:max_tokens,
:messages,
:model,
:n,
:parallel_tool_calls,
:presence_penalty,
:response_format,
:seed,
:service_tier,
:stop,
:stream,
:stream_options,
:temperature,
:tool_choice,
:tools,
:top_logprobs,
:top_p,
:user
]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:t) do
[
frequency_penalty: :number,
function_call:
{:union, [{OpenAi.Chat.Completion.FunctionCallOption, :t}, enum: ["none", "auto"]]},
functions: [{OpenAi.Chat.Completion.Function, :t}],
logit_bias: {OpenAi.Chat.Completion.CreateRequest.LogitBias, :t},
logprobs: :boolean,
max_tokens: :integer,
messages: [
union: [
{OpenAi.Chat.Completion.Request.AssistantMessage, :t},
{OpenAi.Chat.Completion.Request.FunctionMessage, :t},
{OpenAi.Chat.Completion.Request.SystemMessage, :t},
{OpenAi.Chat.Completion.Request.ToolMessage, :t},
{OpenAi.Chat.Completion.Request.UserMessage, :t}
]
],
model:
{:union,
enum: [
"gpt-4o",
"gpt-4o-2024-05-13",
"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"
],
string: :generic},
n: :integer,
parallel_tool_calls: :boolean,
presence_penalty: :number,
response_format: {OpenAi.Chat.Completion.Request.CreateResponseFormat, :t},
seed: :integer,
service_tier: {:enum, ["auto", "default"]},
stop: {:union, [{:string, :generic}, [string: :generic]]},
stream: :boolean,
stream_options: {OpenAi.Chat.Completion.StreamOptions, :t},
temperature: :number,
tool_choice:
{:union,
[{OpenAi.Chat.Completion.NamedTool.Choice, :t}, enum: ["none", "auto", "required"]]},
tools: [{OpenAi.Chat.Completion.Tool, :t}],
top_logprobs: :integer,
top_p: :number,
user: {:string, :generic}
]
end
end