vectorizer_sdk/models/
file_upload.rs1use std::collections::HashMap;
4
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct FileUploadRequest {
10 pub collection_name: String,
12 #[serde(skip_serializing_if = "Option::is_none")]
14 pub chunk_size: Option<u32>,
15 #[serde(skip_serializing_if = "Option::is_none")]
17 pub chunk_overlap: Option<u32>,
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub metadata: Option<HashMap<String, serde_json::Value>>,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub public_key: Option<String>,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct FileUploadResponse {
29 pub success: bool,
31 pub filename: String,
33 pub collection_name: String,
35 pub chunks_created: u32,
37 pub vectors_created: u32,
39 pub file_size: u64,
41 pub language: String,
43 pub processing_time_ms: u64,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
49pub struct FileUploadConfig {
50 pub max_file_size: u64,
52 pub max_file_size_mb: u32,
54 pub allowed_extensions: Vec<String>,
56 pub reject_binary: bool,
58 pub default_chunk_size: u32,
60 pub default_chunk_overlap: u32,
62}
63
64#[derive(Debug, Clone, Default)]
66pub struct UploadFileOptions {
67 pub chunk_size: Option<u32>,
69 pub chunk_overlap: Option<u32>,
71 pub metadata: Option<HashMap<String, serde_json::Value>>,
73 pub public_key: Option<String>,
75}