Saltar al contenido

Inicio rápido de la API de chat ​

Chat compatible con OpenAI

Una sola clave API permite usar chat y voz. Las solicitudes se procesan de forma síncrona. El catálogo muestra los nombres, ID y precios actuales de los modelos.

1. Crear una clave y añadir créditos ​

Regístrate o inicia sesión en la consola. En Claves API → Crear clave API, crea una clave y guárdala: solo se muestra completa una vez. Después abre Monedero → Añadir créditos. La suscripción es opcional. Crear una clave no añade créditos.

Guarda la clave únicamente en tu servidor. Consulta Autenticación y límites.

Pruebas de pago locales

Los pagos de prueba de Stripe solo añaden saldo de pruebas, que no sirve para llamadas reales a modelos. Para pruebas de integración locales, un administrador puede recargar el saldo API de una cuenta de prueba. Los pagos reales se abonan al saldo API tras su confirmación.

2. Ejecutar un ejemplo de chat y voz ​

Guarda el siguiente código como chat.py. Solo utiliza la biblioteca estándar de Python 3; no requiere paquetes adicionales. Define GIRLLAB_API_KEY y ejecuta el script.

bash
export GIRLLAB_API_KEY='sk-your-key'
python3 chat.py
powershell
$env:GIRLLAB_API_KEY = 'sk-your-key'
python chat.py
python
import base64
import json
import os
from pathlib import Path
from urllib.error import HTTPError
from urllib.request import Request, urlopen

BASE = os.environ.get("GIRLLAB_API_BASE", "https://api.coldstart.win").rstrip("/")
KEY = os.environ["GIRLLAB_API_KEY"]
MODEL = os.environ.get("GIRLLAB_CHAT_MODEL")
VOICE = os.environ.get("GIRLLAB_VOICE")

def api(path, body=None):
    request = Request(
        BASE + path,
        data=json.dumps(body).encode() if body is not None else None,
        headers={"Authorization": "Bearer " + KEY,
                 "Content-Type": "application/json"},
    )
    try:
        with urlopen(request, timeout=90) as response:
            return json.load(response)
    except HTTPError as error:
        raise SystemExit(f"HTTP {error.code}: {error.read().decode()}")

catalog = api("/v1/chat/catalog")
MODEL = MODEL or catalog["defaultModel"]
VOICE = VOICE or catalog["defaultVoice"]
model = next((m for m in catalog["models"] if m["id"] == MODEL), None)
voice = next((v for v in catalog["voices"] if v["id"] == VOICE), None)
if not model or not model["available"] or not voice or not voice["available"]:
    raise SystemExit("Choose an available model and voice from /v1/chat/catalog.")

reply = api("/v1/chat/completions", {
    "model": MODEL,
    "messages": [
        {"role": "system", "content": "You are a friendly assistant."},
        {"role": "user", "content": "Say hello in one short sentence."},
    ],
    "max_tokens": 64,
})
print(json.dumps(reply, ensure_ascii=False, indent=2))
# For another turn, append the assistant reply and the next user message to messages.
print(reply["choices"][0]["message"]["content"])

speech = api("/v1/chat/speech", {"text": "Hello.", "voice": VOICE})
header, encoded = speech["audio"].split(",", 1)
file = Path("speech.mp3")
file.write_bytes(base64.b64decode(encoded))
print("Saved", file, "— speech billing:", json.dumps(speech["billing"]))

El ejemplo realiza una llamada de chat y otra de voz de pago. Muestra la respuesta, los tokens y los créditos de voz, y guarda un MP3. Consulta el historial de uso para los créditos reales del chat. La URL base es https://api.coldstart.win; usa GIRLLAB_API_BASE para otro despliegue.

3. Cambiar de modelo ​

Configura GIRLLAB_CHAT_MODEL como chat-creative o chat-fast. Elige la voz de forma independiente con GIRLLAB_VOICE.

Catálogo actual de modelos · precios en créditos

Cargando el catálogo…

GET /v1/chat/catalog devuelve modelos, ID de voz y precios actuales. Usa los ID públicos del catálogo, no los ID internos del proveedor. TTS elige el modelo mediante voice y no acepta el parámetro de chat model.

Texto: Chat compatible con OpenAI. Voz e identificadores: Voz y catálogo.

También puedes probar el chat en la consola. La referencia API interactiva describe los campos de las solicitudes.

© 2026 GirlLab. Todos los derechos reservados.