Moats Verify checks AI-generated text against your document library and returns per-claim verdicts with citations.
Verify AI-generated text against your documents.
Works for RAG output, report fact-checking, compliance review, or any text you want to verify against source documents.
- Extracts factual claims from input text
- Retrieves candidate evidence from ChromaDB
- Re-ranks evidence with FlashRank
- Applies structured comparison (numeric, temporal, polarity)
- Falls back to LLM reasoning when structured comparison is inconclusive
- Returns
SUPPORTED,PARTIALLY_SUPPORTED,CONTRADICTED, orNO_EVIDENCE
- Docker Desktop (or Docker Engine + Compose plugin)
- An LLM provider key (OpenRouter/OpenAI/Anthropic) or a local OpenAI-compatible endpoint
cp .env.example .env && docker compose up --buildThen open:
- App UI: http://localhost:3000
- API docs: http://localhost:8000/docs
Note: the Compose stack also starts a Neo4j container for backward compatibility. The active verification pipeline uses SQLite + ChromaDB.
- Open Settings and configure provider, chat model, and embedding model.
- Open Library and create a library.
- Add documents via upload or local folder source.
- Run Sync/Build to ingest and embed documents.
- Open Verify and submit text.
curl -X POST http://localhost:8000/api/verify \
-H "Content-Type: application/json" \
-d '{"text":"Revenue was $5M in Q3 2024"}'Response includes:
verdictconfidencereasonevidence(text,source,page)used_llm(true= reasoning fallback,false= structured comparison)
- Runtime data is stored locally under
./data/and Docker volumes. - User document folders are mounted read-only from
./library/. .env,library/, anddata/are git-ignored.
pip install -r requirements.txt
uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000In another shell:
cd frontend && npm install && npm run devbackend/: FastAPI API, ingestion, retrieval, verification pipelinefrontend/: Next.js UItests/: backend testsbackend/deprecated/: legacy verify stack kept for rollback
- Empty verification results: confirm library has indexed chunks.
NO_EVIDENCEfor known claims: confirm the relevant documents are in the active library.- LLM errors: validate provider settings on Settings page.
This project is licensed under the MIT License. See LICENSE.