Class ChatCompletionCreateParams
-
- All Implemented Interfaces:
-
com.openai.core.Params
public final class ChatCompletionCreateParams implements Params
Starting a new project? We recommend trying Responses to take advantage of the latest OpenAI platform features. Compare Chat Completions with Responses.
Creates a model response for the given chat conversation. Learn more in the text generation, vision, and audio guides.
Parameter support can differ depending on the model used to generate the response, particularly for newer reasoning models. Parameters that are only supported for reasoning models are noted below. For the current state of unsupported parameters in reasoning models, refer to the reasoning guide.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public final class
ChatCompletionCreateParams.Builder
A builder for ChatCompletionCreateParams.
public final class
ChatCompletionCreateParams.Body
public final class
ChatCompletionCreateParams.FunctionCall
Deprecated in favor of
tool_choice
.Controls which (if any) function is called by the model.
none
means the model will not call a function and instead generates a message.auto
means the model can pick between generating a message or calling a function.Specifying a particular function via
{"name": "my_function"}
forces the model to call that function.none
is the default when no functions are present.auto
is the default if functions are present.public final class
ChatCompletionCreateParams.Function
public final class
ChatCompletionCreateParams.LogitBias
Modify the likelihood of specified tokens appearing in the completion.
Accepts a JSON object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
public final class
ChatCompletionCreateParams.Metadata
Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.
Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
public final class
ChatCompletionCreateParams.Modality
public final class
ChatCompletionCreateParams.ResponseFormat
An object specifying the format that the model must output.
Setting to
{ "type": "json_schema", "json_schema": {...} }
enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the Structured Outputs guide.Setting to
{ "type": "json_object" }
enables the older JSON mode, which ensures the message the model generates is valid JSON. Usingjson_schema
is preferred for models that support it.public final class
ChatCompletionCreateParams.ServiceTier
Specifies the latency tier to use for processing the request. This parameter is relevant for customers subscribed to the scale tier service:
If set to 'auto', and the Project is Scale tier enabled, the system will utilize scale tier credits until they are exhausted.
If set to 'auto', and the Project is not Scale tier enabled, the request will be processed using the default service tier with a lower uptime SLA and no latency guarantee.
If set to 'default', the request will be processed using the default service tier with a lower uptime SLA and no latency guarantee.
If set to 'flex', the request will be processed with the Flex Processing service tier. Learn more.
When not set, the default behavior is 'auto'.
When this parameter is set, the response body will include the
service_tier
utilized.public final class
ChatCompletionCreateParams.Stop
Not supported with latest reasoning models
o3
ando4-mini
.Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
public final class
ChatCompletionCreateParams.WebSearchOptions
This tool searches the web for relevant results to use in a response. Learn more about the web search tool.
-
Method Summary
Modifier and Type Method Description final List<ChatCompletionMessageParam>
messages()
A list of messages comprising the conversation so far. final ChatModel
model()
Model ID used to generate the response, like gpt-4o
oro3
.final Optional<ChatCompletionAudioParam>
audio()
Parameters for audio output. final Optional<Double>
frequencyPenalty()
Number between -2.0 and 2.0. final Optional<ChatCompletionCreateParams.FunctionCall>
functionCall()
Deprecated in favor of tool_choice
.final Optional<List<ChatCompletionCreateParams.Function>>
functions()
Deprecated in favor of tools
.final Optional<ChatCompletionCreateParams.LogitBias>
logitBias()
Modify the likelihood of specified tokens appearing in the completion. final Optional<Boolean>
logprobs()
Whether to return log probabilities of the output tokens or not. final Optional<Long>
maxCompletionTokens()
An upper bound for the number of tokens that can be generated for a completion, including visible output tokens and reasoning tokens. final Optional<Long>
maxTokens()
The maximum number of /tokenizer that can be generated in the chat completion. final Optional<ChatCompletionCreateParams.Metadata>
metadata()
Set of 16 key-value pairs that can be attached to an object. final Optional<List<ChatCompletionCreateParams.Modality>>
modalities()
Output types that you would like the model to generate. final Optional<Long>
n()
How many chat completion choices to generate for each input message. final Optional<Boolean>
parallelToolCalls()
Whether to enable parallel function calling during tool use. final Optional<ChatCompletionPredictionContent>
prediction()
Static predicted output content, such as the content of a text file that is being regenerated. final Optional<Double>
presencePenalty()
Number between -2.0 and 2.0. final Optional<ReasoningEffort>
reasoningEffort()
o-series models onlyConstrains effort on reasoning for reasoning models. final Optional<ChatCompletionCreateParams.ResponseFormat>
responseFormat()
An object specifying the format that the model must output. final Optional<Long>
seed()
This feature is in Beta. final Optional<ChatCompletionCreateParams.ServiceTier>
serviceTier()
Specifies the latency tier to use for processing the request. final Optional<ChatCompletionCreateParams.Stop>
stop()
Not supported with latest reasoning models o3
ando4-mini
.final Optional<Boolean>
store()
Whether or not to store the output of this chat completion request for use in our model distillation or evals products. final Optional<ChatCompletionStreamOptions>
streamOptions()
Options for streaming response. final Optional<Double>
temperature()
What sampling temperature to use, between 0 and 2. final Optional<ChatCompletionToolChoiceOption>
toolChoice()
Controls which (if any) tool is called by the model. final Optional<List<ChatCompletionTool>>
tools()
A list of tools the model may call. final Optional<Long>
topLogprobs()
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. final Optional<Double>
topP()
An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. final Optional<String>
user()
A stable identifier for your end-users. final Optional<ChatCompletionCreateParams.WebSearchOptions>
webSearchOptions()
This tool searches the web for relevant results to use in a response. final JsonField<List<ChatCompletionMessageParam>>
_messages()
Returns the raw JSON value of messages. final JsonField<ChatModel>
_model()
Returns the raw JSON value of model. final JsonField<ChatCompletionAudioParam>
_audio()
Returns the raw JSON value of audio. final JsonField<Double>
_frequencyPenalty()
Returns the raw JSON value of frequencyPenalty. final JsonField<ChatCompletionCreateParams.FunctionCall>
_functionCall()
Returns the raw JSON value of functionCall. final JsonField<List<ChatCompletionCreateParams.Function>>
_functions()
Returns the raw JSON value of functions. final JsonField<ChatCompletionCreateParams.LogitBias>
_logitBias()
Returns the raw JSON value of logitBias. final JsonField<Boolean>
_logprobs()
Returns the raw JSON value of logprobs. final JsonField<Long>
_maxCompletionTokens()
Returns the raw JSON value of maxCompletionTokens. final JsonField<Long>
_maxTokens()
Returns the raw JSON value of maxTokens. final JsonField<ChatCompletionCreateParams.Metadata>
_metadata()
Returns the raw JSON value of metadata. final JsonField<List<ChatCompletionCreateParams.Modality>>
_modalities()
Returns the raw JSON value of modalities. final JsonField<Long>
_n()
Returns the raw JSON value of n. final JsonField<Boolean>
_parallelToolCalls()
Returns the raw JSON value of parallelToolCalls. final JsonField<ChatCompletionPredictionContent>
_prediction()
Returns the raw JSON value of prediction. final JsonField<Double>
_presencePenalty()
Returns the raw JSON value of presencePenalty. final JsonField<ReasoningEffort>
_reasoningEffort()
Returns the raw JSON value of reasoningEffort. final JsonField<ChatCompletionCreateParams.ResponseFormat>
_responseFormat()
Returns the raw JSON value of responseFormat. final JsonField<Long>
_seed()
Returns the raw JSON value of seed. final JsonField<ChatCompletionCreateParams.ServiceTier>
_serviceTier()
Returns the raw JSON value of serviceTier. final JsonField<ChatCompletionCreateParams.Stop>
_stop()
Returns the raw JSON value of stop. final JsonField<Boolean>
_store()
Returns the raw JSON value of store. final JsonField<ChatCompletionStreamOptions>
_streamOptions()
Returns the raw JSON value of streamOptions. final JsonField<Double>
_temperature()
Returns the raw JSON value of temperature. final JsonField<ChatCompletionToolChoiceOption>
_toolChoice()
Returns the raw JSON value of toolChoice. final JsonField<List<ChatCompletionTool>>
_tools()
Returns the raw JSON value of tools. final JsonField<Long>
_topLogprobs()
Returns the raw JSON value of topLogprobs. final JsonField<Double>
_topP()
Returns the raw JSON value of topP. final JsonField<String>
_user()
Returns the raw JSON value of user. final JsonField<ChatCompletionCreateParams.WebSearchOptions>
_webSearchOptions()
Returns the raw JSON value of webSearchOptions. final Map<String, JsonValue>
_additionalBodyProperties()
final Headers
_additionalHeaders()
final QueryParams
_additionalQueryParams()
final ChatCompletionCreateParams.Builder
toBuilder()
final ChatCompletionCreateParams.Body
_body()
Headers
_headers()
The full set of headers in the parameters, including both fixed and additional headers. QueryParams
_queryParams()
The full set of query params in the parameters, including both fixed and additional query params. Boolean
equals(Object other)
Integer
hashCode()
String
toString()
final static ChatCompletionCreateParams.Builder
builder()
Returns a mutable builder for constructing an instance of ChatCompletionCreateParams. -
-
Method Detail
-
messages
final List<ChatCompletionMessageParam> messages()
A list of messages comprising the conversation so far. Depending on the model you use, different message types (modalities) are supported, like text, images, and audio.
-
model
final ChatModel model()
Model ID used to generate the response, like
gpt-4o
oro3
. OpenAI offers a wide range of models with different capabilities, performance characteristics, and price points. Refer to the model guide to browse and compare available models.
-
audio
final Optional<ChatCompletionAudioParam> audio()
Parameters for audio output. Required when audio output is requested with
modalities: ["audio"]
. Learn more.
-
frequencyPenalty
final Optional<Double> frequencyPenalty()
Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
-
functionCall
@Deprecated(message = "deprecated") final Optional<ChatCompletionCreateParams.FunctionCall> functionCall()
Deprecated in favor of
tool_choice
.Controls which (if any) function is called by the model.
none
means the model will not call a function and instead generates a message.auto
means the model can pick between generating a message or calling a function.Specifying a particular function via
{"name": "my_function"}
forces the model to call that function.none
is the default when no functions are present.auto
is the default if functions are present.
-
functions
@Deprecated(message = "deprecated") final Optional<List<ChatCompletionCreateParams.Function>> functions()
Deprecated in favor of
tools
.A list of functions the model may generate JSON inputs for.
-
logitBias
final Optional<ChatCompletionCreateParams.LogitBias> logitBias()
Modify the likelihood of specified tokens appearing in the completion.
Accepts a JSON object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
-
logprobs
final Optional<Boolean> logprobs()
Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the
content
ofmessage
.
-
maxCompletionTokens
final Optional<Long> maxCompletionTokens()
An upper bound for the number of tokens that can be generated for a completion, including visible output tokens and reasoning tokens.
-
maxTokens
@Deprecated(message = "deprecated") final Optional<Long> maxTokens()
The maximum number of /tokenizer that can be generated in the chat completion. This value can be used to control costs for text generated via API.
This value is now deprecated in favor of
max_completion_tokens
, and is not compatible with o-series models.
-
metadata
final Optional<ChatCompletionCreateParams.Metadata> metadata()
Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.
Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
-
modalities
final Optional<List<ChatCompletionCreateParams.Modality>> modalities()
Output types that you would like the model to generate. Most models are capable of generating text, which is the default:
["text"]
The
gpt-4o-audio-preview
model can also be used to generate audio. To request that this model generate both text and audio responses, you can use:["text", "audio"]
-
n
final Optional<Long> n()
How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep
n
as1
to minimize costs.
-
parallelToolCalls
final Optional<Boolean> parallelToolCalls()
Whether to enable parallel function calling during tool use.
-
prediction
final Optional<ChatCompletionPredictionContent> prediction()
Static predicted output content, such as the content of a text file that is being regenerated.
-
presencePenalty
final Optional<Double> presencePenalty()
Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
-
reasoningEffort
final Optional<ReasoningEffort> reasoningEffort()
o-series models only
Constrains effort on reasoning for reasoning models. Currently supported values are
low
,medium
, andhigh
. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response.
-
responseFormat
final Optional<ChatCompletionCreateParams.ResponseFormat> responseFormat()
An object specifying the format that the model must output.
Setting to
{ "type": "json_schema", "json_schema": {...} }
enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the Structured Outputs guide.Setting to
{ "type": "json_object" }
enables the older JSON mode, which ensures the message the model generates is valid JSON. Usingjson_schema
is preferred for models that support it.
-
seed
final Optional<Long> seed()
This feature is in Beta. If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same
seed
and parameters should return the same result. Determinism is not guaranteed, and you should refer to thesystem_fingerprint
response parameter to monitor changes in the backend.
-
serviceTier
final Optional<ChatCompletionCreateParams.ServiceTier> serviceTier()
Specifies the latency tier to use for processing the request. This parameter is relevant for customers subscribed to the scale tier service:
If set to 'auto', and the Project is Scale tier enabled, the system will utilize scale tier credits until they are exhausted.
If set to 'auto', and the Project is not Scale tier enabled, the request will be processed using the default service tier with a lower uptime SLA and no latency guarantee.
If set to 'default', the request will be processed using the default service tier with a lower uptime SLA and no latency guarantee.
If set to 'flex', the request will be processed with the Flex Processing service tier. Learn more.
When not set, the default behavior is 'auto'.
When this parameter is set, the response body will include the
service_tier
utilized.
-
stop
final Optional<ChatCompletionCreateParams.Stop> stop()
Not supported with latest reasoning models
o3
ando4-mini
.Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
-
store
final Optional<Boolean> store()
Whether or not to store the output of this chat completion request for use in our model distillation or evals products.
-
streamOptions
final Optional<ChatCompletionStreamOptions> streamOptions()
Options for streaming response. Only set this when you set
stream: true
.
-
temperature
final Optional<Double> temperature()
What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or
top_p
but not both.
-
toolChoice
final Optional<ChatCompletionToolChoiceOption> toolChoice()
Controls which (if any) tool is called by the model.
none
means the model will not call any tool and instead generates a message.auto
means the model can pick between generating a message or calling one or more tools.required
means the model must call one or more tools. Specifying a particular tool via{"type": "function", "function": {"name": "my_function"}}
forces the model to call that tool.none
is the default when no tools are present.auto
is the default if tools are present.
-
tools
final Optional<List<ChatCompletionTool>> tools()
A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for. A max of 128 functions are supported.
-
topLogprobs
final Optional<Long> topLogprobs()
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.
logprobs
must be set totrue
if this parameter is used.
-
topP
final Optional<Double> topP()
An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
We generally recommend altering this or
temperature
but not both.
-
user
final Optional<String> user()
A stable identifier for your end-users. Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. Learn more.
-
webSearchOptions
final Optional<ChatCompletionCreateParams.WebSearchOptions> webSearchOptions()
This tool searches the web for relevant results to use in a response. Learn more about the web search tool.
-
_messages
final JsonField<List<ChatCompletionMessageParam>> _messages()
Returns the raw JSON value of messages.
Unlike messages, this method doesn't throw if the JSON field has an unexpected type.
-
_model
final JsonField<ChatModel> _model()
Returns the raw JSON value of model.
Unlike model, this method doesn't throw if the JSON field has an unexpected type.
-
_audio
final JsonField<ChatCompletionAudioParam> _audio()
Returns the raw JSON value of audio.
Unlike audio, this method doesn't throw if the JSON field has an unexpected type.
-
_frequencyPenalty
final JsonField<Double> _frequencyPenalty()
Returns the raw JSON value of frequencyPenalty.
Unlike frequencyPenalty, this method doesn't throw if the JSON field has an unexpected type.
-
_functionCall
@Deprecated(message = "deprecated") final JsonField<ChatCompletionCreateParams.FunctionCall> _functionCall()
Returns the raw JSON value of functionCall.
Unlike functionCall, this method doesn't throw if the JSON field has an unexpected type.
-
_functions
@Deprecated(message = "deprecated") final JsonField<List<ChatCompletionCreateParams.Function>> _functions()
Returns the raw JSON value of functions.
Unlike functions, this method doesn't throw if the JSON field has an unexpected type.
-
_logitBias
final JsonField<ChatCompletionCreateParams.LogitBias> _logitBias()
Returns the raw JSON value of logitBias.
Unlike logitBias, this method doesn't throw if the JSON field has an unexpected type.
-
_logprobs
final JsonField<Boolean> _logprobs()
Returns the raw JSON value of logprobs.
Unlike logprobs, this method doesn't throw if the JSON field has an unexpected type.
-
_maxCompletionTokens
final JsonField<Long> _maxCompletionTokens()
Returns the raw JSON value of maxCompletionTokens.
Unlike maxCompletionTokens, this method doesn't throw if the JSON field has an unexpected type.
-
_maxTokens
@Deprecated(message = "deprecated") final JsonField<Long> _maxTokens()
Returns the raw JSON value of maxTokens.
Unlike maxTokens, this method doesn't throw if the JSON field has an unexpected type.
-
_metadata
final JsonField<ChatCompletionCreateParams.Metadata> _metadata()
Returns the raw JSON value of metadata.
Unlike metadata, this method doesn't throw if the JSON field has an unexpected type.
-
_modalities
final JsonField<List<ChatCompletionCreateParams.Modality>> _modalities()
Returns the raw JSON value of modalities.
Unlike modalities, this method doesn't throw if the JSON field has an unexpected type.
-
_n
final JsonField<Long> _n()
Returns the raw JSON value of n.
Unlike n, this method doesn't throw if the JSON field has an unexpected type.
-
_parallelToolCalls
final JsonField<Boolean> _parallelToolCalls()
Returns the raw JSON value of parallelToolCalls.
Unlike parallelToolCalls, this method doesn't throw if the JSON field has an unexpected type.
-
_prediction
final JsonField<ChatCompletionPredictionContent> _prediction()
Returns the raw JSON value of prediction.
Unlike prediction, this method doesn't throw if the JSON field has an unexpected type.
-
_presencePenalty
final JsonField<Double> _presencePenalty()
Returns the raw JSON value of presencePenalty.
Unlike presencePenalty, this method doesn't throw if the JSON field has an unexpected type.
-
_reasoningEffort
final JsonField<ReasoningEffort> _reasoningEffort()
Returns the raw JSON value of reasoningEffort.
Unlike reasoningEffort, this method doesn't throw if the JSON field has an unexpected type.
-
_responseFormat
final JsonField<ChatCompletionCreateParams.ResponseFormat> _responseFormat()
Returns the raw JSON value of responseFormat.
Unlike responseFormat, this method doesn't throw if the JSON field has an unexpected type.
-
_seed
final JsonField<Long> _seed()
Returns the raw JSON value of seed.
Unlike seed, this method doesn't throw if the JSON field has an unexpected type.
-
_serviceTier
final JsonField<ChatCompletionCreateParams.ServiceTier> _serviceTier()
Returns the raw JSON value of serviceTier.
Unlike serviceTier, this method doesn't throw if the JSON field has an unexpected type.
-
_stop
final JsonField<ChatCompletionCreateParams.Stop> _stop()
Returns the raw JSON value of stop.
Unlike stop, this method doesn't throw if the JSON field has an unexpected type.
-
_store
final JsonField<Boolean> _store()
Returns the raw JSON value of store.
Unlike store, this method doesn't throw if the JSON field has an unexpected type.
-
_streamOptions
final JsonField<ChatCompletionStreamOptions> _streamOptions()
Returns the raw JSON value of streamOptions.
Unlike streamOptions, this method doesn't throw if the JSON field has an unexpected type.
-
_temperature
final JsonField<Double> _temperature()
Returns the raw JSON value of temperature.
Unlike temperature, this method doesn't throw if the JSON field has an unexpected type.
-
_toolChoice
final JsonField<ChatCompletionToolChoiceOption> _toolChoice()
Returns the raw JSON value of toolChoice.
Unlike toolChoice, this method doesn't throw if the JSON field has an unexpected type.
-
_tools
final JsonField<List<ChatCompletionTool>> _tools()
Returns the raw JSON value of tools.
Unlike tools, this method doesn't throw if the JSON field has an unexpected type.
-
_topLogprobs
final JsonField<Long> _topLogprobs()
Returns the raw JSON value of topLogprobs.
Unlike topLogprobs, this method doesn't throw if the JSON field has an unexpected type.
-
_topP
final JsonField<Double> _topP()
Returns the raw JSON value of topP.
Unlike topP, this method doesn't throw if the JSON field has an unexpected type.
-
_user
final JsonField<String> _user()
Returns the raw JSON value of user.
Unlike user, this method doesn't throw if the JSON field has an unexpected type.
-
_webSearchOptions
final JsonField<ChatCompletionCreateParams.WebSearchOptions> _webSearchOptions()
Returns the raw JSON value of webSearchOptions.
Unlike webSearchOptions, this method doesn't throw if the JSON field has an unexpected type.
-
_additionalBodyProperties
final Map<String, JsonValue> _additionalBodyProperties()
-
_additionalHeaders
final Headers _additionalHeaders()
-
_additionalQueryParams
final QueryParams _additionalQueryParams()
-
toBuilder
final ChatCompletionCreateParams.Builder toBuilder()
-
_body
final ChatCompletionCreateParams.Body _body()
-
_headers
Headers _headers()
The full set of headers in the parameters, including both fixed and additional headers.
-
_queryParams
QueryParams _queryParams()
The full set of query params in the parameters, including both fixed and additional query params.
-
builder
final static ChatCompletionCreateParams.Builder builder()
Returns a mutable builder for constructing an instance of ChatCompletionCreateParams.
The following fields are required:
.messages() .model()
-
-
-
-