pub use bytes::Bytes;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ChatMessagesRequest {
pub inputs: HashMap<String, String>,
pub query: String,
pub response_mode: ResponseMode,
pub user: String,
pub conversation_id: String,
pub files: Vec<FileInput>,
pub auto_generate_name: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum ResponseMode {
#[default]
Blocking,
Streaming,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum FileType {
#[default]
Image,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case", tag = "transfer_method")]
pub enum FileInput {
RemoteUrl {
#[serde(rename = "type")]
type_: FileType,
url: String,
},
LocalFile {
#[serde(rename = "type")]
type_: FileType,
upload_file_id: String,
},
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct StreamTaskStopRequest {
pub task_id: String,
pub user: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct MessagesSuggestedRequest {
pub message_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct MessagesFeedbacksRequest {
pub message_id: String,
pub rating: Option<Feedback>,
pub user: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Feedback {
#[default]
Like,
Dislike,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct MessagesRequest {
pub conversation_id: String,
pub user: String,
pub first_id: Option<String>,
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct ConversationsRequest {
pub user: String,
pub last_id: Option<String>,
pub limit: Option<u32>,
pub pinned: bool,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct ParametersRequest {
pub user: String,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct MetaRequest {
pub user: String,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct ConversationsRenameRequest {
pub conversation_id: String,
pub name: Option<String>,
pub auto_generate: bool,
pub user: String,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct ConversationsDeleteRequest {
pub conversation_id: String,
pub user: String,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct TextToAudioRequest {
pub text: String,
pub user: String,
pub streaming: bool,
}
#[derive(Debug, Clone, Default)]
pub struct AudioToTextRequest {
pub file: Bytes,
pub user: String,
}
#[derive(Debug, Clone, Default)]
pub struct FilesUploadRequest {
pub file: Bytes,
pub user: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct WorkflowsRunRequest {
pub inputs: HashMap<String, String>,
pub response_mode: ResponseMode,
pub user: String,
pub files: Vec<FileInput>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CompletionMessagesRequest {
pub inputs: HashMap<String, String>,
pub response_mode: ResponseMode,
pub user: String,
pub conversation_id: String,
pub files: Vec<FileInput>,
}