No-OCR Product

TLDR: https://no-ocr.com/about

Motivation: OCR – have you heard about it?

Solved problem, right. Apparently not! I was amazed at how many companies are still struggling with PDFs and processing information.

At the beginning, I thought – okay, those are not advanced companies, or don’t put priority on it, or don’t have the right team, or something else. But for god’s sake – how in 2025 can you not process PDFs? AI is supposed to replace all of us (true story), and we’re still struggling with PDFs?

So I complained a lot, but there is a limit at which you stop complaining and actually do something!

And here we go: https://github.com/kyryl-opens-ml/no-ocr

NoOCR project for efficient search over PDFs, completely open source, relying on open source models, no OCR, easily installable, and usable from any enterprise environment!

Flow: Upload + Search

The current flow is simple

  1. upload multiple PDFs
  2. search over them
  3. that’s it.


The search engine handles highly complex visuals, layouts, tables, plots, diagrams, and more – no OCR, no unnecessary complexity. It uses just two LLMs: one to identify the most relevant pages and another to interpret them.

When to use (and not to use):

  • If your documents are visually rich, such as tables, plots, diagrams, etc., NoOCR is a good tool for you.
  • If your documents are mostly text-based, NoOCR is probably overkill for you. It is better to use old school BM25.

Why is the main entity in the application called “Case“? Two reasons: it is short and familiar to many people in the legal and insurance domains.

Architecture: Keep it simple.

Full diagram of all services:

Simple API + UI pattern! No databases, no queue, very basic stuff. All persistence happens on the file system and uses 3 services:

Here is what happens when you create the case:

and here is what happens when you search over the case:

LLM part: Keep it open.
I love open models. For some stages/companies, they might be suboptimal to use, but the fact you control your own destiny is always good. So which models do we have here? Just two, apparently: ColPali family and Qwen2-VL family

  • Qwen2-VL family: To be very concrete, Qwen2-VL-7B-Instruct. The Qwen model family is extremely popular nowadays, especially their QVQ-72B-Preview model, an open-source reasoning model with vision capabilities. As far as I know, this is the most advanced open visual model as of now.

Next: Roadmap

This project has basic functionality, but by no means is it complete. The current roadmap looks like this. Let’s see where we can take it!

  • Better models for reasoning and retrieval 72B and QVQ.
  • Agentic workflows – go beyond search and toward complete peace of work.
  • Training models per case – turn your workflow into data moat and train unique models.
  • UI/UX improvement – simplify, simplify, simplify.

If you have any strong opinions, I’m always happy to discuss in GitHub issues.

Takeaways:

Go ahead and try it: https://no-ocr.com/about, or deep dive into the code at https://github.com/kyryl-opens-ml/no-ocr!

If you like what you read -> consider joining my course where I teach how to build similar ML-based systems. Or feel free to contact me, I am always open to collaboration.

Leave a Comment

Scroll to Top