From 1f1fb40c8c36793f35a5dde03a5ed1392a45edb1 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Mon, 7 Sep 2026 13:59:37 +0200 Subject: [PATCH 1/4] docs(ai): Add ocr docs Signed-off-by: Marcel Klehr --- admin_manual/ai/app_ocr_paddle.rst | 68 ++++++++++++++++++++++++++++++ admin_manual/ai/index.rst | 1 + admin_manual/ai/overview.rst | 29 ++++++++++++- 3 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 admin_manual/ai/app_ocr_paddle.rst diff --git a/admin_manual/ai/app_ocr_paddle.rst b/admin_manual/ai/app_ocr_paddle.rst new file mode 100644 index 00000000000..b0d6eb0d467 --- /dev/null +++ b/admin_manual/ai/app_ocr_paddle.rst @@ -0,0 +1,68 @@ +===================================================== +App: Local Optical Character Recognition (ocr_paddle) +===================================================== + +.. _ai-app-ocr_paddle: + +The *ocr_paddle* app is one of the apps that provide Optical Character Recognition functionality in Nextcloud and act as an OCR backend for the :ref:`Nextcloud Assistant app` and :ref:`other apps making use of the core OpticalCharacterRecognition Task type`. The *ocr_paddle* app specifically runs only open source models and does so entirely on-premises. Nextcloud can provide customer support upon request, please talk to your account manager for the possibilities. + +This app uses `PaddleOCR_VL `_ under the hood. + +The used model supports 109 languages, covering major global languages, including but not limited to Chinese, English, Japanese, Latin, and Korean, as well as languages with different scripts and structures, such as Russian (Cyrillic script), Arabic, Hindi (Devanagari script), and Thai. + +PDFs are supported; multi-page PDFs come back as one document. + +Requirements +------------ + +* Minimal Nextcloud version: 35 +* This app is built as an External App and thus depends on at least AppAPI v3.1.0 +* Nextcloud AIO is supported +* We currently support x86_64 & arm64 CPUs as well as NVIDIA GPUs + +* CPU Sizing + + * If you don't have a GPU, this app will utilize your CPU cores + * The more cores you have and the more powerful the CPU the better, we recommend 10-20 cores, but the runtime will still be very slow on CPU only + * The app will hog all cores by default, so it is usually better to run it on a separate machine + * 7.5GB of free system RAM + +* GPU Sizing + + * NVIDIA GPU + * Minimum of 6GB free VRAM + +Installation +------------ + +0. Make sure the :ref:`Nextcloud Assistant app` is installed +1. :ref:`Install AppAPI and setup a Deploy Daemon` +2. Install the *ocr_paddle* "Local OCR: PaddleOCR" ExApp via the "Apps" page in the Nextcloud web admin user interface + + +Scaling +------- + +It is currently not possible to scale this app, we are working on this. If you have real world data on how many files this app can process per minute, we will gladly list it here. + +App store +--------- + +You can also find this app in our app store, where you can write a review: ``_ + +Repository +---------- + +You can find the app's code repository on GitHub where you can report bugs and contribute fixes and features: ``_ + +Nextcloud customers should file bugs directly with our customer support. + +Known Limitations +----------------- + +* We currently only support languages supported by the underlying PaddleOCR-VL model +* The PaddleOCR-VL model performs unevenly across languages, and may show lower accuracy on low-resource and/or low-discoverability languages or languages where there was less training data available. +* Only the first 50 pages of PDF files are read (configurable via the OCR_MAX_PDF_PAGES deploy option), longer PDFs are silently truncated. +* Inputs are downscaled to ≤2.8 MP (max_pixels: 2822400), so high-resolution scans lose detail before OCR runs. +* Make sure to test the language model you are using it for whether it meets the use-case's quality requirements +* Customer support is available upon request, however we can't solve false or problematic output, most performance issues, or other problems caused by the underlying model. Support is thus limited only to bugs directly caused by the implementation of the app (connectors, API, front-end, AppAPI) diff --git a/admin_manual/ai/index.rst b/admin_manual/ai/index.rst index ddd53d4db19..c8814527e81 100644 --- a/admin_manual/ai/index.rst +++ b/admin_manual/ai/index.rst @@ -17,6 +17,7 @@ Artificial Intelligence app_summary_bot app_text2speech_kokoro app_live_transcription + app_ocr_paddle ai_as_a_service insight_and_debugging eu_ai_act diff --git a/admin_manual/ai/overview.rst b/admin_manual/ai/overview.rst index cb59310b04a..addfe211a14 100644 --- a/admin_manual/ai/overview.rst +++ b/admin_manual/ai/overview.rst @@ -70,6 +70,14 @@ Nextcloud uses modularity to separate raw AI functionality from the Graphical Us "","`Local Text To Speech (ExApp) `_","Yellow","Yes","Yes","No","Yes" "Document generation","`Nextcloud Office `_","Green","Yes","Yes","Yes","Yes" "Live Transcription","`Local Live Transcription `_","Yellow","Yes","Yes","No","Yes" + "Optical Character Recognition","`Local OCR: PaddleOCR `_","Yellow","Yes","Yes","No","Yes" + "","`OpenAI and LocalAI integration (via OpenAI API) `_","Red","No","No","No","No" + "","`OpenAI and LocalAI integration (via LocalAI) `_","Green","Yes","Yes","Yes","Yes" + "","`OpenAI and LocalAI integration (via Ollama) `_","Yellow","Yes","Yes - e.g. Llama models by Meta", "No","Yes" + "","`OpenAI and LocalAI integration (via IONOS AI Model Hub) `_","Orange","No","Yes","No","No" + "","`OpenAI and LocalAI integration (via Plusserver) `_","Orange","No","Yes","No","No" + "","`OpenAI and LocalAI integration (via Groqcloud) `_","Orange","No","Yes","No","No" + "","`OpenAI and LocalAI integration (via MistralAI) `_","Orange","No","Yes","No","No" Ethical AI Rating @@ -220,7 +228,6 @@ Backend apps * `OpenAI and LocalAI integration (via OpenAI API) `_ - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service`) * `Local Text To Speech (ExApp) `_ (Customer support available upon request) - Context Chat ^^^^^^^^^^^^ Our Context Chat feature was introduced in Nextcloud Hub 7 (v28). It allows asking questions to the assistant related to your documents in Nextcloud. You will need to install both the context_chat app as well as the context_chat_backend External App. Be prepared that things might break or be a little rough around the edges. We look forward to your feedback! @@ -324,7 +331,24 @@ Backend apps * :ref:`live_transcription` - Runs open weights AI Speech-To-Text models on your own server hardware (Customer support available upon request) -.. _ai-overview_improve-ai-task-pickup-speed: + +Optical Character Recognition +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. _ocr-consumer-apps: + +As you can see in the table above we have multiple apps offering OCR capabilities. In downstream apps like the assistant app, users can use OCR functionality regardless of which app implements it behind the scenes. + +Frontend apps +~~~~~~~~~~~~~ + +* `Assistant `_ + +Backend apps +~~~~~~~~~~~~ + +* `OpenAI and LocalAI integration (via OpenAI API) `_ - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service`) +* :ref:`Local OCR: PaddleOCR (ExApp) <` - (Customer support available upon request) Windmill workflows ^^^^^^^^^^^^^^^^^^ @@ -334,6 +358,7 @@ You can use the AI endpoints in your :ref:`Windmill workflows Date: Mon, 7 Sep 2026 14:40:48 +0200 Subject: [PATCH 2/4] docs(ai): Mention when ocr support was added in integration_openai Signed-off-by: Marcel Klehr --- admin_manual/ai/overview.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/admin_manual/ai/overview.rst b/admin_manual/ai/overview.rst index addfe211a14..5ed84103479 100644 --- a/admin_manual/ai/overview.rst +++ b/admin_manual/ai/overview.rst @@ -71,13 +71,13 @@ Nextcloud uses modularity to separate raw AI functionality from the Graphical Us "Document generation","`Nextcloud Office `_","Green","Yes","Yes","Yes","Yes" "Live Transcription","`Local Live Transcription `_","Yellow","Yes","Yes","No","Yes" "Optical Character Recognition","`Local OCR: PaddleOCR `_","Yellow","Yes","Yes","No","Yes" - "","`OpenAI and LocalAI integration (via OpenAI API) `_","Red","No","No","No","No" - "","`OpenAI and LocalAI integration (via LocalAI) `_","Green","Yes","Yes","Yes","Yes" - "","`OpenAI and LocalAI integration (via Ollama) `_","Yellow","Yes","Yes - e.g. Llama models by Meta", "No","Yes" - "","`OpenAI and LocalAI integration (via IONOS AI Model Hub) `_","Orange","No","Yes","No","No" - "","`OpenAI and LocalAI integration (via Plusserver) `_","Orange","No","Yes","No","No" - "","`OpenAI and LocalAI integration (via Groqcloud) `_","Orange","No","Yes","No","No" - "","`OpenAI and LocalAI integration (via MistralAI) `_","Orange","No","Yes","No","No" + "","`OpenAI and LocalAI integration >= v5.0.0 (via OpenAI API) `_","Red","No","No","No","No" + "","`OpenAI and LocalAI integration >= v5.0.0 (via LocalAI) `_","Green","Yes","Yes","Yes","Yes" + "","`OpenAI and LocalAI integration >= v5.0.0 (via Ollama) `_","Yellow","Yes","Yes - e.g. Llama models by Meta", "No","Yes" + "","`OpenAI and LocalAI integration >= v5.0.0 (via IONOS AI Model Hub) `_","Orange","No","Yes","No","No" + "","`OpenAI and LocalAI integration >= v5.0.0 (via Plusserver) `_","Orange","No","Yes","No","No" + "","`OpenAI and LocalAI integration >= v5.0.0 (via Groqcloud) `_","Orange","No","Yes","No","No" + "","`OpenAI and LocalAI integration >= v5.0.0 (via MistralAI) `_","Orange","No","Yes","No","No" Ethical AI Rating From c5ad4da68391e16196fde111eea5684a46e0328b Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Mon, 7 Sep 2026 14:46:17 +0200 Subject: [PATCH 3/4] docs(ai): Small fixes Signed-off-by: Marcel Klehr --- admin_manual/ai/app_ocr_paddle.rst | 3 ++- admin_manual/ai/overview.rst | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/admin_manual/ai/app_ocr_paddle.rst b/admin_manual/ai/app_ocr_paddle.rst index b0d6eb0d467..7d628e4cae1 100644 --- a/admin_manual/ai/app_ocr_paddle.rst +++ b/admin_manual/ai/app_ocr_paddle.rst @@ -62,7 +62,8 @@ Known Limitations * We currently only support languages supported by the underlying PaddleOCR-VL model * The PaddleOCR-VL model performs unevenly across languages, and may show lower accuracy on low-resource and/or low-discoverability languages or languages where there was less training data available. -* Only the first 50 pages of PDF files are read (configurable via the OCR_MAX_PDF_PAGES deploy option), longer PDFs are silently truncated. +* Only the first 50 pages of PDF files are read (configurable via the ``OCR_MAX_PDF_PAGES`` deploy option), longer PDFs are silently truncated. +* PDF pages are rasterized at 170 DPI (configurable via the ``OCR_PDF_DPI`` deploy option) before OCR * Inputs are downscaled to ≤2.8 MP (max_pixels: 2822400), so high-resolution scans lose detail before OCR runs. * Make sure to test the language model you are using it for whether it meets the use-case's quality requirements * Customer support is available upon request, however we can't solve false or problematic output, most performance issues, or other problems caused by the underlying model. Support is thus limited only to bugs directly caused by the implementation of the app (connectors, API, front-end, AppAPI) diff --git a/admin_manual/ai/overview.rst b/admin_manual/ai/overview.rst index 5ed84103479..124403e7a3d 100644 --- a/admin_manual/ai/overview.rst +++ b/admin_manual/ai/overview.rst @@ -347,7 +347,7 @@ Frontend apps Backend apps ~~~~~~~~~~~~ -* `OpenAI and LocalAI integration (via OpenAI API) `_ - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service`) +* `OpenAI and LocalAI integration (via OpenAI API) `_ >= v5.0.0 - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service`) * :ref:`Local OCR: PaddleOCR (ExApp) <` - (Customer support available upon request) Windmill workflows From cf1a30dc8375729acd7827dc9b20782f65d155ac Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Mon, 7 Sep 2026 15:34:32 +0200 Subject: [PATCH 4/4] docs(ai): Small fixes Signed-off-by: Marcel Klehr --- admin_manual/ai/overview.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin_manual/ai/overview.rst b/admin_manual/ai/overview.rst index 124403e7a3d..8d4c867fadd 100644 --- a/admin_manual/ai/overview.rst +++ b/admin_manual/ai/overview.rst @@ -348,7 +348,7 @@ Backend apps ~~~~~~~~~~~~ * `OpenAI and LocalAI integration (via OpenAI API) `_ >= v5.0.0 - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service`) -* :ref:`Local OCR: PaddleOCR (ExApp) <` - (Customer support available upon request) +* :ref:`Local OCR: PaddleOCR (ExApp) ` - (Customer support available upon request) Windmill workflows ^^^^^^^^^^^^^^^^^^