Skip to main content

A modular, production-ready knowledge engine platform with clean architecture and multi-paradigm support (RAG, CLaRa).

Project description

fitz-ai

Python 3.10+ PyPI version License: MIT Version Coverage


Honest RAG in 5 minutes. No infrastructure. No boilerplate.

pip install fitz-ai

fitz quickstart ./docs "What is our refund policy?"

That's it. Your documents are now searchable with AI.

fitz-ai quickstart demo


About ๐Ÿง‘โ€๐ŸŒพ

Solo project by Yan Fitzner (LinkedIn, GitHub).

  • ~40k lines of Python
  • 600+ tests, 100% coverage
  • Zero LangChain/LlamaIndex dependencies โ€” built from scratch

fitz-ai honest_rag


๐Ÿ“ฆ What is RAG?

Instead of sending all your documents to an AI, RAG:

  1. Indexes your documents once โ€” Splits them into chunks, converts to vectors, stores in a database
  2. Retrieves only what's relevant โ€” When you ask a question, finds the 5-10 most relevant chunks
  3. Sends just those chunks to the LLM โ€” The AI answers based on focused, relevant context

Traditional approach:

  [All 10,000 documents] โ†’ LLM โ†’ Answer
  โŒ Impossible (too large)
  โŒ Expensive (if possible)
  โŒ Unfocused

RAG approach:

  Question โ†’ [Search index] โ†’ [5 relevant chunks] โ†’ LLM โ†’ Answer
  โœ… Works at any scale
  โœ… Costs pennies per query
  โœ… Focused context = better answers

RAG is how ChatGPT's "file search," Notion AI, and enterprise knowledge tools actually work under the hood.


๐Ÿ“ฆ Why Can't I Just Send My Documents to ChatGPT directly?

You canโ€”but you'll hit walls fast.

Context window limits โŒ

GPT-4 accepts ~128k tokens. That's roughly 300 pages. Your company wiki, codebase, or document archive is likely 10x-100x larger. You physically cannot paste it all.

Cost explosion ๐Ÿ’ฅ

Even if you could fit everything, you'd pay for every token on every query. Sending 100k tokens costs ~$1-3 per question. Ask 50 questions a day? That's $50-150 dailyโ€”for one user.

No selective retrieval ๐Ÿšจ

When you paste documents, the model reads everything equally. It can't focus on what's relevant. Ask about refund policies and it's also processing your hiring guidelines, engineering specs, and meeting notesโ€”wasting context and degrading answers.

No persistence ๐Ÿ’ข

Every conversation starts fresh. You re-upload, re-paste, re-explain. There's no knowledge base that accumulates and improves.


Why Fitz?

Super fast setup ๐Ÿ†

Point at a folder. Ask a question. Get an answer with sources. Everything else is handled by Fitz.

Honest answers โœ…

Most RAG tools confidently answer even when the answer isn't in your documents. Ask "What was our Q4 revenue?" when your docs only cover Q1-Q3, and typical RAG hallucinates a number. Fitz says: "I cannot find Q4 revenue figures in the provided documents."

Swap engines, keep everything else โš™๏ธ

RAG is evolving fastโ€”GraphRAG, HyDE, ColBERT, whatever's next. Fitz lets you switch engines in one line. Your ingested data stays. Your queries stay. No migration, no re-ingestion, no new API to learn. Frameworks lock you in; Fitz lets you move.

Analytical queries that actually work ๐Ÿ“Š

Standard RAG fails on questions like "What are the trends?"โ€”it retrieves random chunks instead of insights. Fitz's hierarchical RAG generates multi-level summaries during ingestion. Ask for trends, get aggregated analysis. Ask for specifics, get detail chunks. No special syntax required.

Other Features at a Glance ๐Ÿƒ

  1. [x] Local execution possible. FAISS and Ollama support, no API keys required to start.
  2. [x] Plugin-based architecture. Swap LLMs, vector databases, rerankers, and retrieval pipelines via YAML config.
  3. [X] Incremental ingestion. Only reprocesses changed files, even with new chunking settings.
  4. [x] Full provenance. Every answer traces back to the exact chunk and document.
  5. [x] Data privacy: No telemetry, no cloud, no external calls except to the LLM provider you configure.

Any questions left? Try fitz on itself:

fitz quickstart ./fitz_ai "How does the chunking pipeline work?"

The codebase speaks for itself.


