ollama_rest/models/
model.rs1#[cfg(feature = "chrono")]
2use chrono::{DateTime, Local};
3use serde::{Deserialize, Serialize};
4use serde_json::Map;
5
6#[derive(Debug, Serialize, Deserialize)]
7pub struct ModelDetails {
8 pub parent_model: Option<String>,
9 pub format: String,
10 pub family: String,
11 pub families: Option<Vec<String>>,
12 pub parameter_size: String,
13 pub quantization_level: String,
14}
15
16#[derive(Debug, Serialize, Deserialize)]
17pub struct Model {
18 pub name: String,
19
20 #[cfg(feature = "chrono")]
21 pub modified_at: DateTime<Local>,
22 #[cfg(not(feature = "chrono"))]
23 pub modified_at: String,
24
25 pub size: usize,
26 pub digest: String,
27 pub details: ModelDetails,
28}
29
30#[derive(Debug, Serialize, Deserialize)]
31pub struct ModelListResponse {
32 pub models: Vec<Model>,
33}
34
35#[derive(Debug, Serialize, Deserialize)]
36pub struct ModelShowRequest {
37 pub name: String,
38 pub verbose: Option<bool>,
39}
40
41#[derive(Debug, Serialize, Deserialize)]
42pub struct ModelShowResponse {
43 pub modelfile: Option<String>,
44 pub parameters: Option<String>,
45 pub template: Option<String>,
46
47 pub details: Option<ModelDetails>,
48
49 pub model_info: Option<Map<String, serde_json::Value>>,
50}
51
52#[derive(Debug, Serialize, Deserialize)]
53pub struct ModelCopyRequest {
54 pub source: String,
55 pub destination: String,
56}
57
58#[derive(Debug, Serialize, Deserialize)]
59pub struct ModelDeletionRequest {
60 pub name: String,
61}
62
63#[derive(Debug, Serialize, Deserialize)]
64pub struct ModelSyncRequest {
65 pub name: String,
66 pub insecure: Option<bool>,
67 pub stream: Option<bool>,
68}
69
70#[derive(Debug, Serialize, Deserialize)]
71pub struct ModelDownloadStatus {
72 pub digest: String,
73 pub total: usize,
74 pub completed: Option<usize>,
75}
76
77#[derive(Debug, Serialize, Deserialize)]
78pub struct ModelPullStatus {
79 pub status: String,
80 #[serde(flatten)]
81 pub download_info: Option<ModelDownloadStatus>,
82}
83
84#[derive(Debug, Serialize, Deserialize)]
85pub struct ModelUploadStatus {
86 pub digest: String,
87 pub total: usize,
88}
89
90#[derive(Debug, Serialize, Deserialize)]
91pub struct ModelPushStatus {
92 pub status: String,
93 #[serde(flatten)]
94 pub upload_info: Option<ModelUploadStatus>,
95}
96
97#[derive(Debug, Serialize, Deserialize)]
98pub struct RunningModel {
99 pub name: String,
100 pub model: String,
101 pub size: usize,
102 pub digest: String,
103
104 pub details: ModelDetails,
105
106 #[cfg(feature = "chrono")]
107 pub expires_at: DateTime<Local>,
108 #[cfg(not(feature = "chrono"))]
109 pub expires_at: String,
110
111 pub size_vram: usize,
112}
113
114#[derive(Debug, Serialize, Deserialize)]
115pub struct RunningModelResponse {
116 pub models: Vec<RunningModel>,
117}