#![allow(unused_imports)]
use serde::{Deserialize, Serialize};
use super::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolResourcesCodeInterpreter {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_ids: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolResourcesFileSearch {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub vector_store_ids: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolResources {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub code_interpreter: Option<ToolResourcesCodeInterpreter>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_search: Option<ToolResourcesFileSearch>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AssistantCreateParams {
pub model: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instructions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub name: Option<String>,
#[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<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_resources: Option<ToolResources>,
#[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_p: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolResourcesFileSearchVectorStoreChunkingStrategyAuto {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolResourcesFileSearchVectorStoreChunkingStrategyStaticStatic {
pub chunk_overlap_tokens: i64,
pub max_chunk_size_tokens: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolResourcesFileSearchVectorStoreChunkingStrategyStatic {
#[serde(rename = "static")]
pub static_: ToolResourcesFileSearchVectorStoreChunkingStrategyStaticStatic,
#[serde(rename = "type")]
pub type_: String,
}
pub type ToolResourcesFileSearchVectorStoreChunkingStrategy = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolResourcesFileSearchVectorStore {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub chunking_strategy: Option<ToolResourcesFileSearchVectorStoreChunkingStrategy>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_ids: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum AssistantListParamsOrder {
#[serde(rename = "asc")]
Asc,
#[serde(rename = "desc")]
Desc,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum AssistantResponseFormatOption {
Auto,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadCreated {
pub data: Thread,
pub event: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub enabled: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunCreated {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunQueued {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunInProgress {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunRequiresAction {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunCompleted {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunIncomplete {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunFailed {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunCancelling {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunCancelled {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunExpired {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunStepCreated {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunStepInProgress {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunStepDelta {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunStepCompleted {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunStepFailed {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunStepCancelled {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadRunStepExpired {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadMessageCreated {
pub data: Message,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadMessageInProgress {
pub data: Message,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadMessageDelta {
pub data: serde_json::Value,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadMessageCompleted {
pub data: Message,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadMessageIncomplete {
pub data: Message,
pub event: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ErrorEvent {
pub data: serde_json::Value,
pub event: String,
}
pub type AssistantStreamEvent = serde_json::Value;
pub type AssistantTool = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum AssistantToolChoiceType {
#[serde(rename = "function")]
Function,
#[serde(rename = "code_interpreter")]
CodeInterpreter,
#[serde(rename = "file_search")]
FileSearch,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AssistantToolChoice {
#[serde(rename = "type")]
pub type_: AssistantToolChoiceType,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub function: Option<AssistantToolChoiceFunction>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AssistantToolChoiceFunction {
pub name: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum AssistantToolChoiceOption {
None,
Auto,
Required,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AssistantUpdateParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instructions: Option<String>,
#[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 name: Option<String>,
#[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<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_resources: Option<ToolResources>,
#[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_p: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Tracing {
pub enabled: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ChatKitWorkflow {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub state_variables: Option<std::collections::HashMap<String, serde_json::Value>>,
pub tracing: Tracing,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub version: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CodeInterpreterTool {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum FileSearchRankingOptionsRanker {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default_2024_08_21")]
Default20240821,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct FileSearch {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_num_results: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub ranking_options: Option<FileSearchRankingOptions>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct FileSearchTool {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_search: Option<FileSearch>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct FunctionTool {
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 ThreadCreateAndRunParamsBase {
pub assistant_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instructions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_completion_tokens: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_prompt_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 model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parallel_tool_calls: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub response_format: 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 thread: Option<Thread>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_choice: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_resources: Option<ToolResources>,
#[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_p: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub truncation_strategy: Option<TruncationStrategy>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadMessageAttachmentToolFileSearch {
#[serde(rename = "type")]
pub type_: String,
}
pub type ThreadMessageAttachmentTool = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadMessageAttachment {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<ThreadMessageAttachmentTool>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ThreadMessageRole {
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadToolResourcesCodeInterpreter {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_ids: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadToolResourcesFileSearchVectorStoreChunkingStrategyAuto {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadToolResourcesFileSearchVectorStoreChunkingStrategyStaticStatic {
pub chunk_overlap_tokens: i64,
pub max_chunk_size_tokens: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadToolResourcesFileSearchVectorStoreChunkingStrategyStatic {
#[serde(rename = "static")]
pub static_: ThreadToolResourcesFileSearchVectorStoreChunkingStrategyStaticStatic,
#[serde(rename = "type")]
pub type_: String,
}
pub type ThreadToolResourcesFileSearchVectorStoreChunkingStrategy = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadToolResourcesFileSearchVectorStore {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub chunking_strategy: Option<ThreadToolResourcesFileSearchVectorStoreChunkingStrategy>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_ids: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadToolResourcesFileSearch {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub vector_store_ids: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub vector_stores: Option<Vec<ThreadToolResourcesFileSearchVectorStore>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadToolResources {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub code_interpreter: Option<ThreadToolResourcesCodeInterpreter>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_search: Option<ThreadToolResourcesFileSearch>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum TruncationStrategyType {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "last_messages")]
LastMessages,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct TruncationStrategy {
#[serde(rename = "type")]
pub type_: TruncationStrategyType,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub last_messages: Option<i64>,
}
pub type ThreadCreateAndRunParams = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadCreateParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub messages: Option<Vec<Message>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_resources: Option<ToolResources>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct MessageAttachmentToolFileSearch {
#[serde(rename = "type")]
pub type_: String,
}
pub type MessageAttachmentTool = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct MessageAttachment {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<MessageAttachmentTool>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum MessageRole {
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ThreadUpdateParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_resources: Option<ToolResources>,
}