openai-client-base 0.12.0

Auto-generated Rust client for the OpenAI API
# CreateChatCompletionRequest

## Properties

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**metadata** | Option<**std::collections::HashMap<String, String>**> | 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.  | [optional]
**top_logprobs** | Option<**i32**> | 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 to `true` if this parameter is used.  | [optional]
**temperature** | Option<**f64**> | 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.  | [optional]
**top_p** | Option<**f64**> | 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.  | [optional]
**user** | Option<**String**> | This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. 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](/docs/guides/safety-best-practices#safety-identifiers).  | [optional]
**safety_identifier** | Option<**String**> | A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. The IDs should be a string that uniquely identifies each user, with a maximum length of 64 characters. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](/docs/guides/safety-best-practices#safety-identifiers).  | [optional]
**prompt_cache_key** | Option<**String**> | Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](/docs/guides/prompt-caching).  | [optional]
**service_tier** | Option<[**models::ServiceTier**](ServiceTier.md)> |  | [optional]
**prompt_cache_retention** | Option<**String**> | The retention policy for the prompt cache. Set to `24h` to enable extended prompt caching, which keeps cached prefixes active for longer, up to a maximum of 24 hours. [Learn more](/docs/guides/prompt-caching#prompt-cache-retention).  | [optional]
**messages** | [**Vec<models::ChatCompletionRequestMessage>**](ChatCompletionRequestMessage.md) | A list of messages comprising the conversation so far. Depending on the [model](/docs/models) you use, different message types (modalities) are supported, like [text](/docs/guides/text-generation), [images](/docs/guides/vision), and [audio](/docs/guides/audio).  | 
**model** | **String** | Model identifier as string | 
**modalities** | Option<**Vec<String>**> | 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](/docs/guides/audio). To request that this model generate both text and audio responses, you can use:  `[\"text\", \"audio\"]`  | [optional]
**verbosity** | Option<[**models::Verbosity**](Verbosity.md)> |  | [optional]
**reasoning_effort** | Option<[**models::ReasoningEffort**](ReasoningEffort.md)> |  | [optional]
**max_completion_tokens** | Option<**i32**> | An upper bound for the number of tokens that can be generated for a completion, including visible output tokens and [reasoning tokens](/docs/guides/reasoning).  | [optional]
**frequency_penalty** | Option<**f64**> | 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.  | [optional]
**presence_penalty** | Option<**f64**> | 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.  | [optional]
**web_search_options** | Option<[**models::WebSearch**](Web_search.md)> |  | [optional]
**response_format** | Option<[**models::CreateChatCompletionRequestAllOfResponseFormat**](CreateChatCompletionRequest_allOf_response_format.md)> |  | [optional]
**audio** | Option<[**models::CreateChatCompletionRequestAllOfAudio**](CreateChatCompletionRequest_allOf_audio.md)> |  | [optional]
**store** | Option<**bool**> | Whether or not to store the output of this chat completion request for use in our [model distillation](/docs/guides/distillation) or [evals](/docs/guides/evals) products.  Supports text and image inputs. Note: image inputs over 8MB will be dropped.  | [optional]
**stream** | Option<**bool**> | If set to true, the model response data will be streamed to the client as it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format). See the [Streaming section below](/docs/api-reference/chat/streaming) for more information, along with the [streaming responses](/docs/guides/streaming-responses) guide for more information on how to handle the streaming events.  | [optional]
**stop** | Option<[**models::StopConfiguration**](StopConfiguration.md)> |  | [optional]
**logit_bias** | Option<**std::collections::HashMap<String, i32>**> | 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.  | [optional]
**logprobs** | Option<**bool**> | 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` of `message`.  | [optional]
**max_tokens** | Option<**i32**> | The maximum number of [tokens](/tokenizer) that can be generated in the chat completion. This value can be used to control [costs](https://openai.com/api/pricing/) for text generated via API.  This value is now deprecated in favor of `max_completion_tokens`, and is not compatible with [o-series models](/docs/guides/reasoning).  | [optional]
**n** | Option<**i32**> | 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` as `1` to minimize costs. | [optional]
**prediction** | Option<[**models::PredictionContent**](PredictionContent.md)> |  | [optional]
**seed** | Option<**i32**> | 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 the `system_fingerprint` response parameter to monitor changes in the backend.  | [optional]
**stream_options** | Option<[**models::ChatCompletionStreamOptions**](ChatCompletionStreamOptions.md)> |  | [optional]
**tools** | Option<[**Vec<models::CreateChatCompletionRequestAllOfTools>**](CreateChatCompletionRequest_allOf_tools.md)> | A list of tools the model may call. You can provide either [custom tools](/docs/guides/function-calling#custom-tools) or [function tools](/docs/guides/function-calling).  | [optional]
**tool_choice** | Option<[**models::ChatCompletionToolChoiceOption**](ChatCompletionToolChoiceOption.md)> |  | [optional]
**parallel_tool_calls** | Option<**bool**> | Whether to enable [parallel function calling](/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. | [optional]
**function_call** | Option<[**models::CreateChatCompletionRequestAllOfFunctionCall**](CreateChatCompletionRequest_allOf_function_call.md)> |  | [optional]
**functions** | Option<[**Vec<models::ChatCompletionFunctions>**](ChatCompletionFunctions.md)> | Deprecated in favor of `tools`.  A list of functions the model may generate JSON inputs for.  | [optional]

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)