rag-demo
nodejavascript.com

Ask any document

Paste an article, a diary, a resume or a set of terms β€” anything long. Then ask it questions. The answer quotes the document, and beside it you get the dates, places, people and images it actually rests on, so you can check it instead of trusting it.

1

Give it something to read

Paste it, or drop a .txt, .md, .csv, .html or .pdf file anywhere on this box. Text copied straight out of a web page is fine: the tags are stripped out, and a PDF is read for you.

Indexing splits the document into entries, works out their dates, and finds the places, people, amounts and images in it. Every note is embedded, so the document can be searched by meaning.

Nothing pasted yet.

How it works

Four steps, in the order the data moves through them. Each one is there because of something that went wrong without it.

1 Β· It reads the shape of the document

  • A heading only starts a new entry when the line beneath it ends in a full stop. Without that rule a set of terms β€” short standalone lines β€” becomes one empty entry per line and most of the text disappears.
  • A date is claimed only when the day, the month and the year were all written. March 2026 is a month, not a day, and 06/03/2026 is left alone because it reads two ways.
  • Dates written without a year are carried forward, and the answer says the year was worked out rather than written.

2 Β· It searches two ways at once

  • By meaning β€” every note is embedded, so a question phrased differently still finds it.
  • By word β€” a real keyword index over the notes, so an exact name or date is never missed.
  • The two rankings are fused by rank, not by score, because the two scores have no common scale. A note found by both is the strongest signal there is.

3 Β· The numbers are counted in code

  • Asked how many entries mentioned something, an early version answered β€œ7” β€” it had counted the eight notes it could see. A model cannot count, so it is not asked to.
  • Every figure shown is computed over the whole document and handed over as a fact the model is forbidden to recompute.
  • The places, people, amounts and images beside an answer are all found in code too β€” they are a check on the answer, not part of it.

4 Β· It refuses two different ways

  • Nothing matched at all β€” refused by the search itself, in milliseconds, without calling a model. That refusal is a fact about the document.
  • The subject is there but the detail is not β€” the model refuses, helped by a code-computed fact that a name appears nowhere in the document. That fact is only ever asserted for a proper noun, never for a common word.

What this is, and what it is not

It is

  • A way to ask a long document a question and get an answer you can check.
  • Honest about what it does not know β€” refusals are a feature, and they are cheap.
  • Built so that every claim in an answer can be traced to the note it came from.

It is not

  • A place for anything confidential. Your document is sent to a model provider to answer each question. It is deleted on expiry or on request, but it does leave this machine β€” so use the local build if the text is private.
  • An oracle. It answers about the document in front of it and nothing else. It has no knowledge of the world and will not supply any.
  • A lawyer, a doctor or an accountant. If you paste a contract, it will tell you what the contract says, not whether you should sign it.

Privacy

Your document is held on the server so your next question can reach it, and it is deleted automatically. Press β€œDelete this document now” and it is gone immediately β€” the entries, the notes, the embeddings and the file itself, in one transaction.

To answer a question, the notes that matched are sent to the model provider along with the question. Nothing else is sent β€” not the whole document, and not the parts that did not match. The document and the questions are never written to the log; only sizes and timings are.

What is counted, and what is not

There is no account and nothing is stored about you. That leaves exactly one optional thing: Google Analytics, which is not loaded at all unless you allow it β€” so a visit that says no makes no request to Google and receives no cookie. What is sent, when it is allowed, is about the page: which pages were opened, which controls were pressed, and how far down people read. Never the text you paste and never the question you type.

One thing here is not a choice, and the panel is told to say so. If the page breaks on your machine, nothing else can tell anybody: so the error and the page you were on are sent to this site's own address, which relays them to Rollbar, our error-monitoring service. It is not a cookie, it keeps nothing in your browser or on your device, and it never carries anything you pasted β€” no document, no question, no answer. Reject all does not stop it, and that is the whole reason the panel names it as Required instead of offering a switch.

Your answer is remembered in your own browser's storage, not in a cookie β€” setting a cookie to record a cookie decision would be its own small joke. You can change it whenever you like from Cookie settings in the footer.