feat: Implement Document Intelligence as Content Extraction Engine

This commit is contained in:
Mazurek Michal
2025-02-07 13:44:47 +01:00
parent e9d6ada25c
commit 35f3824932
8 changed files with 107 additions and 2 deletions

View File

@@ -50,6 +50,9 @@
let contentExtractionEngine = 'default';
let tikaServerUrl = '';
let showTikaServerUrl = false;
let documentIntelligenceEndpoint = '';
let documentIntelligenceKey = '';
let showDocumentIntelligenceConfig = false;
let textSplitter = '';
let chunkSize = 0;
@@ -175,6 +178,13 @@
toast.error($i18n.t('Tika Server URL required.'));
return;
}
if (
contentExtractionEngine === 'document_intelligence' &&
(documentIntelligenceEndpoint === '' || documentIntelligenceKey === '')
) {
toast.error($i18n.t('Document Intelligence endpoint and key required.'));
return;
}
const res = await updateRAGConfig(localStorage.token, {
pdf_extract_images: pdfExtractImages,
enable_google_drive_integration: enableGoogleDriveIntegration,
@@ -189,7 +199,11 @@
},
content_extraction: {
engine: contentExtractionEngine,
tika_server_url: tikaServerUrl
tika_server_url: tikaServerUrl,
document_intelligence_config: {
key: documentIntelligenceKey,
endpoint: documentIntelligenceEndpoint
}
}
});
@@ -245,6 +259,9 @@
contentExtractionEngine = res.content_extraction.engine;
tikaServerUrl = res.content_extraction.tika_server_url;
showTikaServerUrl = contentExtractionEngine === 'tika';
documentIntelligenceEndpoint = res.content_extraction.document_intelligence_config.endpoint;
documentIntelligenceKey = res.content_extraction.document_intelligence_config.key;
showDocumentIntelligenceConfig = contentExtractionEngine === 'document_intelligence';
fileMaxSize = res?.file.max_size ?? '';
fileMaxCount = res?.file.max_count ?? '';
@@ -568,10 +585,12 @@
bind:value={contentExtractionEngine}
on:change={(e) => {
showTikaServerUrl = e.target.value === 'tika';
showDocumentIntelligenceConfig = e.target.value === 'document_intelligence';
}}
>
<option value="">{$i18n.t('Default')} </option>
<option value="tika">{$i18n.t('Tika')}</option>
<option value="document_intelligence">{$i18n.t('Document Intelligence')}</option>
</select>
</div>
</div>
@@ -587,6 +606,21 @@
</div>
</div>
{/if}
{#if showDocumentIntelligenceConfig}
<div class="my-0.5 flex gap-2 pr-2">
<input
class="flex-1 w-full rounded-lg py-2 px-4 text-sm bg-gray-50 dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('Enter Document Intelligence Endpoint')}
bind:value={documentIntelligenceEndpoint}
/>
<SensitiveInput
placeholder={$i18n.t('Enter Document Intelligence Key')}
bind:value={documentIntelligenceKey}
/>
</div>
{/if}
</div>
<hr class=" dark:border-gray-850" />