Skip to main content

pramana  ·  प्रमाण

Track whether LLM API outputs stay consistent over time.

Crowdsourced drift detection for LLM APIs. Run reproducible evals, compare results over time, catch silent model changes.

Tests License: MIT


The Problem

When you call gpt-5 or claude-sonnet-4-6 today, you might get different behavior than yesterday. Providers update, fine-tune, and swap models behind stable identifiers. This is invisible.

There's no standard way to notice — let alone measure — these changes.

The Fix

git clone https://github.com/syd-ppt/pramana && cd pramana
uv pip install -e ".[dev]"
$ pramana run --tier cheap --model gpt-5.2
Running cheap suite against gpt-5.2...
✓ 10/10 passed
Pass rate: 100.0%

Same prompts. Same parameters. Deterministic where the provider allows it. Compare across runs and users.


Usage

# See all supported models
pramana models

# Run evals (auto-detects provider from model name)
export OPENAI_API_KEY=sk-...
pramana run --tier cheap --model gpt-4o

# Aliases work too
pramana run --tier cheap --model opus

# Submit to the community dashboard
pramana submit results.json

Tiers:

Tier Tests Purpose
cheap 10 Smoke test, CI gates
moderate 25 Regular monitoring
comprehensive 75 Full evaluation

All tiers cover 6 categories: reasoning, factual, instruction following, coding, safety, creative.


Providers

Provider Temperature Seed Reproducibility
OpenAI ✅ Enforced ✅ Enforced High
Anthropic ✅ Enforced ❌ Ignored Low
Google ✅ Enforced ✅ Enforced Medium

For scientific drift detection, use OpenAI API with explicit keys. See REPRODUCIBILITY.md.


How It Works

You run pramana ──► Fixed prompts hit the API ──► Results hashed & stored
                                                         │
Other users run pramana ──► Same prompts ──► Results compared
                                                         │
                                              Drift detected via
                                              output consistency tracking
  • Content-addressable hashing — SHA-256 of (model, prompt, output) for deduplication
  • Deterministic parameters — temperature=0.0, seed=42 enforced by default
  • No normalization layer — raw API responses, not filtered through LiteLLM

Authentication (Optional)

pramana login          # GitHub/Google OAuth
pramana whoami         # Check status
pramana delete         # GDPR: delete all your data

No login required to run evals or submit results. Auth enables personalized tracking.


Development

git clone https://github.com/syd-ppt/pramana && cd pramana
uv pip install -e ".[dev]"
pytest tests/

Backend: pramana-api · Dashboard: pramana.pages.dev


Contributing

  1. Add test cases — append to suites/v1.0/{tier}.jsonl
  2. Add providers — subclass BaseProvider in src/pramana/providers/
  3. Improve assertions — new types in assertions.py

See CONTRIBUTING.md.


pramana (प्रमाण) — Sanskrit for proof, evidence, valid knowledge

Docs · Dashboard · Issues

Metadata

Release files for pramana-ai 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pramana-ai 0.1.0
File Size Uploaded
pramana_ai-0.1.0.tar.gz 165.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pramana-ai 0.1.0
File Interpreter ABI Platform
pramana_ai-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 201.0 kB

Release files / pramana_ai-0.1.0.tar.gz

Download URL pramana_ai-0.1.0.tar.gz
Size 165.5 kB
Tags Source
SHA-256 checksum
How to use checksums
81376dad3979d8c3667ae1b3560d3a3170017462ba32f7a17cea67562d9a9f31
BLAKE2b-256 checksum
How to use checksums
11b4b9905dd16ce35dc03301599d5468f3516788ebb009589e8cc17f71ea2432
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.14

Release files / pramana_ai-0.1.0-py3-none-any.whl

Download URL pramana_ai-0.1.0-py3-none-any.whl
Size 35.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d28f46e00ca1ee5d7c2349792c0ab47a2cfaf059c74f77394f999e5b73af0018
BLAKE2b-256 checksum
How to use checksums
32dfa5245888f1f5f2af7fa74d85462a7ed0e3da3eb37d9bac20d0cd4f3cc2a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.14

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page