Chat-API: Schnellstart
Ein API-Schlüssel genügt für Chat und Sprache. Anfragen werden synchron verarbeitet. Aktuelle Modellnamen, IDs und Preise stehen im Live-Katalog.
1. Schlüssel erstellen und Guthaben aufladen
Registrieren Sie sich in der Konsole oder melden Sie sich an. Erstellen Sie unter API-Schlüssel → API-Schlüssel erstellen einen Schlüssel und bewahren Sie ihn sicher auf: Er wird nur einmal vollständig angezeigt. Laden Sie anschließend unter Wallet → Credits hinzufügen Guthaben auf. Ein Abonnement ist optional. Das Erstellen eines Schlüssels fügt kein Guthaben hinzu.
Bewahren Sie den Schlüssel nur auf Ihrem Server auf. Siehe Authentifizierung und Limits.
Lokale Zahlungstests
Stripe-Testzahlungen erhöhen nur das Sandbox-Guthaben und bezahlen keine echten Modellaufrufe. Für lokale Integrationstests kann ein Administrator das API-Guthaben eines Testkontos aufladen. Echte Zahlungen werden nach Bestätigung dem API-Guthaben gutgeschrieben.
2. Beispiel für Chat und Sprache ausführen
Speichern Sie den folgenden Code als chat.py. Er verwendet nur die Python-3-Standardbibliothek. Setzen Sie GIRLLAB_API_KEY und führen Sie das Skript aus; zusätzliche Pakete sind nicht erforderlich.
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"]))Das Beispiel sendet je einen kostenpflichtigen Chat- und Sprachaufruf. Es zeigt Antwort, Tokennutzung und Sprachcredits und speichert eine MP3-Datei. Die tatsächlichen Chatcredits stehen im Nutzungsverlauf. Die API-Basisadresse ist https://api.coldstart.win; für andere Umgebungen setzen Sie GIRLLAB_API_BASE.
3. Ein anderes Modell verwenden
Setzen Sie GIRLLAB_CHAT_MODEL auf chat-creative oder chat-fast. Die Stimme wählen Sie unabhängig davon mit GIRLLAB_VOICE.
Modellkatalog wird geladen…
GET /v1/chat/catalog liefert Modelle, Stimmen-IDs und aktuelle Preise. Verwenden Sie die öffentlichen IDs aus dem Katalog, nicht die internen IDs des Anbieters. TTS wählt sein Modell über voice; der Chat-Parameter model wird nicht unterstützt.
Text: OpenAI-kompatibler Chat. Sprache und Stimmen-IDs: Sprache und Modellkatalog.
- Abrechnung und Guthaben: Kosten, Erstattungen und Saldo.
- Fehlercodes: Authentifizierung, Guthaben und Anbieterfehler.
Sie können auch den Chat in der Konsole ausprobieren. Die interaktive API-Referenz beschreibt die Anfragefelder.