|
25 | 25 | createVectorCollection, |
26 | 26 | createVectorIndexes, |
27 | 27 | deleteVectorIndexes, |
28 | | -
|
29 | | - getVectorCollectionDetails |
30 | | -
|
| 28 | + getVectorCollectionDetails, |
| 29 | + getKnowledgeDocumentProcessors |
31 | 30 | } from '$lib/services/knowledge-base-service'; |
32 | 31 | import Breadcrumb from '$lib/common/Breadcrumb.svelte'; |
33 | 32 | import HeadTitle from '$lib/common/HeadTitle.svelte'; |
|
41 | 40 | VectorDataSource, |
42 | 41 | VectorPayloadDataType |
43 | 42 | } from '$lib/helpers/enums'; |
| 43 | + import { DECIMAL_REGEX } from '$lib/helpers/constants'; |
44 | 44 | import VectorItem from '../common/vector-table/vector-item.svelte'; |
45 | 45 | import VectorItemEditModal from '../common/vector-table/vector-item-edit-modal.svelte'; |
46 | 46 | import CollectionCreateModal from '../common/collection/collection-create-modal.svelte'; |
47 | 47 | import VectorIndexModal from '../common/indexes/vector-index-modal.svelte'; |
48 | 48 | import AdvancedSearch from '../common/search/advanced-search.svelte'; |
49 | 49 | import KnowledgeDocumentUpload from './knowledge-document-upload.svelte'; |
50 | | - import { DECIMAL_REGEX } from '$lib/helpers/constants'; |
| 50 | + import KnowledgeUploadModal from './knowledge-upload-modal.svelte'; |
51 | 51 | |
52 | 52 | const pageSize = 8; |
53 | 53 | const duration = 2000; |
|
106 | 106 | order: 'desc' |
107 | 107 | }; |
108 | 108 |
|
| 109 | + /** @type {import('$commonTypes').LabelValuePair[]} */ |
| 110 | + let docProcessors = []; |
| 111 | +
|
109 | 112 | /** @type {boolean} */ |
110 | 113 | let showDemo = true; |
111 | 114 | let isSearching = false; |
|
122 | 125 | let isAdvSearchOn = false; |
123 | 126 | let disableSearchBtn = false; |
124 | 127 | let isExactSearch = false; |
| 128 | + let isOpenUploadModal = false; |
| 129 | + let showDocList = false; |
125 | 130 |
|
126 | 131 | /** @type {any} */ |
127 | 132 | let docUploadrCmp; |
|
168 | 173 | if (selectedCollection) { |
169 | 174 | Promise.all([ |
170 | 175 | getCollectionDetail(), |
| 176 | + getDocProcessors(), |
171 | 177 | getData({ |
172 | 178 | ...defaultParams, |
173 | 179 | isReset: true, |
|
456 | 462 | }); |
457 | 463 | } |
458 | 464 |
|
| 465 | + function getDocProcessors() { |
| 466 | + return new Promise((resolve, reject) => { |
| 467 | + getKnowledgeDocumentProcessors().then(res => { |
| 468 | + const retProcessors = res?.map(x => ({ label: x, value: x })) || []; |
| 469 | + docProcessors = [ ...retProcessors ]; |
| 470 | + resolve(res); |
| 471 | + }).catch(err => { |
| 472 | + docProcessors = []; |
| 473 | + reject(err); |
| 474 | + }); |
| 475 | + }); |
| 476 | + } |
| 477 | +
|
459 | 478 | /** @param {boolean} isLocalLoading */ |
460 | 479 | function toggleLoader(isLocalLoading) { |
461 | 480 | if (isLocalLoading) { |
|
740 | 759 | }); |
741 | 760 | } |
742 | 761 |
|
743 | | - /** @param {any} e */ |
744 | | - function onDocUploaded(e) { |
745 | | - reset(); |
| 762 | + /** |
| 763 | + * @param {any} e |
| 764 | + * @param {boolean} skipLoader |
| 765 | + */ |
| 766 | + function onDocUploaded(e, skipLoader = false) { |
| 767 | + reset(skipLoader); |
746 | 768 | } |
747 | 769 |
|
748 | 770 | /** @param {any} e */ |
|
859 | 881 | function toggleIndexModal() { |
860 | 882 | isOpenIndexModal = !isOpenIndexModal; |
861 | 883 | } |
| 884 | +
|
| 885 | + function toggleUploadModal() { |
| 886 | + isOpenUploadModal = !isOpenUploadModal; |
| 887 | + } |
862 | 888 | </script> |
863 | 889 |
|
864 | 890 | <HeadTitle title="{$_('Document Knowledge')}" addOn="Knowledge Base" /> |
|
905 | 931 | /> |
906 | 932 | {/if} |
907 | 933 |
|
| 934 | +<KnowledgeUploadModal |
| 935 | + className={'knowledge-upload-modal-container'} |
| 936 | + size={'md'} |
| 937 | + accept={'.txt,.pdf'} |
| 938 | + collection={selectedCollection} |
| 939 | + open={isOpenUploadModal} |
| 940 | + processors={docProcessors} |
| 941 | + toggleModal={() => toggleUploadModal()} |
| 942 | + on:docuploaded={(e) => { |
| 943 | + showDocList = false; |
| 944 | + isOpenUploadModal = false; |
| 945 | + onDocUploaded(e, true); |
| 946 | + }} |
| 947 | +/> |
| 948 | +
|
908 | 949 | <CollectionCreateModal |
909 | 950 | title={'Create new collection'} |
910 | 951 | open={isOpenCreateCollection} |
|
1082 | 1123 | {#if selectedCollection} |
1083 | 1124 | <KnowledgeDocumentUpload |
1084 | 1125 | collection={selectedCollection} |
| 1126 | + accept={'.txt'} |
| 1127 | + disableFileUpload={true} |
| 1128 | + disableFileDelete={false} |
1085 | 1129 | disabled={disabled} |
1086 | 1130 | bind:this={docUploadrCmp} |
1087 | | - on:docuploaded={(e) => onDocUploaded(e)} |
| 1131 | + bind:showDocList={showDocList} |
| 1132 | + on:docuploaded={(e) => onDocUploaded(e, true)} |
1088 | 1133 | on:docdeleted={(e) => onDocDeleted(e)} |
1089 | 1134 | on:resetdocs={(e) => onDocsReset(e)} |
1090 | 1135 | /> |
|
1133 | 1178 | <i class="mdi mdi-minus" /> |
1134 | 1179 | </Button> |
1135 | 1180 | </div> |
| 1181 | + <div |
| 1182 | + class="line-align-center" |
| 1183 | + data-bs-toggle="tooltip" |
| 1184 | + data-bs-placement="top" |
| 1185 | + title="Upload doc" |
| 1186 | + > |
| 1187 | + <Button |
| 1188 | + class="btn btn-sm btn-soft-info knowledge-btn-icon" |
| 1189 | + disabled={disabled} |
| 1190 | + on:click={() => toggleUploadModal()} |
| 1191 | + > |
| 1192 | + <i class="mdi mdi-file-upload" /> |
| 1193 | + </Button> |
| 1194 | + </div> |
1136 | 1195 | </div> |
1137 | 1196 | <div class="collection-action-container action-container-padding"> |
1138 | 1197 | {#if selectedCollection} |
|
0 commit comments