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)]
170pub struct DocumentDetailResponse {
171 #[serde(skip_serializing_if = "Option::is_none")]
173 pub data: Option<DocumentItem>,
174 #[serde(skip_serializing_if = "Option::is_none")]
176 pub code: Option<i64>,
177 #[serde(skip_serializing_if = "Option::is_none")]
179 pub message: Option<String>,
180 #[serde(skip_serializing_if = "Option::is_none")]
182 pub timestamp: Option<u64>,
183}
184
185#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
186pub struct DocumentListData {
187 #[serde(skip_serializing_if = "Option::is_none")]
189 pub list: Option<Vec<DocumentItem>>,
190 #[serde(skip_serializing_if = "Option::is_none")]
192 pub total: Option<u64>,
193}
194
195#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
197pub struct DocumentListResponse {
198 #[serde(skip_serializing_if = "Option::is_none")]
200 pub data: Option<DocumentListData>,
201 #[serde(skip_serializing_if = "Option::is_none")]
203 pub code: Option<i64>,
204 #[serde(skip_serializing_if = "Option::is_none")]
206 pub message: Option<String>,
207 #[serde(skip_serializing_if = "Option::is_none")]
209 pub timestamp: Option<u64>,
210}
211
212#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
214pub struct UploadUrlSuccessInfo {
215 #[serde(rename = "documentId")]
217 #[serde(skip_serializing_if = "Option::is_none")]
218 pub document_id: Option<String>,
219 #[serde(skip_serializing_if = "Option::is_none")]
221 pub url: Option<String>,
222}
223
224#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
226pub struct UploadUrlFailedInfo {
227 #[serde(skip_serializing_if = "Option::is_none")]
229 pub url: Option<String>,
230 #[serde(rename = "failReason")]
232 #[serde(skip_serializing_if = "Option::is_none")]
233 pub fail_reason: Option<String>,
234}
235
236#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
238pub struct UploadUrlData {
239 #[serde(rename = "successInfos")]
241 #[serde(skip_serializing_if = "Option::is_none")]
242 pub success_infos: Option<Vec<UploadUrlSuccessInfo>>,
243 #[serde(rename = "failedInfos")]
245 #[serde(skip_serializing_if = "Option::is_none")]
246 pub failed_infos: Option<Vec<UploadUrlFailedInfo>>,
247}
248
249#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
251pub struct UploadUrlResponse {
252 #[serde(skip_serializing_if = "Option::is_none")]
254 pub data: Option<UploadUrlData>,
255 #[serde(skip_serializing_if = "Option::is_none")]
257 pub code: Option<i64>,
258 #[serde(skip_serializing_if = "Option::is_none")]
260 pub message: Option<String>,
261 #[serde(skip_serializing_if = "Option::is_none")]
263 pub timestamp: Option<u64>,
264}
265
266#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
268pub struct UploadFileSuccessInfo {
269 #[serde(rename = "documentId")]
271 #[serde(skip_serializing_if = "Option::is_none")]
272 pub document_id: Option<String>,
273 #[serde(rename = "fileName")]
275 #[serde(skip_serializing_if = "Option::is_none")]
276 pub file_name: Option<String>,
277}
278
279#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
281pub struct UploadFileFailedInfo {
282 #[serde(rename = "fileName")]
284 #[serde(skip_serializing_if = "Option::is_none")]
285 pub file_name: Option<String>,
286 #[serde(rename = "failReason")]
288 #[serde(skip_serializing_if = "Option::is_none")]
289 pub fail_reason: Option<String>,
290}
291
292#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
294pub struct UploadFileData {
295 #[serde(rename = "successInfos")]
297 #[serde(skip_serializing_if = "Option::is_none")]
298 pub success_infos: Option<Vec<UploadFileSuccessInfo>>,
299 #[serde(rename = "failedInfos")]
301 #[serde(skip_serializing_if = "Option::is_none")]
302 pub failed_infos: Option<Vec<UploadFileFailedInfo>>,
303}
304
305#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
307pub struct DocumentImageItem {
308 #[serde(skip_serializing_if = "Option::is_none")]
310 pub text: Option<String>,
311 #[serde(skip_serializing_if = "Option::is_none")]
313 pub cos_url: Option<String>,
314}
315
316#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
318pub struct DocumentImageListData {
319 #[serde(skip_serializing_if = "Option::is_none")]
321 pub images: Option<Vec<DocumentImageItem>>,
322}
323
324#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
326pub struct DocumentImageListResponse {
327 #[serde(skip_serializing_if = "Option::is_none")]
329 pub data: Option<DocumentImageListData>,
330 #[serde(skip_serializing_if = "Option::is_none")]
332 pub code: Option<i64>,
333 #[serde(skip_serializing_if = "Option::is_none")]
335 pub message: Option<String>,
336 #[serde(skip_serializing_if = "Option::is_none")]
338 pub timestamp: Option<u64>,
339}
340
341#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
343pub struct UploadFileResponse {
344 #[serde(skip_serializing_if = "Option::is_none")]
346 pub data: Option<UploadFileData>,
347 #[serde(skip_serializing_if = "Option::is_none")]
349 pub code: Option<i64>,
350 #[serde(skip_serializing_if = "Option::is_none")]
352 pub message: Option<String>,
353 #[serde(skip_serializing_if = "Option::is_none")]
355 pub timestamp: Option<u64>,
356}