Skip to main content

liter_llm/types/
batch.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
4#[serde(deny_unknown_fields)]
5pub struct CreateBatchRequest {
6    pub input_file_id: String,
7    pub endpoint: String,
8    pub completion_window: String,
9    #[serde(default, skip_serializing_if = "Option::is_none")]
10    pub metadata: Option<serde_json::Value>,
11}
12
13#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
14#[serde(rename_all = "snake_case")]
15pub enum BatchStatus {
16    #[default]
17    Validating,
18    Failed,
19    InProgress,
20    Finalizing,
21    Completed,
22    Expired,
23    Cancelling,
24    Cancelled,
25}
26
27#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
28pub struct BatchObject {
29    pub id: String,
30    pub object: String,
31    pub endpoint: String,
32    pub input_file_id: String,
33    pub completion_window: String,
34    pub status: BatchStatus,
35    #[serde(default, skip_serializing_if = "Option::is_none")]
36    pub output_file_id: Option<String>,
37    #[serde(default, skip_serializing_if = "Option::is_none")]
38    pub error_file_id: Option<String>,
39    pub created_at: u64,
40    #[serde(default, skip_serializing_if = "Option::is_none")]
41    pub completed_at: Option<u64>,
42    #[serde(default, skip_serializing_if = "Option::is_none")]
43    pub failed_at: Option<u64>,
44    #[serde(default, skip_serializing_if = "Option::is_none")]
45    pub expired_at: Option<u64>,
46    #[serde(default, skip_serializing_if = "Option::is_none")]
47    pub request_counts: Option<BatchRequestCounts>,
48    #[serde(default, skip_serializing_if = "Option::is_none")]
49    pub metadata: Option<serde_json::Value>,
50}
51
52#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
53pub struct BatchRequestCounts {
54    pub total: u64,
55    pub completed: u64,
56    pub failed: u64,
57}
58
59#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
60pub struct BatchListResponse {
61    pub object: String,
62    pub data: Vec<BatchObject>,
63    #[serde(default, skip_serializing_if = "Option::is_none")]
64    pub has_more: Option<bool>,
65    #[serde(default, skip_serializing_if = "Option::is_none")]
66    pub first_id: Option<String>,
67    #[serde(default, skip_serializing_if = "Option::is_none")]
68    pub last_id: Option<String>,
69}
70
71#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
72#[serde(deny_unknown_fields)]
73pub struct BatchListQuery {
74    #[serde(default, skip_serializing_if = "Option::is_none")]
75    pub limit: Option<u32>,
76    #[serde(default, skip_serializing_if = "Option::is_none")]
77    pub after: Option<String>,
78}