ParsRAG
Persian Install
1.1.2What's new in this release

Every answer, traced to its page.

Ask your documents on your own machine, and check every answer against the exact file and page it came from.

ParsRAG Documents only Local model

What is the total cost, and when is delivery?

ParsRAG2 sources

The total cost is 4.2 billion rials, including licenses and three months of support. Delivery is planned for the end of Azar 1405, after the acceptance test.

Ask about these documents, or @ one of them

PDFbudget.pdfpage 3

The total project cost is 4.2 billion rials, including licenses and three months of support.

DOCXtimeline.docxparagraph 7

Delivery is planned for the end of Azar 1405, after the acceptance test passes.

The answer cites budget.pdf, page 3, and timeline.docx, paragraph 7. Each citation opens the passage it came from.

01Live demo

Ask the sample documents.

Pick a set of documents, ask a question, and open each citation to see the passage behind it. Type @ to point part of a question at one file.

Questions your documents can answer

Enter to send

This demo runs entirely in your browser: a small keyword search over sample documents, with pre-written answers for the suggested questions. ParsRAG itself combines vector and keyword search, a reranker and a local language model.

02Documents-only mode

No evidence, no claim.

In Documents only mode, a sentence stays in the answer only while a passage supports it. Take the passage away and the claim goes with it.

Strict mode answers by meaning, so paraphrased and whole-document questions still work, but every fact has to come from your documents.

Claim

Rent is 45 million rials a month, due by the 5th.

Evidence

The monthly rent is 45 million rials, payable by the 5th day of each month.

Source

PDF lease.pdf, page 1

Supported by one passage

03Under the hood

What happens to a page.

From upload to cited answer, every step that touches your document runs on your machine.

  1. Upload

    PDF, Word, PowerPoint, images, text or code. The type, size and structure are checked before anything is read.

    Under the hood: Signatures are checked, Office archives are inspected for zip bombs, and a duplicate is recognized by its content, not just its name.

  2. Read and OCR

    Text layers are extracted directly. Scans and images are read with Persian and English OCR.

    Under the hood: Persian PDF text is rebuilt in reading order from glyph positions, and OCR re-reads pages that are rotated, upside down or skewed.

  3. Passages

    Text is split into passages that remember their file and page, slide, paragraph, table or image.

    Under the hood: Persian spelling is normalized, Word files are chunked under their headings, and a short bridge joins consecutive PDF pages.

  4. Vectors and keywords

    Each passage gets a multilingual-e5 vector and joins a keyword index, both on your machine.

    Under the hood: Keyword (BM25) and vector matches are fused, which helps with exact names, numbers and codes.

  5. Kept per conversation

    Passages live in Qdrant, filtered by the conversation they belong to. Delete it and they go too.

    Under the hood: An indexed document can be reused in another conversation without uploading it again.

  6. Retrieve and cite

    The closest passages go to the model with your question. A question that asks several things is searched part by part, and the answer streams back with numbered citations.

    Under the hood: Hybrid reranks candidates with a cross-encoder trained for Arabic script; Strict applies an evidence gate.

04Privacy

You decide what leaves your machine.

Reading, OCR, the search index and your conversations stay local. Only the model you choose decides where the answer is written.

Generation runs on this workstation. No prompt or excerpt leaves through the model adapter.

Where each step happens

  • Reading and OCRYour machine
  • Search indexYour machine
  • Conversation historyYour browser
  • Question and excerptsYour machine
  • Writing the answerYour machine

A typical cloud chatbot does all five on the provider's servers. API keys stay in memory or environment variables, never in browser storage, logs or API responses.

05Measured

Measured, then shipped.

Every number here links to where the repository records it. We'd rather show a small, honest gain than a big, vague claim.

Keyword plus vector search

Mean reciprocal rank on 127 keyword-style queries. Higher is better.

Before
0.748
After
0.823

0.851 with the Hybrid reranker; on 125 paraphrased questions the change was within noise.

OCR on rotated scans

Character error on Persian pages turned 90 degrees. Lower is better.

Before
0.85
After
0.09

Pages skewed 5 degrees went from 0.40 to 0.24; upright pages were unchanged.

OCR overall

Mean character error after the 1.0 OCR changes. Lower is better.

Before
0.225
After
0.133

Grayscale at 200 dpi, no contrast stretching, a confidence-based second pass.

A gain too small to turn on

Vector-search MRR with E5 query and passage prefixes.

Before
0.672
After
0.682

Too small to justify re-indexing everyone's documents, so it stays opt-in.

Checked on every change

  • An end-to-end test uploads a Persian PDF and requires a cited answer from the right page, and at least 7 of 8 paraphrased Persian questions must cite their own section first.
  • Backend and frontend checks run on Linux, Windows and macOS.
  • Backend test coverage may not drop below 85 percent.

The retrieval and OCR figures were measured by the maintainer on document sets that aren't published, so they can't be reproduced from the public repository. The CI checks run in the open on every change.

06Formats

One shelf for what you read.

Office files, scans, data and code are read with their structure, so a citation can name a slide or a section, not just a file.

Documents

.pdf .docx .pptx

Native structured extraction, with OCR for scanned or image-heavy PDF pages and for images inside Word and PowerPoint files.

By default a conversation holds 10 files, each up to 100 MiB, with up to 500 MiB per upload. Office archives are checked for suspicious compression, and unsupported binaries are rejected rather than misread.

07Two languages

Persian and English, both first-class.

Switch the interface language and the whole workspace changes direction, digits and labels. Each answer follows its own language.

Delivery timelineDocuments

When is delivery planned?

Documents only · 1 source

Delivery is planned for the end of Azar 1405, after the acceptance test.1

1timeline.docxparagraph 7

What would you like to explore?Documents only

08Install

Run it on your machine.

You need Docker, Ollama and 8–16 GB of RAM. The recommended setup uses the Ollama already on your computer, with its models and GPU; after the first download it works offline.

Then open http://127.0.0.1:8000. The first start downloads the embedding model and the reranker (about 100 MB) into the model cache.

# Install Ollama from ollama.com, then pull a model
ollama pull qwen2.5:7b
# Get the code
git clone https://github.com/Pooria82/ParsRAG.git
cd ParsRAG
# Create your settings file
cp .env.example .env
# Set LLM_MODEL_NAME in .env to the model you pulled
# Build and start ParsRAG
docker compose up -d --build

Support the project

Like it? Give it a star.

ParsRAG is an independent project. A star on GitHub helps people who work with Persian documents find it, and shows which direction is worth building on.

09Product tour

Everything in this release, start to finish.

The product tour walks through every feature that ships today, chapter by chapter, with the same sources this page cites. Read it, or present it full screen.

  1. 1What ParsRAG is
  2. 2Install and first start
  3. 3Connect a model
  4. 4Add documents
  5. 5How documents are read
  6. 6Finding evidence
  7. 7Asking questions
  8. 8Reading an answer
  9. 9Privacy and security
  10. 10Your workspace
  11. 11Architecture
  12. 12Quality and releases
  13. 13Configuration reference
  14. 14License and citation

Your documents. Your machine. Your evidence.

ParsRAG is for people who can't send their files to a cloud chatbot and still want answers they can check.

Loading…