feat: add PaddleOCR-vl loader support and implement retrieval router infrastructure (#23945)

Co-authored-by: Tim Baek <tim@openwebui.com>
Co-authored-by: joaoback <156559121+joaoback@users.noreply.github.com>
This commit is contained in:
goodbey857
2026-04-24 15:19:37 +09:00
committed by GitHub
co-authored by Tim Baek joaoback
parent 0e311a95a7
commit 58bc254809
10 changed files with 199 additions and 2 deletions
@@ -184,6 +184,13 @@
toast.error($i18n.t('Mistral OCR API Key required.'));
return;
}
if (
RAGConfig.CONTENT_EXTRACTION_ENGINE === 'paddleocr_vl' &&
RAGConfig.PADDLEOCR_VL_BASE_URL === ''
) {
toast.error($i18n.t('PaddleOCR-vl API URL required.'));
return;
}
if (
RAGConfig.CONTENT_EXTRACTION_ENGINE === 'mineru' &&
@@ -356,6 +363,7 @@
<option value="datalab_marker">{$i18n.t('Datalab Marker API')}</option>
<option value="document_intelligence">{$i18n.t('Document Intelligence')}</option>
<option value="mistral_ocr">{$i18n.t('Mistral OCR')}</option>
<option value="paddleocr_vl">{$i18n.t('PaddleOCR-vl')}</option>
<option value="mineru">{$i18n.t('MinerU')}</option>
</select>
</div>
@@ -657,6 +665,19 @@
bind:value={RAGConfig.MISTRAL_OCR_API_KEY}
/>
</div>
{:else if RAGConfig.CONTENT_EXTRACTION_ENGINE === 'paddleocr_vl'}
<div class="my-0.5 flex gap-2 pr-2">
<input
class="flex-1 w-full text-sm bg-transparent outline-hidden"
placeholder={$i18n.t('Enter PaddleOCR-vl API Base URL')}
bind:value={RAGConfig.PADDLEOCR_VL_BASE_URL}
/>
<SensitiveInput
placeholder={$i18n.t('Enter PaddleOCR-vl API Token')}
bind:value={RAGConfig.PADDLEOCR_VL_TOKEN}
required={false}
/>
</div>
{:else if RAGConfig.CONTENT_EXTRACTION_ENGINE === 'mineru'}
<!-- API Mode Selection -->
<div class="flex w-full mt-2">
@@ -775,6 +775,8 @@
"Enter prompt here.": "",
"Enter proxy URL (e.g. https://user:password@host:port)": "",
"Enter reasoning effort": "",
"Enter PaddleOCR-vl API Token": "",
"Enter PaddleOCR-vl API Base URL": "",
"Enter Score": "",
"Enter SearchApi API Key": "",
"Enter SearchApi Engine": "",
@@ -1518,6 +1520,7 @@
"Output format": "",
"Output Format": "",
"Overview": "",
"PaddleOCR-vl": "",
"page": "",
"Page": "",
"Page mode creates one document per page. Single mode combines all pages into one document for better chunking across page boundaries.": "",
@@ -774,6 +774,8 @@
"Enter prompt here.": "在此输入提示词。",
"Enter proxy URL (e.g. https://user:password@host:port)": "输入代理地址(例如:https://用户名:密码@主机名:端口)",
"Enter reasoning effort": "输入推理努力",
"Enter PaddleOCR-vl API Token": "输入 PaddleOCR-vl 接口密钥",
"Enter PaddleOCR-vl API Base URL": "输入 PaddleOCR-vl API 基础地址",
"Enter Score": "输入评分",
"Enter SearchApi API Key": "输入 SearchApi 接口密钥",
"Enter SearchApi Engine": "输入 SearchApi 引擎",
@@ -1517,6 +1519,7 @@
"Output format": "输出格式",
"Output Format": "输出格式",
"Overview": "概述",
"PaddleOCR-vl": "PaddleOCR-vl",
"page": "页",
"Page": "页模式",
"Page mode creates one document per page. Single mode combines all pages into one document for better chunking across page boundaries.": "页模式将为每个页面创建一个文档;单文档模式则将所有页面合并为一个文档,以便更好地进行跨页分块。",