Metadata-Version: 2.4
Name: dhrions-llm-usage
Version: 0.2.2
Summary: Tarification, comptage de tokens et affichage LLM partagés du parc
Author: Dhrions
License: MIT
Keywords: llm,pricing,tokens,cli,cout
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: click>=8.3.3
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: python-semantic-release<10,>=9; extra == "dev"
Requires-Dist: build>=1.0; extra == "dev"
Requires-Dist: twine>=5.0; extra == "dev"

# dhrions-llm-usage

Tarification, comptage de tokens et affichage LLM partagés entre plusieurs CLI.

Quand plusieurs outils appellent un LLM et affichent le modèle utilisé, les tokens
consommés et un coût estimé, chacun tend à réimplémenter sa propre table de prix et son
propre format. Ce paquet centralise ces trois responsabilités : une source de prix
unique, un cumul d'usage thread-safe, un rendu cohérent.

Le paquet importable est `llm_usage` et la commande installée est `llm-usage`.

## Installation

```bash
pip install dhrions-llm-usage
```

## Contenu

| Module | Rôle |
| --- | --- |
| `pricing` | Table de prix (par token, au jeton de sortie seul pour l'image, et forfait par unité) + repli pour modèle inconnu. |
| `accumulator` | `Usage` : cumul thread-safe des tokens par modèle, et calcul du coût. |
| `display` | Rendu texte au style FR (`format_cost`, `format_usage_line`, `model_line`). |

## Utilisation

```python
from llm_usage import Usage, format_usage_line, model_line

usage = Usage()
usage.add("claude-opus-4-8", input_tokens=12000, output_tokens=3400)

print(model_line("claude-opus-4-8"))
# 🧠 Modèle utilisé : claude-opus-4-8
print(format_usage_line(usage))
# 📊 15 400 tokens (entrée 12 000 / sortie 3 400) · ~0,1450 $
```

Inspecter la table de prix depuis la ligne de commande :

```bash
llm-usage prices
```

## Convention d'affichage (style FR)

- montant **puis** symbole, séparateur décimal virgule : `0,0042 $` ;
- `~` en préfixe pour une estimation, `≥` quand un montant est minoré (modèle non tarifé) ;
- tokens : `entrée X / sortie Y`, milliers groupés par une espace fine ;
- annonce systématique du modèle : `🧠 Modèle utilisé : …`.

## Licence

MIT.
