Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions admin_manual/ai/app_ocr_paddle.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
=====================================================
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<ai-app-assistant>` and :ref:`other apps making use of the core OpticalCharacterRecognition Task type<ocr-consumer-apps>`. 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 <https://huggingface.co/PaddlePaddle/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<ai-app-assistant>` is installed
1. :ref:`Install AppAPI and setup a Deploy Daemon<ai-app_api>`
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: `<https://apps.nextcloud.com/apps/ocr_paddle>`_

Repository
----------

You can find the app's code repository on GitHub where you can report bugs and contribute fixes and features: `<https://github.com/nextcloud/ocr_paddle>`_

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.
* 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)
1 change: 1 addition & 0 deletions admin_manual/ai/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
29 changes: 27 additions & 2 deletions admin_manual/ai/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,14 @@ Nextcloud uses modularity to separate raw AI functionality from the Graphical Us
"","`Local Text To Speech (ExApp) <https://apps.nextcloud.com/apps/text2speech_kokoro>`_","Yellow","Yes","Yes","No","Yes"
"Document generation","`Nextcloud Office <https://apps.nextcloud.com/apps/richdocuments>`_","Green","Yes","Yes","Yes","Yes"
"Live Transcription","`Local Live Transcription <https://apps.nextcloud.com/apps/live_transcription>`_","Yellow","Yes","Yes","No","Yes"
"Optical Character Recognition","`Local OCR: PaddleOCR <https://apps.nextcloud.com/apps/ocr_paddle>`_","Yellow","Yes","Yes","No","Yes"
"","`OpenAI and LocalAI integration >= v5.0.0 (via OpenAI API) <https://apps.nextcloud.com/apps/integration_openai>`_","Red","No","No","No","No"
"","`OpenAI and LocalAI integration >= v5.0.0 (via LocalAI) <https://apps.nextcloud.com/apps/integration_openai>`_","Green","Yes","Yes","Yes","Yes"
"","`OpenAI and LocalAI integration >= v5.0.0 (via Ollama) <https://apps.nextcloud.com/apps/integration_openai>`_","Yellow","Yes","Yes - e.g. Llama models by Meta", "No","Yes"
"","`OpenAI and LocalAI integration >= v5.0.0 (via IONOS AI Model Hub) <https://apps.nextcloud.com/apps/integration_openai>`_","Orange","No","Yes","No","No"
"","`OpenAI and LocalAI integration >= v5.0.0 (via Plusserver) <https://apps.nextcloud.com/apps/integration_openai>`_","Orange","No","Yes","No","No"
"","`OpenAI and LocalAI integration >= v5.0.0 (via Groqcloud) <https://apps.nextcloud.com/apps/integration_openai>`_","Orange","No","Yes","No","No"
"","`OpenAI and LocalAI integration >= v5.0.0 (via MistralAI) <https://apps.nextcloud.com/apps/integration_openai>`_","Orange","No","Yes","No","No"


Ethical AI Rating
Expand Down Expand Up @@ -220,7 +228,6 @@ Backend apps
* `OpenAI and LocalAI integration (via OpenAI API) <https://apps.nextcloud.com/apps/integration_openai>`_ - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service<ai-ai_as_a_service>`)
* `Local Text To Speech (ExApp) <https://apps.nextcloud.com/apps/text2speech_kokoro>`_ (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!
Expand Down Expand Up @@ -324,7 +331,24 @@ Backend apps

* :ref:`live_transcription<ai-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 <https://apps.nextcloud.com/apps/assistant>`_

Backend apps
~~~~~~~~~~~~

* `OpenAI and LocalAI integration (via OpenAI API) <https://apps.nextcloud.com/apps/integration_openai>`_ >= 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<ai-ai_as_a_service>`)
* :ref:`Local OCR: PaddleOCR (ExApp) <ai-app-ocr_paddle>` - (Customer support available upon request)

Windmill workflows
^^^^^^^^^^^^^^^^^^
Expand All @@ -334,6 +358,7 @@ You can use the AI endpoints in your :ref:`Windmill workflows<windmill_workflows

Improve AI task pickup speed
----------------------------
.. _ai-overview_improve-ai-task-pickup-speed:

Most AI tasks will be run as part of the background job system in Nextcloud which only runs jobs every 5 minutes by default.
To pick up scheduled jobs faster you can set up background job workers inside your Nextcloud main server/container that process AI tasks as soon as they are scheduled.
Expand Down
Loading