Qué hace este proyecto
codex-quota es una herramienta liviana para verificar el uso de la cuota de ChatGPT Codex, con datos obtenidos de https://chatgpt.com/backend-api/wham/usage.
Características principales:
- Admite consultas de una sola cuenta y de varias cuentas (
account/*.auth.json). - Genera
five_hour%,weekly%,weekly_resety marca la fuente (networkocache). - Utiliza reintentos de retroceso exponencial para fallas temporales (
408,429,5xx). - Incluye almacenamiento en caché local para reducir las solicitudes repetidas cuando la cuota ya está agotada.
- Proporciona un panel web, API JSON y páginas de administración de archivos de autenticación.
Ventajas:
- Ligero: se ejecuta con scripts simples y dependencias mínimas.
- Práctico: admite puntos de entrada CLI y Web.
- Implementable: funciona con Docker y Docker Compose.
- Fácil de operar: incluye reintento, caché y soporte de actualización programada.
Prepare las credenciales de la cuenta primero
Cree archivos de credenciales en account/<name>.auth.json, por ejemplo:
|
|
Explicación:
- La API de uso requiere
access_tokenyaccount_id. <nombre>en el nombre del archivo se utiliza como nombre de cuenta en la salida.
Uso de CLI local (conservar los comandos originales)
Instalar dependencias:
|
|
Explicación: instala las dependencias del proyecto.
Consultar todas las cuentas:
|
|
Explicación: lee account/*.auth.json y genera un resumen de cuota para todas las cuentas.
Consulta una cuenta:
|
|
Explicación: solo consulta cuenta/nombre_de_cuenta.auth.json.
Forzar actualización (omitir caché):
|
|
Explicación: ignora el caché local y recupera datos nuevos directamente.
Opciones CLI (alineadas con README)
account_name: nombre de cuenta opcional (sin.auth.json).--account-dir: directorio de autenticación,cuentapredeterminada.--chatgpt-url: punto final de API de cuota.--raw-json: imprime el cuerpo completo de la respuesta JSON.--raw-headers: imprime encabezados de respuesta.--refresh: ignora el caché.--retries: recuento de reintentos, valor predeterminado3.--retry-delay: retraso de reintento base en segundos, valor predeterminado2.0.
Uso del panel web (conservar el comando original)
Iniciar el servicio:
|
|
Explicación: inicia el servicio HTTP escuchando en el puerto 8081.
URL de acceso: http://localhost:8081
Opciones de servicio:
--host: dirección de enlace, predeterminado0.0.0.0.--port: puerto de servicio, predeterminado8081.--interval-segundos: intervalo de actualización programado, predeterminado3600.--account-dir: directorio de autenticación,cuentapredeterminada.--state-file: ruta del archivo de estado, predeterminado<account-dir>/codex_quota_web_results.json.--account-name: modo de cuenta única opcional.--chatgpt-url: punto final de API de cuota.--retries: recuento de reintentos.--retry-delay: retraso de reintento base.--refresh: ignora el caché CLI durante las ejecuciones programadas.
Puntos finales HTTP (para automatización)
GET /: página del panel de control.GET /api/results: últimos resultados en JSON.GET /refresh: activa la actualización inmediata y redirige a/.GET /auth: enumera los archivos de autenticación.GET /auth/new: formulario para crear un archivo de autenticación.GET /auth/edit?name=<cuenta>: formulario para editar el archivo de autenticación.POST /auth/save: crea/actualiza el archivo de autenticación.POST /auth/delete: elimina el archivo de autenticación.
Uso de Docker (conservar los comandos originales)
Construir imagen:
|
|
Explicación: construye el proyecto actual como imagen codex-quota.
Ejecutar contenedor (mapa 8081):
|
|
Explicación:
--rm: elimina el contenedor automáticamente después de salir.-p 8081:8081: asigna el puerto del host al puerto del contenedor.-v ./account:/app/account: monta las credenciales locales en el contenedor.
URL de acceso: http://localhost:8081
Uso de Docker Compose (conservar el comando original)
Inicio:
|
|
Explicación: cree e inicie servicios basados en docker-compose.yml.
URL de acceso: http://localhost:8081
Consejos de uso
- Para escenarios de múltiples cuentas, use primero el Panel de control para una vista unificada y administración de autenticación.
- Para alertas o automatización, prefiera
GET /api/results. - No envíe valores reales de
access_tokena repositorios públicos. - Si ve muchas fallas temporales, aumente
--retriesy--retry-delay.