# Medidor de contexto

> Cuánto se llenó la ventana de contexto de un modelo: un anillo y `48k / 200k`. Componente de Pyzed para GUIs de escritorio en Python, con ejemplos y API.

Source: https://albakore.github.io/pyzed/es/library/context-meter/

:::tip[En pocas palabras]
Un anillo pequeño que se llena a medida que un chat con una IA se alarga, como el indicador de gasolina.
:::

`ui.context_meter(used, limit)` muestra cuánto se llenó la ventana de contexto de un modelo de IA: un anillo pequeño y `48k / 200k`. Es gris por debajo del 80 %, amarillo desde el 80 % y rojo desde el 95 %, y su tooltip da las cifras exactas. `ui.format_tokens(count)` escribe una cifra de forma corta: `950`, `4.5k`, `48k`, `1.25M`.

`ui.context_meter` · Categoría: [Agentes de IA](https://albakore.github.io/pyzed/es/library/#agentes-de-ia) · [Referencia completa →](https://albakore.github.io/pyzed/es/reference/ui/#context_meter)

**Código:**

```python
pz.row([
    ui.context_meter(48_000, 200_000),
    ui.context_meter(170_000, 200_000),
    ui.context_meter(196_000, 200_000),
], spacing=24, align="center")
```

:::note[Nuevo]
Este componente se añadió hace poco. Cuéntanos qué tal te funciona en el [gestor de incidencias](https://github.com/albakore/pyzed/issues).
:::

## Cuándo usarlo

- En la barra o en la caja de texto del chat de un agente, para que el usuario vea cuándo una conversación se hace larga.

## Uso

```python
import pyzed as pz
from pyzed import ui

pz.row([
    ui.context_meter(48_000, 200_000),
    ui.context_meter(170_000, 200_000),
    ui.context_meter(196_000, 200_000),
], spacing=24, align="center")
```

## Variantes

:::note[Sobre estas capturas]
Cada captura la graba pyzed mismo, fuera de pantalla a 2x, en One Dark o One Light según el tema de este sitio, y recortada al componente para que se vea a su tamaño real. El puntero pasa por encima, pulsa o escribe en él; un componente que no reacciona al puntero recorre algunos temas. Con movimiento reducido ves el primer fotograma. Abre **Código** bajo una captura para ver el fragmento que la dibuja; los nombres libres como `on_save` son tus propios callbacks.
:::

### Nivel

Dibujado tal como lo muestra el puntero: los tooltips solo se abren al pasar el ratón.

```python
ui.context_meter(48_000, 200_000)
```

```python
ui.context_meter(170_000, 200_000)
```

```python
ui.context_meter(196_000, 200_000)
```

```python
ui.context_meter(48_000, 200_000)
```

### Cifras cortas

`ui.format_tokens` devuelve el texto que muestra el medidor, para tus propias etiquetas.

```python
ui.label(ui.format_tokens(950), mono=True)
```

```python
ui.label(ui.format_tokens(4_500), mono=True)
```

```python
ui.label(ui.format_tokens(48_000), mono=True)
```

```python
ui.label(ui.format_tokens(1_250_000), mono=True)
```

## Eventos

Medidor de contexto no tiene eventos propios: muestra lo que le das. Como todo widget, también tiene los **18 eventos comunes** (`click`, `double_click`, `right_click`, `mouse_enter`, `drag`, `key_down`, `resize`…), que se conectan con `.on(...)`: mira [Eventos](https://albakore.github.io/pyzed/es/guides/events/) y [Eventos de cada componente](https://albakore.github.io/pyzed/es/library/events/).

## Propiedades y API

### `ui.context_meter`

```python
context_meter(used, limit, *, theme=None)
```

Cuánto se llenó la ventana de contexto de un modelo, como el contador de tokens de Zed: un anillo pequeño y `48k / 200k`, amarillo pasado el 80 % y rojo pasado el 95 %.

| Propiedad | Por defecto | Descripción |
| --- | --- | --- |
| `used` | *obligatorio* | Tokens en uso. |
| `limit` | *obligatorio* | La ventana del modelo. |
| `theme` | `None` | Tema. |

[Referencia completa →](https://albakore.github.io/pyzed/es/reference/ui/#context_meter)

### `ui.format_tokens`

```python
format_tokens(count)
```

Un número de tokens corto: `950`, `4.5k`, `48k`, `1.25M`.

| Propiedad | Por defecto | Descripción |
| --- | --- | --- |
| `count` | *obligatorio* | Tokens. |

[Referencia completa →](https://albakore.github.io/pyzed/es/reference/ui/#format_tokens)

## Relacionados

- [Dona](https://albakore.github.io/pyzed/es/library/donut/): Un gráfico de dona con una etiqueta en el centro.
- [Progreso](https://albakore.github.io/pyzed/es/library/progress/): Una barra de progreso fina en un color semántico.
- [Llamada a herramienta](https://albakore.github.io/pyzed/es/library/tool-call/): Un paso de un agente de IA: qué hizo, su resultado y Permitir o Rechazar.
