Metadata-Version: 2.4
Name: requalify-tokens-calculator
Version: 0.1.0
Summary: Biblioteca Python para calcular tokens de LLM para imagens, vídeos, áudio e texto - Requalify Intelligence Suite
Author-email: Requalify <contato@requalify.ai>
License: MIT
Project-URL: Homepage, https://requalify.ai
Project-URL: Documentation, https://github.com/evakub/requalify-tokens-calculator
Keywords: tokens,llm,multimodal,ai,requalify
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: tomli>=2.0.0; python_version < "3.11" and extra == "dev"
Dynamic: license-file

# Requalify Tokens Calculator

Biblioteca Python para calcular tokens de LLM gastos em requisições multimodais (texto, imagem, vídeo e áudio). Parte do **Requalify Intelligence Suite**.

## Instalação

```bash
pip install requalify-tokens-calculator
```

## Uso Básico

### Cálculo Individual

```python
from requalify_tokens import TokenCalculator

calculator = TokenCalculator()

# Calcular tokens de uma imagem
image_tokens = calculator.calculate_image_tokens(width=600, height=400)
print(f"Imagem 600x400: {image_tokens} tokens")

# Calcular tokens de um vídeo
video_tokens = calculator.calculate_video_tokens(duration_seconds=10)
print(f"Vídeo de 10 segundos: {video_tokens} tokens")

# Calcular tokens de áudio
audio_tokens = calculator.calculate_audio_tokens(duration_seconds=30)
print(f"Áudio de 30 segundos: {audio_tokens} tokens")

# Calcular tokens de texto
text_tokens = calculator.calculate_text_tokens("Seu texto aqui")
print(f"Texto: {text_tokens} tokens")
```

### Cálculo Total (Multimodal)

```python
from requalify_tokens import TokenCalculator

calculator = TokenCalculator()

total = calculator.calculate_total_tokens(
    text="Analise esta imagem e vídeo",
    images=[(600, 400), (1920, 1080)],
    videos=[10.5],
    audios=[30.0]
)

print(f"Total de tokens: {total}")
```

## Parâmetros de Configuração

- `image_base_tokens`: Tokens base para imagens pequenas ou por tile (padrão: 531)
- `image_tile_size`: Tamanho do tile em pixels (padrão: 768)
- `image_small_threshold`: Limite para considerar imagem pequena (padrão: 384)
- `video_tokens_per_second`: Tokens por segundo de vídeo (padrão: 562.0)
- `audio_tokens_per_second`: Tokens por segundo de áudio (padrão: 96.0)
- `text_tokens_per_char`: Tokens por caractere de texto (padrão: 0.45)

## Como Funciona

### Imagens
- Imagens com ambas dimensões ≤ 384px: contadas como `image_base_tokens` (531 tokens)
- Imagens maiores: divididas em tiles de `image_tile_size`x`image_tile_size` (768x768), cada tile conta como `image_base_tokens` (531 tokens)
- **Exemplo**: Imagem 600x400 = 531 tokens (1 tile). Imagem 1920x1080 = 3.186 tokens (6 tiles: 3×2)

### Vídeo
- Tokens = duração em segundos × (`video_tokens_per_second` + `audio_tokens_per_second`)
- **Nota**: O cálculo de vídeo inclui automaticamente o componente de áudio, pois vídeos contêm tanto componente visual quanto de áudio
- **Exemplo**: Vídeo de 10 segundos = 10 × (562.0 + 96.0) = 6.580 tokens

### Áudio
- Tokens = duração em segundos × `audio_tokens_per_second` (96.0 tokens/segundo)
- **Exemplo**: Áudio de 30 segundos = 30 × 96.0 = 2.880 tokens

### Texto
- Tokens = número de caracteres × `text_tokens_per_char` (0.45 tokens/caractere)
- **Exemplo**: Texto com 100 caracteres = 100 × 0.45 = 45 tokens

## Requalify Intelligence Suite

Esta biblioteca faz parte do **Requalify Intelligence Suite**, uma plataforma de IA multimodal para produção no Brasil. Para mais informações, visite [requalify.ai](https://requalify.ai).

## Licença

MIT