๐Ÿ“ฆ Fitz vs LangChain vs LlamaIndex

Fitz opts for a deliberately narrower approach.

LangChain and LlamaIndex are powerful LLM application frameworks designed to help developers build complex, end-to-end AI systems. Fitz provides a minimal, replaceable RAG engine with strong epistemic guarantees โ€” without locking users into a framework, ecosystem, or long-term architectural commitment.

Fitz is not a competitor in scope.
It is an infrastructure primitive.


Core philosophical differences โš–๏ธ

Dimension Fitz LangChain LlamaIndex
Primary role RAG engine LLM application framework LLM data framework
User commitment No framework lock-in High High
Engine coupling Swappable in one line Deep Deep
Design goal Correctness & honesty Flexibility Data integration
Long-term risk Low Migration-heavy Migration-heavy

Epistemic behavior (truth over fluency) ๐ŸŽฏ

Aspect Fitz LangChain / LlamaIndex
โ€œI donโ€™t knowโ€ First-class behavior Not guaranteed
Hallucination handling Designed-in Usually prompt-level
Confidence signaling Explicit Implicit

Fitz treats uncertainty as a feature, not a failure.
If the system cannot support an answer with retrieved evidence, it says so.


Transparency & provenance ๐Ÿ”Ž

Capability Fitz LangChain / LlamaIndex
Source attribution Mandatory Optional
Retrieval trace Explicit & structured Often opaque
Debuggability Built-in Tool-dependent

Every answer in Fitz is fully auditable down to the retrieval step.


Scope & complexity ๐Ÿช

Aspect Fitz LangChain / LlamaIndex
Chains / agents โŽ โœ”
Prompt graphs โŽ โœ”
UI abstractions โŽ Often
Cognitive overhead Very low High

Fitz intentionally does less โ€” so it can be trusted more.


Use Fitz if you want:

  • A replaceable RAG engine, not a framework marriage
  • Strong epistemic guarantees (โ€œI donโ€™t knowโ€ is valid output)
  • Full provenance for every answer
  • A transparent, extensible plugin architecture
  • A future-proof ingestion pipeline that survives engine changes

๐Ÿ“ฆ Features

Actually admits when it doesn't know ๐Ÿ“š

When documents don't contain the answer, fitz says so:

Q: "What was our Q4 revenue?"
A: "I cannot find Q4 revenue figures in the provided documents.
    The available financial data covers Q1-Q3 only."

   Mode: ABSTAIN

Three constraint plugins run automatically:

  • ๐Ÿ“• ConflictAwareConstraint: Detects contradictions across sources
  • ๐Ÿ“— InsufficientEvidenceConstraint: Blocks answers without evidence
  • ๐Ÿ“˜ CausalAttributionConstraint: Prevents hallucinated cause-effect claims

Swappable RAG Engines ๐Ÿ”„

Your data stays. Your queries stay. Only the engine changes.

       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ”‚           Your Query                โ”‚
       โ”‚   "What are the payment terms?"     โ”‚
       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ”‚       engine="..."                  โ”‚
       โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
       โ”‚  โ”‚ classic โ”‚ โ”‚ clara โ”‚ โ”‚ graph   โ”‚  โ”‚
       โ”‚  โ”‚  _rag   โ”‚ โ”‚       โ”‚ โ”‚  _rag   โ”‚  โ”‚
       โ”‚  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜  โ”‚
       โ”‚       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ”‚
       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ”‚       Your Ingested Knowledge       โ”‚
       โ”‚      (unchanged across engines)     โ”‚
       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
answer = run("What are the payment terms?", engine="classic_rag")
answer = run("What are the payment terms?", engine="clara")
answer = run("What are the payment terms?", engine="graph_rag")  # future

No migration. No re-ingestion. No new API to learn.


Full Provenance ๐Ÿ—‚๏ธ

Every answer traces back to its source:

Answer: The refund policy allows returns within 30 days...

Sources:
 [1] policies/refund.md [chunk 3] (score: 0.92)
 [2] faq/payments.md [chunk 1] (score: 0.87)

Incremental Ingestion โšก

Fitz tracks file hashes and only re-ingests what changed:

$ fitz ingest ./src

Scanning... 847 files
 โ†’ 12 new files
 โ†’ 3 modified files
 โ†’ 832 unchanged (skipped)

Ingesting 15 files...

