diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index f17b9f94b9..b175ff8ba4 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -2310,6 +2310,18 @@ DOCLING_SERVER_URL = PersistentConfig( os.getenv("DOCLING_SERVER_URL", "http://docling:5001"), ) +docling_params = os.getenv("DOCLING_PARAMS", "") +try: + docling_params = json.loads(docling_params) +except json.JSONDecodeError: + docling_params = {} + +DOCLING_PARAMS = PersistentConfig( + "DOCLING_PARAMS", + "rag.docling_params", + docling_params, +) + DOCLING_DO_OCR = PersistentConfig( "DOCLING_DO_OCR", "rag.docling_do_ocr", diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index a68c943966..6b1d8e5d82 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -248,6 +248,7 @@ from open_webui.config import ( EXTERNAL_DOCUMENT_LOADER_API_KEY, TIKA_SERVER_URL, DOCLING_SERVER_URL, + DOCLING_PARAMS, DOCLING_DO_OCR, DOCLING_FORCE_OCR, DOCLING_OCR_ENGINE, @@ -836,6 +837,7 @@ app.state.config.EXTERNAL_DOCUMENT_LOADER_URL = EXTERNAL_DOCUMENT_LOADER_URL app.state.config.EXTERNAL_DOCUMENT_LOADER_API_KEY = EXTERNAL_DOCUMENT_LOADER_API_KEY app.state.config.TIKA_SERVER_URL = TIKA_SERVER_URL app.state.config.DOCLING_SERVER_URL = DOCLING_SERVER_URL +app.state.config.DOCLING_PARAMS = DOCLING_PARAMS app.state.config.DOCLING_DO_OCR = DOCLING_DO_OCR app.state.config.DOCLING_FORCE_OCR = DOCLING_FORCE_OCR app.state.config.DOCLING_OCR_ENGINE = DOCLING_OCR_ENGINE diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index 0d4c3c98fc..25e223dccc 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -429,6 +429,7 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "EXTERNAL_DOCUMENT_LOADER_API_KEY": request.app.state.config.EXTERNAL_DOCUMENT_LOADER_API_KEY, "TIKA_SERVER_URL": request.app.state.config.TIKA_SERVER_URL, "DOCLING_SERVER_URL": request.app.state.config.DOCLING_SERVER_URL, + "DOCLING_PARAMS": request.app.state.config.DOCLING_PARAMS, "DOCLING_DO_OCR": request.app.state.config.DOCLING_DO_OCR, "DOCLING_FORCE_OCR": request.app.state.config.DOCLING_FORCE_OCR, "DOCLING_OCR_ENGINE": request.app.state.config.DOCLING_OCR_ENGINE, @@ -590,6 +591,7 @@ class ConfigForm(BaseModel): # Content extraction settings CONTENT_EXTRACTION_ENGINE: Optional[str] = None PDF_EXTRACT_IMAGES: Optional[bool] = None + DATALAB_MARKER_API_KEY: Optional[str] = None DATALAB_MARKER_API_BASE_URL: Optional[str] = None DATALAB_MARKER_ADDITIONAL_CONFIG: Optional[str] = None @@ -601,11 +603,13 @@ class ConfigForm(BaseModel): DATALAB_MARKER_FORMAT_LINES: Optional[bool] = None DATALAB_MARKER_USE_LLM: Optional[bool] = None DATALAB_MARKER_OUTPUT_FORMAT: Optional[str] = None + EXTERNAL_DOCUMENT_LOADER_URL: Optional[str] = None EXTERNAL_DOCUMENT_LOADER_API_KEY: Optional[str] = None TIKA_SERVER_URL: Optional[str] = None DOCLING_SERVER_URL: Optional[str] = None + DOCLING_PARAMS: Optional[dict] = None DOCLING_DO_OCR: Optional[bool] = None DOCLING_FORCE_OCR: Optional[bool] = None DOCLING_OCR_ENGINE: Optional[str] = None @@ -782,6 +786,11 @@ async def update_rag_config( if form_data.DOCLING_SERVER_URL is not None else request.app.state.config.DOCLING_SERVER_URL ) + request.app.state.config.DOCLING_PARAMS = ( + form_data.DOCLING_PARAMS + if form_data.DOCLING_PARAMS is not None + else request.app.state.config.DOCLING_PARAMS + ) request.app.state.config.DOCLING_DO_OCR = ( form_data.DOCLING_DO_OCR if form_data.DOCLING_DO_OCR is not None @@ -1104,6 +1113,7 @@ async def update_rag_config( "EXTERNAL_DOCUMENT_LOADER_API_KEY": request.app.state.config.EXTERNAL_DOCUMENT_LOADER_API_KEY, "TIKA_SERVER_URL": request.app.state.config.TIKA_SERVER_URL, "DOCLING_SERVER_URL": request.app.state.config.DOCLING_SERVER_URL, + "DOCLING_PARAMS": request.app.state.config.DOCLING_PARAMS, "DOCLING_DO_OCR": request.app.state.config.DOCLING_DO_OCR, "DOCLING_FORCE_OCR": request.app.state.config.DOCLING_FORCE_OCR, "DOCLING_OCR_ENGINE": request.app.state.config.DOCLING_OCR_ENGINE, @@ -1522,6 +1532,7 @@ def process_file( "picture_description_mode": request.app.state.config.DOCLING_PICTURE_DESCRIPTION_MODE, "picture_description_local": request.app.state.config.DOCLING_PICTURE_DESCRIPTION_LOCAL, "picture_description_api": request.app.state.config.DOCLING_PICTURE_DESCRIPTION_API, + **request.app.state.config.DOCLING_PARAMS, }, PDF_EXTRACT_IMAGES=request.app.state.config.PDF_EXTRACT_IMAGES, DOCUMENT_INTELLIGENCE_ENDPOINT=request.app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT, diff --git a/src/lib/components/admin/Settings/Audio.svelte b/src/lib/components/admin/Settings/Audio.svelte index 588b6bed7c..dcd7ad3029 100644 --- a/src/lib/components/admin/Settings/Audio.svelte +++ b/src/lib/components/admin/Settings/Audio.svelte @@ -634,7 +634,7 @@