1use serde::{Deserialize, Serialize};
2use validator::Validate;
3
4#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
6pub struct KnowledgeItem {
7 #[serde(skip_serializing_if = "Option::is_none")]
9 pub id: Option<String>,
10 #[serde(skip_serializing_if = "Option::is_none")]
12 pub embedding_id: Option<u64>,
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub name: Option<String>,
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub description: Option<String>,
19 #[serde(skip_serializing_if = "Option::is_none")]
21 pub background: Option<String>,
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub icon: Option<String>,
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub document_size: Option<u64>,
28 #[serde(skip_serializing_if = "Option::is_none")]
30 pub length: Option<u64>,
31 #[serde(skip_serializing_if = "Option::is_none")]
33 pub word_num: Option<u64>,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
38pub struct KnowledgeListData {
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub list: Option<Vec<KnowledgeItem>>,
42 #[serde(skip_serializing_if = "Option::is_none")]
44 pub total: Option<u64>,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
49pub struct KnowledgeListResponse {
50 #[serde(skip_serializing_if = "Option::is_none")]
52 pub data: Option<KnowledgeListData>,
53 #[serde(skip_serializing_if = "Option::is_none")]
55 pub code: Option<i64>,
56 #[serde(skip_serializing_if = "Option::is_none")]
58 pub message: Option<String>,
59 #[serde(skip_serializing_if = "Option::is_none")]
61 pub timestamp: Option<u64>,
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
66pub struct KnowledgeDetailResponse {
67 #[serde(skip_serializing_if = "Option::is_none")]
69 pub data: Option<KnowledgeItem>,
70 #[serde(skip_serializing_if = "Option::is_none")]
72 pub code: Option<i64>,
73 #[serde(skip_serializing_if = "Option::is_none")]
75 pub message: Option<String>,
76 #[serde(skip_serializing_if = "Option::is_none")]
78 pub timestamp: Option<u64>,
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
83pub struct KnowledgeUsageCounts {
84 #[serde(skip_serializing_if = "Option::is_none")]
86 pub word_num: Option<u64>,
87 #[serde(skip_serializing_if = "Option::is_none")]
89 pub length: Option<u64>,
90}
91
92#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
94pub struct KnowledgeCapacityData {
95 #[serde(skip_serializing_if = "Option::is_none")]
97 pub used: Option<KnowledgeUsageCounts>,
98 #[serde(skip_serializing_if = "Option::is_none")]
100 pub total: Option<KnowledgeUsageCounts>,
101}
102
103#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
105pub struct KnowledgeCapacityResponse {
106 #[serde(skip_serializing_if = "Option::is_none")]
108 pub data: Option<KnowledgeCapacityData>,
109 #[serde(skip_serializing_if = "Option::is_none")]
111 pub code: Option<i64>,
112 #[serde(skip_serializing_if = "Option::is_none")]
114 pub message: Option<String>,
115 #[serde(skip_serializing_if = "Option::is_none")]
117 pub timestamp: Option<u64>,
118}
119
120#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
122pub struct DocumentFailInfo {
123 #[serde(skip_serializing_if = "Option::is_none")]
125 pub embedding_code: Option<i64>,
126 #[serde(skip_serializing_if = "Option::is_none")]
128 pub embedding_msg: Option<String>,
129}
130
131#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
133pub struct DocumentItem {
134 #[serde(skip_serializing_if = "Option::is_none")]
136 pub id: Option<String>,
137 #[serde(skip_serializing_if = "Option::is_none")]
139 pub knowledge_type: Option<i64>,
140 #[serde(skip_serializing_if = "Option::is_none")]
142 pub custom_separator: Option<Vec<String>>,
143 #[serde(skip_serializing_if = "Option::is_none")]
145 pub sentence_size: Option<u64>,
146 #[serde(skip_serializing_if = "Option::is_none")]
148 pub length: Option<u64>,
149 #[serde(skip_serializing_if = "Option::is_none")]
151 pub word_num: Option<u64>,
152 #[serde(skip_serializing_if = "Option::is_none")]
154 pub name: Option<String>,
155 #[serde(skip_serializing_if = "Option::is_none")]
157 pub url: Option<String>,
158 #[serde(skip_serializing_if = "Option::is_none")]
160 pub embedding_stat: Option<i64>,
161 #[serde(rename = "failInfo")]
163 #[serde(skip_serializing_if = "Option::is_none")]
164 pub fail_info: Option<DocumentFailInfo>,
165}
166
167#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
171pub struct DocumentDetailResponse {
172 #[serde(skip_serializing_if = "Option::is_none")]
174 pub data: Option<DocumentItem>,
175 #[serde(skip_serializing_if = "Option::is_none")]
177 pub code: Option<i64>,
178 #[serde(skip_serializing_if = "Option::is_none")]
180 pub message: Option<String>,
181 #[serde(skip_serializing_if = "Option::is_none")]
183 pub timestamp: Option<u64>,
184}
185
186#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
187pub struct DocumentListData {
188 #[serde(skip_serializing_if = "Option::is_none")]
190 pub list: Option<Vec<DocumentItem>>,
191 #[serde(skip_serializing_if = "Option::is_none")]
193 pub total: Option<u64>,
194}
195
196#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
198pub struct DocumentListResponse {
199 #[serde(skip_serializing_if = "Option::is_none")]
201 pub data: Option<DocumentListData>,
202 #[serde(skip_serializing_if = "Option::is_none")]
204 pub code: Option<i64>,
205 #[serde(skip_serializing_if = "Option::is_none")]
207 pub message: Option<String>,
208 #[serde(skip_serializing_if = "Option::is_none")]
210 pub timestamp: Option<u64>,
211}
212
213#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
215pub struct UploadUrlSuccessInfo {
216 #[serde(rename = "documentId")]
218 #[serde(skip_serializing_if = "Option::is_none")]
219 pub document_id: Option<String>,
220 #[serde(skip_serializing_if = "Option::is_none")]
222 pub url: Option<String>,
223}
224
225#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
227pub struct UploadUrlFailedInfo {
228 #[serde(skip_serializing_if = "Option::is_none")]
230 pub url: Option<String>,
231 #[serde(rename = "failReason")]
233 #[serde(skip_serializing_if = "Option::is_none")]
234 pub fail_reason: Option<String>,
235}
236
237#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
239pub struct UploadUrlData {
240 #[serde(rename = "successInfos")]
242 #[serde(skip_serializing_if = "Option::is_none")]
243 pub success_infos: Option<Vec<UploadUrlSuccessInfo>>,
244 #[serde(rename = "failedInfos")]
246 #[serde(skip_serializing_if = "Option::is_none")]
247 pub failed_infos: Option<Vec<UploadUrlFailedInfo>>,
248}
249
250#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
252pub struct UploadUrlResponse {
253 #[serde(skip_serializing_if = "Option::is_none")]
255 pub data: Option<UploadUrlData>,
256 #[serde(skip_serializing_if = "Option::is_none")]
258 pub code: Option<i64>,
259 #[serde(skip_serializing_if = "Option::is_none")]
261 pub message: Option<String>,
262 #[serde(skip_serializing_if = "Option::is_none")]
264 pub timestamp: Option<u64>,
265}
266
267#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
269pub struct UploadFileSuccessInfo {
270 #[serde(rename = "documentId")]
272 #[serde(skip_serializing_if = "Option::is_none")]
273 pub document_id: Option<String>,
274 #[serde(rename = "fileName")]
276 #[serde(skip_serializing_if = "Option::is_none")]
277 pub file_name: Option<String>,
278}
279
280#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
282pub struct UploadFileFailedInfo {
283 #[serde(rename = "fileName")]
285 #[serde(skip_serializing_if = "Option::is_none")]
286 pub file_name: Option<String>,
287 #[serde(rename = "failReason")]
289 #[serde(skip_serializing_if = "Option::is_none")]
290 pub fail_reason: Option<String>,
291}
292
293#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
295pub struct UploadFileData {
296 #[serde(rename = "successInfos")]
298 #[serde(skip_serializing_if = "Option::is_none")]
299 pub success_infos: Option<Vec<UploadFileSuccessInfo>>,
300 #[serde(rename = "failedInfos")]
302 #[serde(skip_serializing_if = "Option::is_none")]
303 pub failed_infos: Option<Vec<UploadFileFailedInfo>>,
304}
305
306#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
308pub struct DocumentImageItem {
309 #[serde(skip_serializing_if = "Option::is_none")]
311 pub text: Option<String>,
312 #[serde(skip_serializing_if = "Option::is_none")]
314 pub cos_url: Option<String>,
315}
316
317#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
319pub struct DocumentImageListData {
320 #[serde(skip_serializing_if = "Option::is_none")]
322 pub images: Option<Vec<DocumentImageItem>>,
323}
324
325#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
327pub struct DocumentImageListResponse {
328 #[serde(skip_serializing_if = "Option::is_none")]
330 pub data: Option<DocumentImageListData>,
331 #[serde(skip_serializing_if = "Option::is_none")]
333 pub code: Option<i64>,
334 #[serde(skip_serializing_if = "Option::is_none")]
336 pub message: Option<String>,
337 #[serde(skip_serializing_if = "Option::is_none")]
339 pub timestamp: Option<u64>,
340}
341
342#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
344pub struct UploadFileResponse {
345 #[serde(skip_serializing_if = "Option::is_none")]
347 pub data: Option<UploadFileData>,
348 #[serde(skip_serializing_if = "Option::is_none")]
350 pub code: Option<i64>,
351 #[serde(skip_serializing_if = "Option::is_none")]
353 pub message: Option<String>,
354 #[serde(skip_serializing_if = "Option::is_none")]
356 pub timestamp: Option<u64>,
357}