Re-running ingestion on a large codebase takes seconds, not minutes. Changed your chunking config? Fitz detects that too and re-processes affected files.


Smart Chunking ๐Ÿง 

Format-aware chunking that preserves structure:

Format Strategy
Python AST-aware: keeps classes, functions, imports intact. Large classes split by method.
Markdown Header-aware: splits on # headers, preserves code blocks and lists. Extracts YAML frontmatter as metadata.
PDF Section-aware: detects numbered headings (1.1, 2.3.1), roman numerals, and keywords (Abstract, Conclusion).

No more retrieving half a function or a code block split mid-syntax.


Enrichment โœจ

Opt-in enrichment plugins enhance your knowledge base:

  • Code-derived artifacts: Navigation indexes, interface catalogs, dependency graphsโ€”extracted directly from your codebase via AST analysis. No LLM required.
  • LLM-generated summaries: Natural language descriptions for chunks, making code more discoverable via semantic search.

Your question matches enriched context, not just raw text. Fully extensibleโ€”add your own enrichment plugins.


Hierarchical RAG ๐Ÿ“Š

Standard RAG struggles with analytical queries like "What are the trends?" because it retrieves random chunks instead of aggregated insights. Hierarchical RAG solves this.

The problem:

Q: "What are the trends in my comments?"
Standard RAG: Returns random individual comments (not useful)

The solution:

# .fitz/config.yaml
enrichment:
 hierarchy:
   enabled: true
   rules:
     - name: video_comments
       paths: ["comments/**"]
       group_by: video_id
       prompt: "Summarize sentiment and themes"

Fitz generates multi-level summaries during ingestion:

  • Level 0: Corpus summary ("Across all videos: 78% positive, top themes are...")
  • Level 1: Group summaries ("Video ABC: mostly questions about pricing...")
  • Level 2: Original chunks (unchanged)

Now analytical queries retrieve summaries, while specific queries still retrieve details:

Q: "What are the trends in my comments?"
โ†’ Returns corpus + group summaries (aggregated insights)

Q: "What did people say about my hair?"
โ†’ Returns specific comments mentioning hair (detail chunks)

No special query syntax. No retrieval config changes. Summaries match analytical queries naturally via vector similarity.


๐Ÿ“ฆ Quick Start
pip install fitz-ai

fitz quickstart ./docs "Your question here"

That's it. Fitz will prompt you for anything it needs.


Want to go fully local with Ollama? No problem:

pip install fitz-ai[local]

ollama pull llama3.2
ollama pull nomic-embed-text

fitz quickstart ./docs "Your question here"

No data leaves your machine. No API costs. Same interface.


๐Ÿ“ฆ Real-World Usage

Fitz is a foundation. It handles document ingestion and grounded retrievalโ€”you build whatever sits on top: chatbots, dashboards, alerts, or automation.


Chatbot Backend ๐Ÿค–

Connect fitz to Slack, Discord, Teams, or your own UI. One function call returns an answer with sourcesโ€”no hallucinations, full provenance. You handle the conversation flow; fitz handles the knowledge.

Example: A SaaS company plugs fitz into their support bot. Tier-1 questions like "How do I reset my password?" get instant answers. Their support team focuses on edge cases while fitz deflects 60% of incoming tickets.


Internal Knowledge Base ๐Ÿ“–

Point fitz at your company's wiki, policies, and runbooks. Employees ask natural language questions instead of hunting through folders or pinging colleagues on Slack.

Example: A 200-person startup ingests their Notion workspace and compliance docs. New hires find answers to "How do I request PTO?" on day oneโ€”no more waiting for someone in HR to respond.


Continuous Intelligence & Alerting (Watchdog) ๐Ÿถ

Pair fitz with cron, Airflow, or Lambda. Ingest data on a schedule, run queries automatically, trigger alerts when conditions match. Fitz provides the retrieval primitive; you wire the automation.

Example: A security team ingests SIEM logs nightly. Every morning, a scheduled job asks "Were there failed logins from unusual locations?" If fitz finds evidence, an alert fires to the on-call channel before anyone checks email.


Web Knowledge Base ๐ŸŒŽ

Scrape the web with Scrapy, BeautifulSoup, or Playwright. Save to disk, ingest with fitz. The web becomes a queryable knowledge base.

