Démarrage rapide avec l’API de chat
Une seule clé API permet d’utiliser le chat et la voix. Les requêtes sont traitées de façon synchrone. Le catalogue affiche les noms, identifiants et tarifs actuels des modèles.
1. Créer une clé et ajouter des crédits
Inscrivez-vous ou connectez-vous à la console. Dans Clés API → Créer une clé API, créez une clé et conservez-la : elle ne s’affiche intégralement qu’une seule fois. Ouvrez ensuite Portefeuille → Ajouter des crédits. L’abonnement est facultatif. La création d’une clé n’ajoute aucun crédit.
Conservez la clé sur votre serveur. Consultez Authentification et limites.
Tests de paiement en local
Les paiements de test Stripe alimentent uniquement le solde sandbox, inutilisable pour les appels réels aux modèles. Pour les tests d’intégration locaux, un administrateur peut créditer le solde API d’un compte de test. Les paiements réels alimentent le solde API après confirmation.
2. Exécuter un exemple de chat et de voix
Enregistrez le code ci-dessous dans chat.py. Il utilise uniquement la bibliothèque standard de Python 3, sans paquet supplémentaire. Définissez GIRLLAB_API_KEY, puis exécutez le script.
export GIRLLAB_API_KEY='sk-your-key'
python3 chat.py$env:GIRLLAB_API_KEY = 'sk-your-key'
python chat.pyimport 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"]))Cet exemple effectue un appel de chat et un appel vocal payants. Il affiche la réponse, les tokens utilisés et les crédits vocaux, puis sauvegarde un MP3. Consultez l’historique pour les crédits réels du chat. L’URL de base est https://api.coldstart.win ; utilisez GIRLLAB_API_BASE pour un autre déploiement.
3. Changer de modèle
Définissez GIRLLAB_CHAT_MODEL sur chat-creative ou chat-fast. Choisissez la voix indépendamment avec GIRLLAB_VOICE.
Chargement du catalogue…
GET /v1/chat/catalog fournit les modèles, les identifiants de voix et les tarifs actuels. Utilisez les identifiants publics du catalogue, pas les identifiants internes du fournisseur. Le modèle TTS est choisi par voice et n’accepte pas le paramètre de chat model.
Texte : Chat compatible OpenAI. Voix et identifiants : Voix et catalogue.
- Facturation et crédits : frais, remboursements et solde.
- Codes d’erreur : authentification, solde et erreurs du fournisseur.
Vous pouvez aussi essayer le chat dans la console. La référence API interactive décrit les champs des requêtes.