@djangocfg/ext-knowbase 1.0.26 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.cjs +1 -1
- package/dist/config.js +1 -1
- package/dist/hooks.cjs +115 -209
- package/dist/hooks.d.cts +21 -0
- package/dist/hooks.d.ts +21 -0
- package/dist/hooks.js +115 -209
- package/dist/index.cjs +115 -209
- package/dist/index.d.cts +72 -205
- package/dist/index.d.ts +72 -205
- package/dist/index.js +115 -209
- package/package.json +9 -9
- package/src/api/generated/ext_knowbase/_utils/fetchers/ext_knowbase__knowbase.ts +69 -136
- package/src/api/generated/ext_knowbase/_utils/hooks/ext_knowbase__knowbase.ts +14 -15
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItem.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemChunk.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemChunkDetail.schema.ts +3 -4
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemChunkRequest.schema.ts +3 -4
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemDetail.schema.ts +3 -4
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveItemRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveProcessingResult.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveSearchRequestRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveSearchResult.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/ArchiveStatistics.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/CfgKnowbaseSystemArchivesCreateRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatHistory.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatMessage.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatQueryRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatResponse.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatResponseRequest.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatSession.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatSessionCreateRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatSessionRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatSource.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ChatSourceRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/ChunkRevectorizationRequestRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/Document.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentArchive.schema.ts +3 -4
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentArchiveDetail.schema.ts +6 -7
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentArchiveList.schema.ts +5 -6
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentArchiveRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentCategory.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentCategoryRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentCreateRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentProcessingStatus.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/DocumentStats.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedArchiveItemChunkList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedArchiveItemList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedArchiveSearchResultList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedChatResponseList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedChatSessionList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedDocumentArchiveListList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedDocumentList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedPublicCategoryList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PaginatedPublicDocumentListList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PatchedArchiveItemChunkRequest.schema.ts +3 -4
- package/src/api/generated/ext_knowbase/_utils/schemas/PatchedArchiveItemRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/PatchedChatResponseRequest.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PatchedChatSessionRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/PatchedDocumentArchiveRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/PatchedDocumentRequest.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/PublicCategory.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/PublicDocument.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/PublicDocumentList.schema.ts +2 -3
- package/src/api/generated/ext_knowbase/_utils/schemas/VectorizationResult.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/_utils/schemas/VectorizationStatistics.schema.ts +1 -1
- package/src/api/generated/ext_knowbase/api-instance.ts +1 -1
- package/src/api/generated/ext_knowbase/client.ts +6 -5
- package/src/api/generated/ext_knowbase/enums.ts +0 -165
- package/src/api/generated/ext_knowbase/ext_knowbase__knowbase/client.ts +35 -34
- package/src/api/generated/ext_knowbase/ext_knowbase__knowbase/models.ts +9 -9
- package/src/api/generated/ext_knowbase/index.ts +8 -6
- package/src/api/generated/ext_knowbase/retry.ts +0 -1
- package/src/api/generated/ext_knowbase/schema.json +189 -0
package/dist/config.cjs
CHANGED
|
@@ -27,7 +27,7 @@ var import_ext_base = require("@djangocfg/ext-base");
|
|
|
27
27
|
// package.json
|
|
28
28
|
var package_default = {
|
|
29
29
|
name: "@djangocfg/ext-knowbase",
|
|
30
|
-
version: "1.0.
|
|
30
|
+
version: "1.0.27",
|
|
31
31
|
description: "Knowledge base and chat extension for DjangoCFG",
|
|
32
32
|
keywords: [
|
|
33
33
|
"django",
|
package/dist/config.js
CHANGED
|
@@ -4,7 +4,7 @@ import { createExtensionConfig } from "@djangocfg/ext-base";
|
|
|
4
4
|
// package.json
|
|
5
5
|
var package_default = {
|
|
6
6
|
name: "@djangocfg/ext-knowbase",
|
|
7
|
-
version: "1.0.
|
|
7
|
+
version: "1.0.27",
|
|
8
8
|
description: "Knowledge base and chat extension for DjangoCFG",
|
|
9
9
|
keywords: [
|
|
10
10
|
"django",
|
package/dist/hooks.cjs
CHANGED
|
@@ -32,89 +32,6 @@ var __export = (target, all) => {
|
|
|
32
32
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
// src/api/generated/ext_knowbase/errors.ts
|
|
36
|
-
var APIError = class extends Error {
|
|
37
|
-
constructor(statusCode, statusText, response, url, message) {
|
|
38
|
-
super(message || `HTTP ${statusCode}: ${statusText}`);
|
|
39
|
-
this.statusCode = statusCode;
|
|
40
|
-
this.statusText = statusText;
|
|
41
|
-
this.response = response;
|
|
42
|
-
this.url = url;
|
|
43
|
-
this.name = "APIError";
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Get error details from response.
|
|
47
|
-
* DRF typically returns: { "detail": "Error message" } or { "field": ["error1", "error2"] }
|
|
48
|
-
*/
|
|
49
|
-
get details() {
|
|
50
|
-
if (typeof this.response === "object" && this.response !== null) {
|
|
51
|
-
return this.response;
|
|
52
|
-
}
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Get field-specific validation errors from DRF.
|
|
57
|
-
* Returns: { "field_name": ["error1", "error2"], ... }
|
|
58
|
-
*/
|
|
59
|
-
get fieldErrors() {
|
|
60
|
-
const details = this.details;
|
|
61
|
-
if (!details) return null;
|
|
62
|
-
const fieldErrors = {};
|
|
63
|
-
for (const [key, value] of Object.entries(details)) {
|
|
64
|
-
if (Array.isArray(value)) {
|
|
65
|
-
fieldErrors[key] = value;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return Object.keys(fieldErrors).length > 0 ? fieldErrors : null;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get single error message from DRF.
|
|
72
|
-
* Checks for "detail", "message", or first field error.
|
|
73
|
-
*/
|
|
74
|
-
get errorMessage() {
|
|
75
|
-
const details = this.details;
|
|
76
|
-
if (!details) return this.message;
|
|
77
|
-
if (details.detail) {
|
|
78
|
-
return Array.isArray(details.detail) ? details.detail.join(", ") : String(details.detail);
|
|
79
|
-
}
|
|
80
|
-
if (details.message) {
|
|
81
|
-
return String(details.message);
|
|
82
|
-
}
|
|
83
|
-
const fieldErrors = this.fieldErrors;
|
|
84
|
-
if (fieldErrors) {
|
|
85
|
-
const firstField = Object.keys(fieldErrors)[0];
|
|
86
|
-
if (firstField) {
|
|
87
|
-
return `${firstField}: ${fieldErrors[firstField]?.join(", ")}`;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return this.message;
|
|
91
|
-
}
|
|
92
|
-
// Helper methods for common HTTP status codes
|
|
93
|
-
get isValidationError() {
|
|
94
|
-
return this.statusCode === 400;
|
|
95
|
-
}
|
|
96
|
-
get isAuthError() {
|
|
97
|
-
return this.statusCode === 401;
|
|
98
|
-
}
|
|
99
|
-
get isPermissionError() {
|
|
100
|
-
return this.statusCode === 403;
|
|
101
|
-
}
|
|
102
|
-
get isNotFoundError() {
|
|
103
|
-
return this.statusCode === 404;
|
|
104
|
-
}
|
|
105
|
-
get isServerError() {
|
|
106
|
-
return this.statusCode >= 500 && this.statusCode < 600;
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
var NetworkError = class extends Error {
|
|
110
|
-
constructor(message, url, originalError) {
|
|
111
|
-
super(message);
|
|
112
|
-
this.url = url;
|
|
113
|
-
this.originalError = originalError;
|
|
114
|
-
this.name = "NetworkError";
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
|
|
118
35
|
// src/api/generated/ext_knowbase/ext_knowbase__knowbase/client.ts
|
|
119
36
|
var ExtKnowbaseKnowbase = class {
|
|
120
37
|
client;
|
|
@@ -130,7 +47,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
130
47
|
if (isParamsObject) {
|
|
131
48
|
params = args[0];
|
|
132
49
|
} else {
|
|
133
|
-
params = {
|
|
50
|
+
params = { ordering: args[0], page: args[1], page_size: args[2], search: args[3] };
|
|
134
51
|
}
|
|
135
52
|
const response = await this.client.request("GET", "/cfg/knowbase/admin/chat/", { params });
|
|
136
53
|
return response;
|
|
@@ -199,7 +116,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
199
116
|
if (isParamsObject) {
|
|
200
117
|
params = args[0];
|
|
201
118
|
} else {
|
|
202
|
-
params = {
|
|
119
|
+
params = { ordering: args[0], page: args[1], page_size: args[2], search: args[3], status: args[4] };
|
|
203
120
|
}
|
|
204
121
|
const response = await this.client.request("GET", "/cfg/knowbase/admin/documents/", { params });
|
|
205
122
|
return response;
|
|
@@ -283,7 +200,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
283
200
|
if (isParamsObject) {
|
|
284
201
|
params = args[0];
|
|
285
202
|
} else {
|
|
286
|
-
params = {
|
|
203
|
+
params = { ordering: args[0], page: args[1], page_size: args[2], search: args[3] };
|
|
287
204
|
}
|
|
288
205
|
const response = await this.client.request("GET", "/cfg/knowbase/admin/sessions/", { params });
|
|
289
206
|
return response;
|
|
@@ -354,7 +271,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
354
271
|
if (isParamsObject) {
|
|
355
272
|
params = args[0];
|
|
356
273
|
} else {
|
|
357
|
-
params = {
|
|
274
|
+
params = { ordering: args[0], page: args[1], page_size: args[2], search: args[3] };
|
|
358
275
|
}
|
|
359
276
|
const response = await this.client.request("GET", "/cfg/knowbase/categories/", { params });
|
|
360
277
|
return response;
|
|
@@ -379,7 +296,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
379
296
|
if (isParamsObject) {
|
|
380
297
|
params = args[0];
|
|
381
298
|
} else {
|
|
382
|
-
params = { category: args[0],
|
|
299
|
+
params = { category: args[0], ordering: args[1], page: args[2], page_size: args[3], search: args[4] };
|
|
383
300
|
}
|
|
384
301
|
const response = await this.client.request("GET", "/cfg/knowbase/documents/", { params });
|
|
385
302
|
return response;
|
|
@@ -402,7 +319,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
402
319
|
if (isParamsObject) {
|
|
403
320
|
params = args[0];
|
|
404
321
|
} else {
|
|
405
|
-
params = {
|
|
322
|
+
params = { ordering: args[0], page: args[1], page_size: args[2], search: args[3] };
|
|
406
323
|
}
|
|
407
324
|
const response = await this.client.request("GET", "/cfg/knowbase/system/archives/", { params });
|
|
408
325
|
return response;
|
|
@@ -476,7 +393,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
476
393
|
if (isParamsObject) {
|
|
477
394
|
params = args[1];
|
|
478
395
|
} else {
|
|
479
|
-
params = {
|
|
396
|
+
params = { ordering: args[1], page: args[2], page_size: args[3], search: args[4] };
|
|
480
397
|
}
|
|
481
398
|
const response = await this.client.request("GET", `/cfg/knowbase/system/archives/${id}/items/`, { params });
|
|
482
399
|
return response;
|
|
@@ -494,7 +411,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
494
411
|
if (isParamsObject) {
|
|
495
412
|
params = args[2];
|
|
496
413
|
} else {
|
|
497
|
-
params = {
|
|
414
|
+
params = { ordering: args[2], page: args[3], page_size: args[4], search: args[5] };
|
|
498
415
|
}
|
|
499
416
|
const formData = new FormData();
|
|
500
417
|
formData.append("query", String(data.query));
|
|
@@ -546,7 +463,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
546
463
|
if (isParamsObject) {
|
|
547
464
|
params = args[0];
|
|
548
465
|
} else {
|
|
549
|
-
params = {
|
|
466
|
+
params = { ordering: args[0], page: args[1], page_size: args[2], search: args[3] };
|
|
550
467
|
}
|
|
551
468
|
const response = await this.client.request("GET", "/cfg/knowbase/system/chunks/", { params });
|
|
552
469
|
return response;
|
|
@@ -613,7 +530,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
613
530
|
if (isParamsObject) {
|
|
614
531
|
params = args[0];
|
|
615
532
|
} else {
|
|
616
|
-
params = {
|
|
533
|
+
params = { ordering: args[0], page: args[1], page_size: args[2], search: args[3] };
|
|
617
534
|
}
|
|
618
535
|
const response = await this.client.request("GET", "/cfg/knowbase/system/items/", { params });
|
|
619
536
|
return response;
|
|
@@ -665,7 +582,7 @@ var ExtKnowbaseKnowbase = class {
|
|
|
665
582
|
if (isParamsObject) {
|
|
666
583
|
params = args[1];
|
|
667
584
|
} else {
|
|
668
|
-
params = {
|
|
585
|
+
params = { ordering: args[1], page: args[2], page_size: args[3], search: args[4] };
|
|
669
586
|
}
|
|
670
587
|
const response = await this.client.request("GET", `/cfg/knowbase/system/items/${id}/chunks/`, { params });
|
|
671
588
|
return response;
|
|
@@ -738,6 +655,89 @@ var FetchAdapter = class {
|
|
|
738
655
|
};
|
|
739
656
|
}
|
|
740
657
|
};
|
|
658
|
+
|
|
659
|
+
// src/api/generated/ext_knowbase/errors.ts
|
|
660
|
+
var APIError = class extends Error {
|
|
661
|
+
constructor(statusCode, statusText, response, url, message) {
|
|
662
|
+
super(message || `HTTP ${statusCode}: ${statusText}`);
|
|
663
|
+
this.statusCode = statusCode;
|
|
664
|
+
this.statusText = statusText;
|
|
665
|
+
this.response = response;
|
|
666
|
+
this.url = url;
|
|
667
|
+
this.name = "APIError";
|
|
668
|
+
}
|
|
669
|
+
/**
|
|
670
|
+
* Get error details from response.
|
|
671
|
+
* DRF typically returns: { "detail": "Error message" } or { "field": ["error1", "error2"] }
|
|
672
|
+
*/
|
|
673
|
+
get details() {
|
|
674
|
+
if (typeof this.response === "object" && this.response !== null) {
|
|
675
|
+
return this.response;
|
|
676
|
+
}
|
|
677
|
+
return null;
|
|
678
|
+
}
|
|
679
|
+
/**
|
|
680
|
+
* Get field-specific validation errors from DRF.
|
|
681
|
+
* Returns: { "field_name": ["error1", "error2"], ... }
|
|
682
|
+
*/
|
|
683
|
+
get fieldErrors() {
|
|
684
|
+
const details = this.details;
|
|
685
|
+
if (!details) return null;
|
|
686
|
+
const fieldErrors = {};
|
|
687
|
+
for (const [key, value] of Object.entries(details)) {
|
|
688
|
+
if (Array.isArray(value)) {
|
|
689
|
+
fieldErrors[key] = value;
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
return Object.keys(fieldErrors).length > 0 ? fieldErrors : null;
|
|
693
|
+
}
|
|
694
|
+
/**
|
|
695
|
+
* Get single error message from DRF.
|
|
696
|
+
* Checks for "detail", "message", or first field error.
|
|
697
|
+
*/
|
|
698
|
+
get errorMessage() {
|
|
699
|
+
const details = this.details;
|
|
700
|
+
if (!details) return this.message;
|
|
701
|
+
if (details.detail) {
|
|
702
|
+
return Array.isArray(details.detail) ? details.detail.join(", ") : String(details.detail);
|
|
703
|
+
}
|
|
704
|
+
if (details.message) {
|
|
705
|
+
return String(details.message);
|
|
706
|
+
}
|
|
707
|
+
const fieldErrors = this.fieldErrors;
|
|
708
|
+
if (fieldErrors) {
|
|
709
|
+
const firstField = Object.keys(fieldErrors)[0];
|
|
710
|
+
if (firstField) {
|
|
711
|
+
return `${firstField}: ${fieldErrors[firstField]?.join(", ")}`;
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
return this.message;
|
|
715
|
+
}
|
|
716
|
+
// Helper methods for common HTTP status codes
|
|
717
|
+
get isValidationError() {
|
|
718
|
+
return this.statusCode === 400;
|
|
719
|
+
}
|
|
720
|
+
get isAuthError() {
|
|
721
|
+
return this.statusCode === 401;
|
|
722
|
+
}
|
|
723
|
+
get isPermissionError() {
|
|
724
|
+
return this.statusCode === 403;
|
|
725
|
+
}
|
|
726
|
+
get isNotFoundError() {
|
|
727
|
+
return this.statusCode === 404;
|
|
728
|
+
}
|
|
729
|
+
get isServerError() {
|
|
730
|
+
return this.statusCode >= 500 && this.statusCode < 600;
|
|
731
|
+
}
|
|
732
|
+
};
|
|
733
|
+
var NetworkError = class extends Error {
|
|
734
|
+
constructor(message, url, originalError) {
|
|
735
|
+
super(message);
|
|
736
|
+
this.url = url;
|
|
737
|
+
this.originalError = originalError;
|
|
738
|
+
this.name = "NetworkError";
|
|
739
|
+
}
|
|
740
|
+
};
|
|
741
741
|
var DEFAULT_CONFIG = {
|
|
742
742
|
enabled: process.env.NODE_ENV !== "production",
|
|
743
743
|
logRequests: true,
|
|
@@ -1273,20 +1273,10 @@ var MemoryStorageAdapter = class {
|
|
|
1273
1273
|
var enums_exports = {};
|
|
1274
1274
|
__export(enums_exports, {
|
|
1275
1275
|
ArchiveItemChunkChunkType: () => ArchiveItemChunkChunkType,
|
|
1276
|
-
ArchiveItemChunkDetailChunkType: () => ArchiveItemChunkDetailChunkType,
|
|
1277
|
-
ArchiveItemChunkRequestChunkType: () => ArchiveItemChunkRequestChunkType,
|
|
1278
1276
|
ArchiveItemContentType: () => ArchiveItemContentType,
|
|
1279
|
-
ArchiveItemDetailContentType: () => ArchiveItemDetailContentType,
|
|
1280
|
-
ArchiveSearchRequestRequestChunkTypesItems: () => ArchiveSearchRequestRequestChunkTypesItems,
|
|
1281
|
-
ArchiveSearchRequestRequestContentTypesItems: () => ArchiveSearchRequestRequestContentTypesItems,
|
|
1282
1277
|
ChatMessageRole: () => ChatMessageRole,
|
|
1283
1278
|
DocumentArchiveArchiveType: () => DocumentArchiveArchiveType,
|
|
1284
|
-
|
|
1285
|
-
DocumentArchiveDetailProcessingStatus: () => DocumentArchiveDetailProcessingStatus,
|
|
1286
|
-
DocumentArchiveListArchiveType: () => DocumentArchiveListArchiveType,
|
|
1287
|
-
DocumentArchiveListProcessingStatus: () => DocumentArchiveListProcessingStatus,
|
|
1288
|
-
DocumentArchiveProcessingStatus: () => DocumentArchiveProcessingStatus,
|
|
1289
|
-
PatchedArchiveItemChunkRequestChunkType: () => PatchedArchiveItemChunkRequestChunkType
|
|
1279
|
+
DocumentArchiveProcessingStatus: () => DocumentArchiveProcessingStatus
|
|
1290
1280
|
});
|
|
1291
1281
|
var ArchiveItemContentType = /* @__PURE__ */ ((ArchiveItemContentType2) => {
|
|
1292
1282
|
ArchiveItemContentType2["DOCUMENT"] = "document";
|
|
@@ -1306,51 +1296,6 @@ var ArchiveItemChunkChunkType = /* @__PURE__ */ ((ArchiveItemChunkChunkType2) =>
|
|
|
1306
1296
|
ArchiveItemChunkChunkType2["LIST"] = "list";
|
|
1307
1297
|
return ArchiveItemChunkChunkType2;
|
|
1308
1298
|
})(ArchiveItemChunkChunkType || {});
|
|
1309
|
-
var ArchiveItemChunkDetailChunkType = /* @__PURE__ */ ((ArchiveItemChunkDetailChunkType2) => {
|
|
1310
|
-
ArchiveItemChunkDetailChunkType2["TEXT"] = "text";
|
|
1311
|
-
ArchiveItemChunkDetailChunkType2["CODE"] = "code";
|
|
1312
|
-
ArchiveItemChunkDetailChunkType2["HEADING"] = "heading";
|
|
1313
|
-
ArchiveItemChunkDetailChunkType2["METADATA"] = "metadata";
|
|
1314
|
-
ArchiveItemChunkDetailChunkType2["TABLE"] = "table";
|
|
1315
|
-
ArchiveItemChunkDetailChunkType2["LIST"] = "list";
|
|
1316
|
-
return ArchiveItemChunkDetailChunkType2;
|
|
1317
|
-
})(ArchiveItemChunkDetailChunkType || {});
|
|
1318
|
-
var ArchiveItemChunkRequestChunkType = /* @__PURE__ */ ((ArchiveItemChunkRequestChunkType2) => {
|
|
1319
|
-
ArchiveItemChunkRequestChunkType2["TEXT"] = "text";
|
|
1320
|
-
ArchiveItemChunkRequestChunkType2["CODE"] = "code";
|
|
1321
|
-
ArchiveItemChunkRequestChunkType2["HEADING"] = "heading";
|
|
1322
|
-
ArchiveItemChunkRequestChunkType2["METADATA"] = "metadata";
|
|
1323
|
-
ArchiveItemChunkRequestChunkType2["TABLE"] = "table";
|
|
1324
|
-
ArchiveItemChunkRequestChunkType2["LIST"] = "list";
|
|
1325
|
-
return ArchiveItemChunkRequestChunkType2;
|
|
1326
|
-
})(ArchiveItemChunkRequestChunkType || {});
|
|
1327
|
-
var ArchiveItemDetailContentType = /* @__PURE__ */ ((ArchiveItemDetailContentType2) => {
|
|
1328
|
-
ArchiveItemDetailContentType2["DOCUMENT"] = "document";
|
|
1329
|
-
ArchiveItemDetailContentType2["CODE"] = "code";
|
|
1330
|
-
ArchiveItemDetailContentType2["IMAGE"] = "image";
|
|
1331
|
-
ArchiveItemDetailContentType2["DATA"] = "data";
|
|
1332
|
-
ArchiveItemDetailContentType2["ARCHIVE"] = "archive";
|
|
1333
|
-
ArchiveItemDetailContentType2["UNKNOWN"] = "unknown";
|
|
1334
|
-
return ArchiveItemDetailContentType2;
|
|
1335
|
-
})(ArchiveItemDetailContentType || {});
|
|
1336
|
-
var ArchiveSearchRequestRequestContentTypesItems = /* @__PURE__ */ ((ArchiveSearchRequestRequestContentTypesItems2) => {
|
|
1337
|
-
ArchiveSearchRequestRequestContentTypesItems2["DOCUMENT"] = "document";
|
|
1338
|
-
ArchiveSearchRequestRequestContentTypesItems2["CODE"] = "code";
|
|
1339
|
-
ArchiveSearchRequestRequestContentTypesItems2["IMAGE"] = "image";
|
|
1340
|
-
ArchiveSearchRequestRequestContentTypesItems2["DATA"] = "data";
|
|
1341
|
-
ArchiveSearchRequestRequestContentTypesItems2["ARCHIVE"] = "archive";
|
|
1342
|
-
ArchiveSearchRequestRequestContentTypesItems2["UNKNOWN"] = "unknown";
|
|
1343
|
-
return ArchiveSearchRequestRequestContentTypesItems2;
|
|
1344
|
-
})(ArchiveSearchRequestRequestContentTypesItems || {});
|
|
1345
|
-
var ArchiveSearchRequestRequestChunkTypesItems = /* @__PURE__ */ ((ArchiveSearchRequestRequestChunkTypesItems2) => {
|
|
1346
|
-
ArchiveSearchRequestRequestChunkTypesItems2["TEXT"] = "text";
|
|
1347
|
-
ArchiveSearchRequestRequestChunkTypesItems2["CODE"] = "code";
|
|
1348
|
-
ArchiveSearchRequestRequestChunkTypesItems2["HEADING"] = "heading";
|
|
1349
|
-
ArchiveSearchRequestRequestChunkTypesItems2["METADATA"] = "metadata";
|
|
1350
|
-
ArchiveSearchRequestRequestChunkTypesItems2["TABLE"] = "table";
|
|
1351
|
-
ArchiveSearchRequestRequestChunkTypesItems2["LIST"] = "list";
|
|
1352
|
-
return ArchiveSearchRequestRequestChunkTypesItems2;
|
|
1353
|
-
})(ArchiveSearchRequestRequestChunkTypesItems || {});
|
|
1354
1299
|
var ChatMessageRole = /* @__PURE__ */ ((ChatMessageRole2) => {
|
|
1355
1300
|
ChatMessageRole2["USER"] = "user";
|
|
1356
1301
|
ChatMessageRole2["ASSISTANT"] = "assistant";
|
|
@@ -1372,45 +1317,6 @@ var DocumentArchiveProcessingStatus = /* @__PURE__ */ ((DocumentArchiveProcessin
|
|
|
1372
1317
|
DocumentArchiveProcessingStatus2["CANCELLED"] = "cancelled";
|
|
1373
1318
|
return DocumentArchiveProcessingStatus2;
|
|
1374
1319
|
})(DocumentArchiveProcessingStatus || {});
|
|
1375
|
-
var DocumentArchiveDetailArchiveType = /* @__PURE__ */ ((DocumentArchiveDetailArchiveType2) => {
|
|
1376
|
-
DocumentArchiveDetailArchiveType2["ZIP"] = "zip";
|
|
1377
|
-
DocumentArchiveDetailArchiveType2["TAR"] = "tar";
|
|
1378
|
-
DocumentArchiveDetailArchiveType2["TAR_DOT_GZ"] = "tar.gz";
|
|
1379
|
-
DocumentArchiveDetailArchiveType2["TAR_DOT_BZ2"] = "tar.bz2";
|
|
1380
|
-
return DocumentArchiveDetailArchiveType2;
|
|
1381
|
-
})(DocumentArchiveDetailArchiveType || {});
|
|
1382
|
-
var DocumentArchiveDetailProcessingStatus = /* @__PURE__ */ ((DocumentArchiveDetailProcessingStatus2) => {
|
|
1383
|
-
DocumentArchiveDetailProcessingStatus2["PENDING"] = "pending";
|
|
1384
|
-
DocumentArchiveDetailProcessingStatus2["PROCESSING"] = "processing";
|
|
1385
|
-
DocumentArchiveDetailProcessingStatus2["COMPLETED"] = "completed";
|
|
1386
|
-
DocumentArchiveDetailProcessingStatus2["FAILED"] = "failed";
|
|
1387
|
-
DocumentArchiveDetailProcessingStatus2["CANCELLED"] = "cancelled";
|
|
1388
|
-
return DocumentArchiveDetailProcessingStatus2;
|
|
1389
|
-
})(DocumentArchiveDetailProcessingStatus || {});
|
|
1390
|
-
var DocumentArchiveListArchiveType = /* @__PURE__ */ ((DocumentArchiveListArchiveType2) => {
|
|
1391
|
-
DocumentArchiveListArchiveType2["ZIP"] = "zip";
|
|
1392
|
-
DocumentArchiveListArchiveType2["TAR"] = "tar";
|
|
1393
|
-
DocumentArchiveListArchiveType2["TAR_DOT_GZ"] = "tar.gz";
|
|
1394
|
-
DocumentArchiveListArchiveType2["TAR_DOT_BZ2"] = "tar.bz2";
|
|
1395
|
-
return DocumentArchiveListArchiveType2;
|
|
1396
|
-
})(DocumentArchiveListArchiveType || {});
|
|
1397
|
-
var DocumentArchiveListProcessingStatus = /* @__PURE__ */ ((DocumentArchiveListProcessingStatus2) => {
|
|
1398
|
-
DocumentArchiveListProcessingStatus2["PENDING"] = "pending";
|
|
1399
|
-
DocumentArchiveListProcessingStatus2["PROCESSING"] = "processing";
|
|
1400
|
-
DocumentArchiveListProcessingStatus2["COMPLETED"] = "completed";
|
|
1401
|
-
DocumentArchiveListProcessingStatus2["FAILED"] = "failed";
|
|
1402
|
-
DocumentArchiveListProcessingStatus2["CANCELLED"] = "cancelled";
|
|
1403
|
-
return DocumentArchiveListProcessingStatus2;
|
|
1404
|
-
})(DocumentArchiveListProcessingStatus || {});
|
|
1405
|
-
var PatchedArchiveItemChunkRequestChunkType = /* @__PURE__ */ ((PatchedArchiveItemChunkRequestChunkType2) => {
|
|
1406
|
-
PatchedArchiveItemChunkRequestChunkType2["TEXT"] = "text";
|
|
1407
|
-
PatchedArchiveItemChunkRequestChunkType2["CODE"] = "code";
|
|
1408
|
-
PatchedArchiveItemChunkRequestChunkType2["HEADING"] = "heading";
|
|
1409
|
-
PatchedArchiveItemChunkRequestChunkType2["METADATA"] = "metadata";
|
|
1410
|
-
PatchedArchiveItemChunkRequestChunkType2["TABLE"] = "table";
|
|
1411
|
-
PatchedArchiveItemChunkRequestChunkType2["LIST"] = "list";
|
|
1412
|
-
return PatchedArchiveItemChunkRequestChunkType2;
|
|
1413
|
-
})(PatchedArchiveItemChunkRequestChunkType || {});
|
|
1414
1320
|
|
|
1415
1321
|
// src/api/generated/ext_knowbase/_utils/schemas/index.ts
|
|
1416
1322
|
var schemas_exports = {};
|
|
@@ -1501,7 +1407,7 @@ var ArchiveItemChunkDetailSchema = zod.z.object({
|
|
|
1501
1407
|
id: zod.z.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i),
|
|
1502
1408
|
content: zod.z.string(),
|
|
1503
1409
|
chunk_index: zod.z.int().min(0).max(2147483647),
|
|
1504
|
-
chunk_type: zod.z.nativeEnum(
|
|
1410
|
+
chunk_type: zod.z.nativeEnum(ArchiveItemChunkChunkType).optional(),
|
|
1505
1411
|
token_count: zod.z.int(),
|
|
1506
1412
|
character_count: zod.z.int(),
|
|
1507
1413
|
embedding_model: zod.z.string(),
|
|
@@ -1513,14 +1419,14 @@ var ArchiveItemChunkDetailSchema = zod.z.object({
|
|
|
1513
1419
|
var ArchiveItemChunkRequestSchema = zod.z.object({
|
|
1514
1420
|
content: zod.z.string().min(1),
|
|
1515
1421
|
chunk_index: zod.z.int().min(0).max(2147483647),
|
|
1516
|
-
chunk_type: zod.z.nativeEnum(
|
|
1422
|
+
chunk_type: zod.z.nativeEnum(ArchiveItemChunkChunkType).optional()
|
|
1517
1423
|
});
|
|
1518
1424
|
var ArchiveItemDetailSchema = zod.z.object({
|
|
1519
1425
|
id: zod.z.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i),
|
|
1520
1426
|
relative_path: zod.z.string().max(1024),
|
|
1521
1427
|
item_name: zod.z.string().max(255),
|
|
1522
1428
|
item_type: zod.z.string().max(100),
|
|
1523
|
-
content_type: zod.z.nativeEnum(
|
|
1429
|
+
content_type: zod.z.nativeEnum(ArchiveItemContentType),
|
|
1524
1430
|
file_size: zod.z.int().min(0).max(2147483647).optional(),
|
|
1525
1431
|
is_processable: zod.z.boolean(),
|
|
1526
1432
|
language: zod.z.string(),
|
|
@@ -1732,8 +1638,8 @@ var DocumentArchiveDetailSchema = zod.z.object({
|
|
|
1732
1638
|
archive_file: zod.z.union([zod.z.url(), zod.z.literal("")]),
|
|
1733
1639
|
original_filename: zod.z.string(),
|
|
1734
1640
|
file_size: zod.z.int(),
|
|
1735
|
-
archive_type: zod.z.nativeEnum(
|
|
1736
|
-
processing_status: zod.z.nativeEnum(
|
|
1641
|
+
archive_type: zod.z.nativeEnum(DocumentArchiveArchiveType),
|
|
1642
|
+
processing_status: zod.z.nativeEnum(DocumentArchiveProcessingStatus),
|
|
1737
1643
|
processed_at: zod.z.string().datetime({ offset: true }).nullable(),
|
|
1738
1644
|
processing_duration_ms: zod.z.int(),
|
|
1739
1645
|
processing_error: zod.z.string(),
|
|
@@ -1760,8 +1666,8 @@ var DocumentArchiveListSchema = zod.z.object({
|
|
|
1760
1666
|
is_public: zod.z.boolean(),
|
|
1761
1667
|
original_filename: zod.z.string(),
|
|
1762
1668
|
file_size: zod.z.int(),
|
|
1763
|
-
archive_type: zod.z.nativeEnum(
|
|
1764
|
-
processing_status: zod.z.nativeEnum(
|
|
1669
|
+
archive_type: zod.z.nativeEnum(DocumentArchiveArchiveType),
|
|
1670
|
+
processing_status: zod.z.nativeEnum(DocumentArchiveProcessingStatus),
|
|
1765
1671
|
processed_at: zod.z.string().datetime({ offset: true }).nullable(),
|
|
1766
1672
|
total_items: zod.z.int(),
|
|
1767
1673
|
total_chunks: zod.z.int(),
|
|
@@ -1925,7 +1831,7 @@ var PaginatedPublicDocumentListListSchema = zod.z.object({
|
|
|
1925
1831
|
var PatchedArchiveItemChunkRequestSchema = zod.z.object({
|
|
1926
1832
|
content: zod.z.string().min(1).optional(),
|
|
1927
1833
|
chunk_index: zod.z.int().min(0).max(2147483647).optional(),
|
|
1928
|
-
chunk_type: zod.z.nativeEnum(
|
|
1834
|
+
chunk_type: zod.z.nativeEnum(ArchiveItemChunkChunkType).optional()
|
|
1929
1835
|
});
|
|
1930
1836
|
var PatchedArchiveItemRequestSchema = zod.z.object({
|
|
1931
1837
|
relative_path: zod.z.string().min(1).max(1024).optional(),
|
|
@@ -2154,7 +2060,7 @@ function resetAPI() {
|
|
|
2154
2060
|
// src/api/generated/ext_knowbase/_utils/fetchers/ext_knowbase__knowbase.ts
|
|
2155
2061
|
async function getKnowbaseAdminChatList(params, client) {
|
|
2156
2062
|
const api = client || getAPIInstance();
|
|
2157
|
-
const response = await api.ext_knowbase_knowbase.adminChatList(params?.page, params?.page_size);
|
|
2063
|
+
const response = await api.ext_knowbase_knowbase.adminChatList(params?.ordering, params?.page, params?.page_size, params?.search);
|
|
2158
2064
|
try {
|
|
2159
2065
|
return PaginatedChatResponseListSchema.parse(response);
|
|
2160
2066
|
} catch (error) {
|
|
@@ -2453,7 +2359,7 @@ Method: POST`);
|
|
|
2453
2359
|
}
|
|
2454
2360
|
async function getKnowbaseAdminDocumentsList(params, client) {
|
|
2455
2361
|
const api = client || getAPIInstance();
|
|
2456
|
-
const response = await api.ext_knowbase_knowbase.adminDocumentsList(params?.page, params?.page_size, params?.status);
|
|
2362
|
+
const response = await api.ext_knowbase_knowbase.adminDocumentsList(params?.ordering, params?.page, params?.page_size, params?.search, params?.status);
|
|
2457
2363
|
try {
|
|
2458
2364
|
return PaginatedDocumentListSchema.parse(response);
|
|
2459
2365
|
} catch (error) {
|
|
@@ -2794,7 +2700,7 @@ Method: GET`);
|
|
|
2794
2700
|
}
|
|
2795
2701
|
async function getKnowbaseAdminSessionsList(params, client) {
|
|
2796
2702
|
const api = client || getAPIInstance();
|
|
2797
|
-
const response = await api.ext_knowbase_knowbase.adminSessionsList(params?.page, params?.page_size);
|
|
2703
|
+
const response = await api.ext_knowbase_knowbase.adminSessionsList(params?.ordering, params?.page, params?.page_size, params?.search);
|
|
2798
2704
|
try {
|
|
2799
2705
|
return PaginatedChatSessionListSchema.parse(response);
|
|
2800
2706
|
} catch (error) {
|
|
@@ -3093,7 +2999,7 @@ Method: POST`);
|
|
|
3093
2999
|
}
|
|
3094
3000
|
async function getKnowbaseCategoriesList(params, client) {
|
|
3095
3001
|
const api = client || getAPIInstance();
|
|
3096
|
-
const response = await api.ext_knowbase_knowbase.categoriesList(params?.page, params?.page_size);
|
|
3002
|
+
const response = await api.ext_knowbase_knowbase.categoriesList(params?.ordering, params?.page, params?.page_size, params?.search);
|
|
3097
3003
|
try {
|
|
3098
3004
|
return PaginatedPublicCategoryListSchema.parse(response);
|
|
3099
3005
|
} catch (error) {
|
|
@@ -3177,7 +3083,7 @@ Method: GET`);
|
|
|
3177
3083
|
}
|
|
3178
3084
|
async function getKnowbaseDocumentsList(params, client) {
|
|
3179
3085
|
const api = client || getAPIInstance();
|
|
3180
|
-
const response = await api.ext_knowbase_knowbase.documentsList(params?.category, params?.page, params?.page_size, params?.search);
|
|
3086
|
+
const response = await api.ext_knowbase_knowbase.documentsList(params?.category, params?.ordering, params?.page, params?.page_size, params?.search);
|
|
3181
3087
|
try {
|
|
3182
3088
|
return PaginatedPublicDocumentListListSchema.parse(response);
|
|
3183
3089
|
} catch (error) {
|
|
@@ -3261,7 +3167,7 @@ Method: GET`);
|
|
|
3261
3167
|
}
|
|
3262
3168
|
async function getKnowbaseSystemArchivesList(params, client) {
|
|
3263
3169
|
const api = client || getAPIInstance();
|
|
3264
|
-
const response = await api.ext_knowbase_knowbase.systemArchivesList(params?.page, params?.page_size);
|
|
3170
|
+
const response = await api.ext_knowbase_knowbase.systemArchivesList(params?.ordering, params?.page, params?.page_size, params?.search);
|
|
3265
3171
|
try {
|
|
3266
3172
|
return PaginatedDocumentArchiveListListSchema.parse(response);
|
|
3267
3173
|
} catch (error) {
|
|
@@ -3481,7 +3387,7 @@ async function getKnowbaseSystemArchivesFileTreeRetrieve(id, client) {
|
|
|
3481
3387
|
}
|
|
3482
3388
|
async function getKnowbaseSystemArchivesItemsList(id, params, client) {
|
|
3483
3389
|
const api = client || getAPIInstance();
|
|
3484
|
-
const response = await api.ext_knowbase_knowbase.systemArchivesItemsList(id, params?.page, params?.page_size);
|
|
3390
|
+
const response = await api.ext_knowbase_knowbase.systemArchivesItemsList(id, params?.ordering, params?.page, params?.page_size, params?.search);
|
|
3485
3391
|
try {
|
|
3486
3392
|
return PaginatedArchiveItemListSchema.parse(response);
|
|
3487
3393
|
} catch (error) {
|
|
@@ -3523,7 +3429,7 @@ Method: GET`);
|
|
|
3523
3429
|
}
|
|
3524
3430
|
async function createKnowbaseSystemArchivesSearchCreate(id, data, params, client) {
|
|
3525
3431
|
const api = client || getAPIInstance();
|
|
3526
|
-
const response = await api.ext_knowbase_knowbase.systemArchivesSearchCreate(id, data, params?.page, params?.page_size);
|
|
3432
|
+
const response = await api.ext_knowbase_knowbase.systemArchivesSearchCreate(id, data, params?.ordering, params?.page, params?.page_size, params?.search);
|
|
3527
3433
|
try {
|
|
3528
3434
|
return PaginatedArchiveSearchResultListSchema.parse(response);
|
|
3529
3435
|
} catch (error) {
|
|
@@ -3691,7 +3597,7 @@ Method: GET`);
|
|
|
3691
3597
|
}
|
|
3692
3598
|
async function getKnowbaseSystemChunksList(params, client) {
|
|
3693
3599
|
const api = client || getAPIInstance();
|
|
3694
|
-
const response = await api.ext_knowbase_knowbase.systemChunksList(params?.page, params?.page_size);
|
|
3600
|
+
const response = await api.ext_knowbase_knowbase.systemChunksList(params?.ordering, params?.page, params?.page_size, params?.search);
|
|
3695
3601
|
try {
|
|
3696
3602
|
return PaginatedArchiveItemChunkListSchema.parse(response);
|
|
3697
3603
|
} catch (error) {
|
|
@@ -3953,7 +3859,7 @@ async function createKnowbaseSystemChunksVectorizeCreate(id, data, client) {
|
|
|
3953
3859
|
}
|
|
3954
3860
|
async function getKnowbaseSystemItemsList(params, client) {
|
|
3955
3861
|
const api = client || getAPIInstance();
|
|
3956
|
-
const response = await api.ext_knowbase_knowbase.systemItemsList(params?.page, params?.page_size);
|
|
3862
|
+
const response = await api.ext_knowbase_knowbase.systemItemsList(params?.ordering, params?.page, params?.page_size, params?.search);
|
|
3957
3863
|
try {
|
|
3958
3864
|
return PaginatedArchiveItemListSchema.parse(response);
|
|
3959
3865
|
} catch (error) {
|
|
@@ -4168,7 +4074,7 @@ async function deleteKnowbaseSystemItemsDestroy(id, client) {
|
|
|
4168
4074
|
}
|
|
4169
4075
|
async function getKnowbaseSystemItemsChunksList(id, params, client) {
|
|
4170
4076
|
const api = client || getAPIInstance();
|
|
4171
|
-
const response = await api.ext_knowbase_knowbase.systemItemsChunksList(id, params?.page, params?.page_size);
|
|
4077
|
+
const response = await api.ext_knowbase_knowbase.systemItemsChunksList(id, params?.ordering, params?.page, params?.page_size, params?.search);
|
|
4172
4078
|
try {
|
|
4173
4079
|
return PaginatedArchiveItemChunkListSchema.parse(response);
|
|
4174
4080
|
} catch (error) {
|
|
@@ -4798,7 +4704,7 @@ var apiKnowbase = api.createExtensionAPI(API);
|
|
|
4798
4704
|
// package.json
|
|
4799
4705
|
var package_default = {
|
|
4800
4706
|
name: "@djangocfg/ext-knowbase",
|
|
4801
|
-
version: "1.0.
|
|
4707
|
+
version: "1.0.27",
|
|
4802
4708
|
description: "Knowledge base and chat extension for DjangoCFG",
|
|
4803
4709
|
keywords: [
|
|
4804
4710
|
"django",
|