Skip to main content

Reasoning-based RAG for Excel financial models — no vectors, no chunking. Supports all major LLM providers.

Project description

Vectorless-QV

Reasoning-based RAG for Excel financial models — no vectors, no chunking.

Inspired by the PageIndex architecture, Vectorless builds a hierarchical tree index of an Excel workbook and uses an LLM reasoning loop (via AWS Bedrock) to navigate it — just like a financial analyst would.

Features

  • No vector database — no embeddings, no similarity search
  • No chunking — formulas and cell relationships stay intact
  • Hierarchical tree index — sheets → tables → formulas → cells
  • LLM-driven reasoning — parallel tool calls, search, drill-down
  • Formula tracing — follows =+PL!X118 across sheets
  • What-if analysis — override cells and recalculate formulas
  • 100% traceable — every answer cites exact sheet, cell, and formula

Installation

pip install -e .

Or from a built wheel:

pip install vectorless-qv

Quick Start

1. Index a workbook

vectorless-qv index --file financials.xlsx

This creates two files:

  • financials.tree.json — the hierarchical tree index
  • financials.parsed.json — raw cell data for query-time lookups

2. Ask questions

# Single question
vectorless-qv query --file financials.xlsx -q "What is the gross margin?"

# Interactive mode
vectorless-qv query --file financials.xlsx

# With reasoning trace
vectorless-qv query --file financials.xlsx -q "How is EBITDA calculated?" -v

3. Inspect the tree

# Full overview
vectorless-qv inspect --file financials.xlsx

# Specific node
vectorless-qv inspect --file financials.xlsx --node s1_t0

Python API

from vectorless_qv import parse_workbook, build_tree, BedrockAgent
import json

# Parse and index
data = parse_workbook("financials.xlsx")
tree = build_tree(data)

# Query
agent = BedrockAgent(tree=tree, workbook_data=data, excel_path="financials.xlsx")
result = agent.query("What drives net income?")
print(result["answer"])
print(result["citations"])

Configuration

Env Variable Default Description
AWS_DEFAULT_REGION us-east-1 AWS region for Bedrock
AWS_ACCESS_KEY_ID AWS credentials
AWS_SECRET_ACCESS_KEY AWS credentials

Override the model via CLI:

vectorless-qv query --file f.xlsx --model us.anthropic.claude-sonnet-4-5-20250929-v1:0 -q "..."

Architecture

Excel File
    │
    ▼
┌──────────┐     ┌──────────┐     ┌──────────┐
│  Parser  │────▶│ Indexer   │────▶│ Tree JSON│
│(openpyxl)│     │(hierarchy)│     │  (ToC)   │
└──────────┘     └──────────┘     └──────────┘
                                       │
                                       ▼
                               ┌──────────────┐
                               │ Bedrock Agent │◀── User Question
                               │ (Claude LLM)  │
                               └──────┬───────┘
                                      │
                          ┌───────────┼───────────┐
                          ▼           ▼           ▼
                    drill_down   get_cells    search_rows
                    get_row      what_if      answer

License

MIT

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

vectorless_qv-0.2.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

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

vectorless_qv-0.2.0-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file vectorless_qv-0.2.0.tar.gz.

File metadata

  • Download URL: vectorless_qv-0.2.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for vectorless_qv-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6f4365b1c34679c50fcd242552502b9142c6a0b086ccfb8fe89a832d534362ef
MD5 ba5876028c90c1dbf689218e7a2da74b
BLAKE2b-256 434b7ee80bc26d41115bc9794488ae144843a9f4797852bb83cdbba61ee35ce8

See more details on using hashes here.

File details

Details for the file vectorless_qv-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: vectorless_qv-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for vectorless_qv-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 143e4d7c936c44cbcc306198d88aafac1f766178dfb66a6ceb7e3bc18bcdccc9
MD5 70f80e2cbff11177dc063959a01574e6
BLAKE2b-256 f50fd176146366bb9f5da85bed82054d768bbe480088a6fa27edb57c318bf925

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