#![allow(unused_imports)]
use super::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ChatCompletionChoiceFinishReason {
#[serde(rename = "stop")]
Stop,
#[serde(rename = "length")]
Length,
#[serde(rename = "tool_calls")]
ToolCalls,
#[serde(rename = "content_filter")]
ContentFilter,
#[serde(rename = "function_call")]
FunctionCall,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ChatCompletionServiceTier {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default")]
Default,
#[serde(rename = "flex")]
Flex,
#[serde(rename = "scale")]
Scale,
#[serde(rename = "priority")]
Priority,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatCompletion {
pub id: String,
pub choices: Vec<serde_json::Value>,
pub created: i64,
pub model: String,
pub object: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub service_tier: Option<ChatCompletionServiceTier>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub system_fingerprint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub usage: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatCompletionAudio {
pub id: String,
pub data: String,
pub expires_at: i64,
pub transcript: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChoiceDeltaFunctionCall {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub arguments: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChoiceDeltaToolCallFunction {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub arguments: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChoiceDeltaToolCall {
pub index: i64,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub function: Option<ChoiceDeltaToolCallFunction>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
pub type_: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ChoiceDeltaRole {
#[serde(rename = "developer")]
Developer,
#[serde(rename = "system")]
System,
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "tool")]
Tool,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ChunkChoiceFinishReason {
#[serde(rename = "stop")]
Stop,
#[serde(rename = "length")]
Length,
#[serde(rename = "tool_calls")]
ToolCalls,
#[serde(rename = "content_filter")]
ContentFilter,
#[serde(rename = "function_call")]
FunctionCall,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ChatCompletionChunkServiceTier {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default")]
Default,
#[serde(rename = "flex")]
Flex,
#[serde(rename = "scale")]
Scale,
#[serde(rename = "priority")]
Priority,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageURLDetail {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "low")]
Low,
#[serde(rename = "high")]
High,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageURL {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub detail: Option<ImageURLDetail>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatCompletionContentPartImage {
pub image_url: ImageURL,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatCompletionContentPartText {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatCompletionDeleted {
pub id: String,
pub deleted: bool,
pub object: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatCompletionFunctionTool {
pub function: serde_json::Value,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AnnotationURLCitation {
pub end_index: i64,
pub start_index: i64,
pub title: String,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Custom {
pub input: String,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatCompletionMessageCustomToolCall {
pub id: String,
pub custom: Custom,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct MessageFunctionFunction {
pub arguments: String,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatCompletionMessageFunctionToolCall {
pub id: String,
pub function: serde_json::Value,
#[serde(rename = "type")]
pub type_: String,
}
pub type ChatCompletionMessageToolCallUnion = serde_json::Value;
pub type ChatCompletionMessageToolCall = ChatCompletionMessageFunctionToolCall;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ChatCompletionModality {
#[serde(rename = "text")]
Text,
#[serde(rename = "audio")]
Audio,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ChatCompletionRole {
#[serde(rename = "developer")]
Developer,
#[serde(rename = "system")]
System,
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "tool")]
Tool,
#[serde(rename = "function")]
Function,
}
pub type ChatCompletionStoreMessageContentPart = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatCompletionTokenLogprob {
pub token: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub bytes: Option<Vec<i64>>,
pub logprob: f64,
pub top_logprobs: Vec<TopLogprob>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum CompletionCreateParamsBasePromptCacheRetention {
#[serde(rename = "in-memory")]
InMemory,
#[serde(rename = "24h")]
V24h,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum CompletionCreateParamsBaseServiceTier {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default")]
Default,
#[serde(rename = "flex")]
Flex,
#[serde(rename = "scale")]
Scale,
#[serde(rename = "priority")]
Priority,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum CompletionCreateParamsBaseVerbosity {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CompletionCreateParamsBase {
pub messages: Vec<serde_json::Value>,
pub model: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub audio: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub frequency_penalty: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub function_call: Option<FunctionCall>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub functions: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub logit_bias: Option<std::collections::HashMap<String, i64>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub logprobs: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_completion_tokens: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_tokens: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub modalities: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub n: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parallel_tool_calls: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prediction: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub presence_penalty: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prompt_cache_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prompt_cache_retention: Option<CompletionCreateParamsBasePromptCacheRetention>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reasoning_effort: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub response_format: Option<ResponseFormat>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub safety_identifier: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub seed: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub service_tier: Option<CompletionCreateParamsBaseServiceTier>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub stop: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub store: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub stream_options: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_choice: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_logprobs: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_p: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub user: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub verbosity: Option<CompletionCreateParamsBaseVerbosity>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub web_search_options: Option<WebSearchOptions>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CompletionCreateFunction {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parameters: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct WebSearchOptionsUserLocationApproximate {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub region: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub timezone: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct WebSearchOptionsUserLocation {
pub approximate: WebSearchOptionsUserLocationApproximate,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum WebSearchOptionsSearchContextSize {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
}
pub type CompletionCreateParams = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum CompletionListParamsOrder {
#[serde(rename = "asc")]
Asc,
#[serde(rename = "desc")]
Desc,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CompletionListParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub after: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub order: Option<CompletionListParamsOrder>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CompletionUpdateParams {
pub metadata: Option<serde_json::Value>,
}