Example: A football analytics hobbyist scrapes Premier League match reports. After ingesting, they ask "How did Arsenal perform against top 6 teams?" or "What tactics did Liverpool use in away games?"โ€”insights that would take hours to compile manually.


Codebase Search ๐Ÿ

Fitz includes built-in AST-aware chunking for Python. Functions, classes, and modules become individual searchable units with docstrings and imports preserved. Ask questions in natural language; get answers pointing to specific code.

Example: A team inherits a legacy Django monolithโ€”200k lines, sparse docs. They ingest the codebase and ask "Where is user authentication handled?" or "What API endpoints modify the billing table?" New developers onboard in days instead of weeks.


๐Ÿ“ฆ Architecture
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         fitz-ai                               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  CLI Layer                                                    โ”‚
โ”‚  quickstart | init | ingest | query | chat | config | doctor  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Engines                                                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                             โ”‚
โ”‚  โ”‚  Classic RAG  โ”‚  โ”‚   CLaRa   โ”‚  (pluggable)                โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                             โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Plugin System (all YAML-defined)                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”             โ”‚
โ”‚  โ”‚  LLM   โ”‚ โ”‚ Embedding โ”‚ โ”‚ Rerank โ”‚ โ”‚ VectorDB โ”‚             โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜             โ”‚
โ”‚  openai, cohere, anthropic, ollama, azure...                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Retrieval Pipelines (YAML-composed)                          โ”‚
โ”‚  dense.yaml | dense_rerank.yaml | custom...                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Enrichment (opt-in)                                          โ”‚
โ”‚  code artifacts | LLM summaries | hierarchical RAG | custom   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Constraints (epistemic safety)                               โ”‚
โ”‚  ConflictAware | InsufficientEvidence | CausalAttribution     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ฆ CLI Reference
fitz quickstart [PATH] [QUESTION]    # Zero-config RAG (start here)
fitz init                            # Interactive setup wizard
fitz ingest                          # Interactive ingestion
fitz query                           # Single question with sources
fitz chat                            # Multi-turn conversation with your knowledge base
fitz collections                     # List and delete knowledge collections
fitz config                          # View/edit configuration
fitz doctor                          # System diagnostics

๐Ÿ“ฆ Beyond RAG

RAG is a method. Knowledge access is a strategy.

Fitz is not a RAG framework. It's a knowledge platform that currently uses RAG as its primary engine.

from fitz_ai import run

# Today: Classic RAG
answer = run("What are the payment terms?", engine="classic_rag")

# Also available: CLaRa (compressed RAG, 16x smaller context)
answer = run("What are the payment terms?", engine="clara")

# Tomorrow: GraphRAG, HyDE, or whatever comes next
answer = run("What are the payment terms?", engine="graph_rag")

The engine is an implementation detail. Your ingested knowledge, your queries, your workflowโ€”all stay the same. When a better retrieval paradigm emerges, swap one line, not your entire codebase.


๐Ÿ“ฆ Philosophy

Principles:

  • Explicit over clever: No magic. Read the config, know what happens.
  • Answers over architecture: Optimize for time-to-insight, not flexibility.
  • Honest over helpful: Better to say "I don't know" than hallucinate.
  • Files over frameworks: YAML plugins over class hierarchies.

License

MIT


Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fitz_ai-0.4.2.tar.gz (336.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fitz_ai-0.4.2-py3-none-any.whl (367.9 kB view details)

Uploaded Python 3

File details

Details for the file fitz_ai-0.4.2.tar.gz.

File metadata

  • Download URL: fitz_ai-0.4.2.tar.gz
  • Upload date:
  • Size: 336.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for fitz_ai-0.4.2.tar.gz
Algorithm Hash digest
SHA256 540d3ece14f4ff6a751bee0d2e58f06162f55e3d4bf8a79e1bf553c8b43e9500
MD5 4a49a4ff9db4f80644e8ba05a4f222ce
BLAKE2b-256 debbe91b26a390553547c4d2f9b88090562c3f2c492f962835da01bc81921d97

See more details on using hashes here.

File details

Details for the file fitz_ai-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: fitz_ai-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 367.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for fitz_ai-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2d4591d3422e0cd95beecc4c363ce64ab78be1c5c6a94aa8879663970db3611e
MD5 a7aa7daf9b8e257cf5711b95578d1ffc
BLAKE2b-256 2693ee8e25917173f9e731f21e0027725148ab58ef3cb2f2e5a7bf760a926e61

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page