pub mod create;
pub mod delete;
pub mod files;
pub mod list;
pub mod retrieve;
pub mod search;
pub mod update;
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum ChunkingStrategy {
Static {
#[serde(default)]
max_chunk_size_tokens: Option<u64>,
#[serde(default)]
chunk_overlap_tokens: Option<u64>,
},
#[serde(other)]
Auto,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct VectorStoreFileCounts {
#[serde(default)]
pub in_progress: u64,
#[serde(default)]
pub failed: u64,
#[serde(default)]
pub cancelled: u64,
#[serde(default)]
pub completed: u64,
#[serde(default)]
pub total: u64,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum VectorStoreFileStatus {
InProgress,
Completed,
Failed,
Cancelled,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct VectorStoreFileError {
#[serde(default)]
pub code: Option<String>,
#[serde(default)]
pub message: Option<String>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct VectorStore {
pub id: String,
#[serde(default)]
pub object: Option<String>,
#[serde(default)]
pub created_at: Option<u64>,
#[serde(default)]
pub last_active_at: Option<u64>,
#[serde(default)]
pub name: Option<String>,
#[serde(default)]
pub usage_bytes: Option<u64>,
#[serde(default)]
pub expires_after: Option<serde_json::Value>,
#[serde(default)]
pub expires_at: Option<u64>,
#[serde(default)]
pub file_counts: Option<VectorStoreFileCounts>,
#[serde(default)]
pub metadata: Option<std::collections::HashMap<String, String>>,
#[serde(default)]
pub status: Option<String>,
}
crate::impl_from_str!(VectorStore);
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct VectorStoreFile {
pub id: String,
#[serde(default)]
pub object: Option<String>,
#[serde(default)]
pub vector_store_id: Option<String>,
#[serde(default)]
pub created_at: Option<u64>,
#[serde(default)]
pub size: Option<u64>,
#[serde(default)]
pub status: Option<VectorStoreFileStatus>,
#[serde(default)]
pub last_error: Option<VectorStoreFileError>,
#[serde(default)]
pub chunking_strategy: Option<ChunkingStrategy>,
#[serde(default)]
pub attributes: Option<serde_json::Value>,
}
crate::impl_from_str!(VectorStoreFile);