Metadata-Version: 2.4
Name: prompt-complexity-analyzer
Version: 0.1.0
Summary: ML-powered prompt complexity analyzer for LLM routing
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: scikit-learn>=1.3
Requires-Dist: numpy>=1.24
Requires-Dist: joblib>=1.3
Requires-Dist: sentence-transformers>=2.2
Requires-Dist: aiohttp>=3.9

# complexity-analyzer

ML-powered prompt complexity analyzer for LLM routing.

## Install

```bash
pip install .                        # basic (keyword features)
pip install ".[embeddings]"          # + semantic embeddings (better accuracy)
pip install ".[all]"                 # everything
```

## Usage

```python
from complexity_analyzer import complexity

r = complexity("prove P≠NP")
print(r.score)    # 9.2
print(r.model)    # claude-opus-4-6
print(r.tier)     # capable
print(r)          # Score 9.2/10 | Tier: capable | Model: claude-opus-4-6 | Backend: ml
r.explain()       # full breakdown with dimension scores
```

### With semantic embeddings (requires `pip install ".[embeddings]"`)

```python
from complexity_analyzer import load_embedding_model, complexity

load_embedding_model()   # call once at startup — downloads ~80MB once, cached
r = complexity("your prompt")
print(r.backend)  # ml
```

### CLI

```bash
complexity-analyzer -p "your prompt"
complexity-analyzer --only score -p "your prompt"
complexity-analyzer --provider openai -p "your prompt"
complexity-analyzer --json -p "your prompt"
```

## Retrain with your own data

```bash
# Generate labeled data
python generate_dataset.py       # 50k examples, free APIs
python generate_targeted.py      # targeted complex examples

# Retrain
python training.py --data dataset.jsonl --balance

# Replace bundled model
cp model.joblib complexity_analyzer/model.joblib
pip install -e .                  # re-install to pick up new model
```

## Score scale

| Score | Tier | Use |
|---|---|---|
| 1–3.5 | fast | Haiku / GPT-4o-mini / Gemini Flash |
| 3.6–6.5 | balanced | Sonnet / GPT-4o / Gemini Pro |
| 6.6–10 | capable | Opus / o1 / Gemini Ultra |
