AI Features AI-gestuetzte Funktionen: TTS, AI-Image-Generation, AI-Builder. AI Features Ueberblick AI Features Überblick Chatlix bündelt die AI-Features (Text-to-Speech, AI-Bildgenerierung, AI-Builder für Automation-Regeln) hinter einem einheitlichen Credits-System. Du musst dich also nicht um Provider-Keys, Rate-Limits oder unterschiedliche Abrechnungsmodelle kümmern — du gibst Credits aus, Chatlix kümmert sich um den Rest. Was steckt drin TTS (Text-to-Speech) über ElevenLabs. Nutzbar in Alerts, Overlays, Reward-Reaktionen, Sound-Schnipseln im Stream-Memory. AI-Bildgenerierung über gpt-image-1 (OpenAI). Nutzbar als Reward-Aktion (Twitch-Reward → AI-Bild im Overlay) oder manuell aus dem Dashboard. AI-Builder zum Generieren / Anpassen von Automation-Regeln aus natürlicher Sprache. Stream-Memory-AI : Sub-Endpoints unter /v1/stream-memory/*/ai für kontextbezogene Auswertung (z. B. Highlight-Vorschläge, Clip-Captions). Voices : Stimm-Auswahl für TTS unter /v1/voices/ . Wo finde ich was im Dashboard Bereich Dashboard-Route Aufgabe AI-Builder /dashboard/ai-builder Regeln aus Text generieren lassen AI-Credits /dashboard/ai-credits Kontingent prüfen, Credits nachkaufen, Transaktions-Log Voices /dashboard/voices TTS-Stimmen verwalten, Test-Sample anhören Credits-System Jede AI-Operation kostet Credits. Es gibt zwei Quellen: Plan-Kontingent — wird monatlich automatisch aufgeladen. Die Höhe hängt vom gebuchten Plan ab. Zukauf — du kannst zusätzliche Credits separat erwerben. Die laufen nicht ab, solange dein Account aktiv ist. Wichtig: Plan-Credits werden zuerst verbraucht, Zukauf-Credits erst wenn das Monats-Kontingent leer ist. Beim Monatswechsel verfällt nicht verbrauchtes Plan-Kontingent, Zukauf-Credits bleiben. Beispiel-Kosten (Stand 2026-05) AI-Bild ( gpt-image-1 , 1024×1024): 15 Credits pro Bild . TTS (ElevenLabs): Credits pro Zeichen — je nach gewählter Voice. Genauer Tarif steht im AI-Credits-Dashboard direkt neben jeder Stimme. Stub-Modus für Tests Für Entwicklung und Tests gibt es einen Stub-Modus: Operationen laufen durch, ohne den echten Provider zu kontaktieren. Das spart Credits und macht E2E-Tests deterministisch. Stub-Modus wird serverseitig per Feature-Flag aktiviert — relevant primär für interne Tests. Fehler-Verhalten Fachliche / providerseitige Fehler liefern bewusst HTTP 200 mit {"ok": false, "error": "..."} — nicht 4xx / 5xx . Hintergrund: Ein 5xx würde den apiFetch-Retry triggern und im Worst-Case dreimal denselben kostenpflichtigen Provider-Call auslösen. Beispiele: text_too_long — TTS-Text überschreitet das Limit (siehe TTS-Seite). insufficient_credits — Kontingent leer. provider_unavailable — OpenAI / ElevenLabs antworten nicht. content_policy_violation — Prompt wurde provider-seitig abgelehnt. Nur echte HTTP-Fehler (Netzwerk, Auth, Rate-Limit auf API-Ebene) kommen als 4xx/5xx zurück. Was kostet was nicht Test-Sample einer Voice im Dashboard ist kostenlos (cachet einen festen Demo-Satz). Failed Operations mit ok:false werden nicht belastet. Stub-Modus schreibt keine Credit-Buchung. Nächste Schritte Stimmen einrichten → siehe Seite TTS einrichten . Bilder als Reward-Reaktion verwenden → siehe Seite AI Image Generation . Automation-Regel aus Text generieren → Dashboard /dashboard/ai-builder , Eingabe in natürlicher Sprache, Vorschlag prüfen, übernehmen. TTS einrichten TTS einrichten Text-to-Speech (TTS) lässt Texte über eine ausgewählte Stimme sprechen — als Alert-Sound, Overlay-Ansage oder Reward-Reaktion. Chatlix nutzt ElevenLabs als Provider, abgerechnet wird über Credits pro Zeichen. Voraussetzungen Aktiver Plan mit AI-Kontingent oder gekaufte Zukauf-Credits. Mindestens eine TTS-Stimme ausgewählt (siehe unten). Optional: ein Output-Ziel — Overlay, Alert-Channel, Stream-Memory. Stimme auswählen Dashboard → /dashboard/voices . Liste der verfügbaren Stimmen durchsehen. Jede Zeile zeigt: Name, Sprache, Stil-Hinweis (ruhig, energisch, jung …), Credit-Tarif pro Zeichen. « Probe anhören » spielt ein vorgerendertes Demo-Sample — kostenlos. « Auswählen » setzt die Stimme als Standard für neue TTS-Aktionen. Du kannst mehrere Stimmen gleichzeitig „aktiv“ haben und pro Automation-Regel eine andere wählen. TTS in einer Reward-Reaktion verwenden Dashboard → Automation → Regel bearbeiten → Aktion hinzufügen → « TTS abspielen » . Felder: Text : was gesprochen werden soll. Variablen wie {user} , {message} werden ersetzt. Voice : Dropdown der ausgewählten Stimmen. Output : Overlay (an OBS-Browserquelle) oder direkter Audio-Stream. Achtung: Variablen werden nach der Längenprüfung eingesetzt. Ein Chat-Input mit 5000 Zeichen kann also ein text_too_long auslösen, obwohl dein Template kurz ist. Empfehlung: Eingaben vor TTS clampen, z. B. {message|truncate:200} . Längenlimit und Pre-Charge-Check Die TTS-Aktion macht vor dem Provider-Call eine mb_strlen -Prüfung. Wenn der Text über dem Limit liegt, gibt der Endpoint: {"ok": false, "error": "text_too_long", "limit": 2000, "actual": 4123} zurück — ohne Credits zu verbrauchen, ohne Provider-Call. Es wird also nichts „halb gesprochen“ und nichts heimlich abgeschnitten. Entweder komplett oder klar abgelehnt. Wenn du systematisch text_too_long siehst: das Template kürzen oder eine Truncate-Variable einbauen. Kosten verstehen Die Buchung basiert auf der finalen Zeichenzahl nach Variablen-Ersetzung , gemessen mit mb_strlen (also Multi-Byte-korrekt — Emojis und Umlaute zählen wie gewohnt). Die Buchung passiert nach erfolgreichem Provider-Call, nicht vorher. Beispiel: 180 Zeichen × Tarif 0.05 Credits/Zeichen = 9 Credits. Provider-Fehler provider_unavailable — ElevenLabs antwortet nicht. Kein Credit-Abzug. voice_unavailable — die ausgewählte Voice wurde providerseitig entfernt. Andere Stimme wählen. content_policy_violation — Text wurde abgelehnt. Kein Credit-Abzug. insufficient_credits — Kontingent leer. /dashboard/ai-credits öffnen. Alle diese Fälle kommen als HTTP 200 + ok:false zurück (siehe AI Features Überblick ), nicht als 5xx. Voice-Service intern Für Entwickler relevant: der Voice-Code lebt in Chatlix\Service\Voice . Der Endpoint /v1/voices/ liefert die Liste, jede einzelne Operation läuft über /v1/ai/ . Workers-zu-PHP-Calls geben fachliche Fehler immer als 200+ok:false zurück, damit der apiFetch-Retry nicht 3× denselben Provider-Call auslöst und Credits verbrennt. Häufige Probleme Stille im Overlay — Browserquelle in OBS muss „Audio steuert über OBS“ aktiv haben. Sonst spielt der Sound zwar im Browser, OBS leitet ihn aber nicht weiter. Knackgeräusch am Anfang — Sample-Rate des Output-Geräts auf 48 kHz fixieren. TTS doppelt gespielt — du hast die Aktion zweimal in derselben Regel. Dashboard → Regel → Aktionen prüfen. AI Image Generation AI Image Generation Chatlix kann auf Knopfdruck Bilder mit gpt-image-1 (OpenAI) generieren. Das ist klassisch als Reward-Reaktion gedacht: Zuschauer löst einen Twitch-Reward ein → Chatlix generiert ein Bild aus dem Prompt → Overlay zeigt es kurz an. Kosten 15 Credits pro Bild ( gpt-image-1 , 1024×1024). Belastet wird nach erfolgreichem Provider-Call. Bei Provider-Fehlern ( ok:false ) fällt keine Buchung an. Manuelle Generierung im Dashboard Dashboard → AI-Builder → Tab « Bild » . Prompt eingeben (z. B. Pixel-Art-Drache mit Twitch-Logo ). « Generieren » . Wartezeit typischerweise 5–15 Sekunden. Ergebnis wird angezeigt. Buttons: « Speichern » (legt es im Media-Bereich ab), « Im Overlay zeigen » (Test-Push an deine aktive Overlay-Browserquelle), « Verwerfen » . Gespeicherte Bilder landen im normalen Media-Storage und können wie jede andere Datei in Overlays, Alerts oder Stream-Memory verwendet werden. Als Reward-Reaktion (Twitch) Das typische Setup: Twitch-Reward anlegen oder existierenden auswählen (Dashboard → Twitch → Rewards). Automation-Regel: Trigger = twitch.reward.redeemed , Filter = dein Reward. Aktion = « AI-Bild generieren » . Prompt-Template: z. B. {user_input_or_user_message} . Der Zuschauer-Text aus dem Reward landet als Prompt. Aktion = « Overlay zeigen » . Eingabe = generiertes Bild. Anzeigedauer z. B. 8 Sekunden. Wichtig: setze einen Cost auf den Reward, der mindestens den Credit-Wert deckt. 15 Credits müssen für dich wirtschaftlich passen, sonst nutzt jemand das als Spam-Reward. Prompt-Hygiene Kürze hilft . Modelle sind besser im verstehen kurzer, klarer Prompts als langer Beschreibungen. Stil-Hinweis voranstellen : Anime-Stil, ... oder Foto-realistisch, ... . Negativ-Prompts werden von gpt-image-1 nicht unterstützt — anders als bei Stable-Diffusion. Stattdessen positiv formulieren. Inhaltliche Filter Provider-seitig läuft eine Content-Policy. Verstoßende Prompts kommen mit: {"ok": false, "error": "content_policy_violation"} zurück, ohne Credit-Abzug. Wenn dein Channel ein Publikum hat, das gern an die Grenzen geht: du kannst die Reward-Aktion mit einer Pre-Filter-Liste kombinieren (Dashboard → Automation → Filter „Wort-Blocklist“), um offensichtliche Trigger-Wörter abzufangen, bevor sie überhaupt OpenAI sehen. Stub-Modus für Tests Wenn du eine Reward-Regel testen willst, ohne echte Bilder zu generieren: Stub-Modus aktivieren (interne Konfiguration). Der Endpoint liefert dann ein deterministisches Test-Bild zurück, ohne OpenAI zu kontaktieren und ohne Credits zu buchen. Praktisch um Overlay-Layout, Alert-Sound, Timing zu testen. Was passiert wenn OpenAI down ist Endpoint liefert HTTP 200 + ok:false + error=provider_unavailable . Keine Credit-Buchung. Reward bleibt in Twitch als „eingelöst“ — du kannst ihn manuell refunden oder die Automation-Regel um eine Fallback-Aktion ergänzen (z. B. „statt Bild eine Text-Antwort posten“). Bekannte Grenzen Bilder werden nicht „verbessert“ wenn du sie nochmal generierst — gpt-image-1 ist nicht deterministisch. Keine Bild-zu-Bild-Funktion in Chatlix (Stand 2026-05). Nur Text-zu-Bild. Maximale Anzeige-Dauer im Overlay ist nicht limitiert, aber lange Anzeigen blockieren weitere Alert-Bilder. Empfehlung: 6–10 Sekunden. Bilder werden im Media-Storage gespeichert und zählen gegen das Speicher-Kontingent deines Plans. AI-Bild-Action intern Für Entwickler: die Action lebt unter /v1/ai/ als Endpoint, der Code liegt in Chatlix\Service\Ai . Die Action ist additiv zu MediaService (für Storage) und Alert-Pipeline (für Overlay-Push) — sie ersetzt nichts, sondern hängt sich davor.