Zum Inhalt springen
Alle Artikel
4 Min. Lesezeit

Eine KI-Anfrage ist nur der Anfang.

Folge einem Task durch Autorisierung, dauerhafte Ausführung, Nutzungsverfolgung und ein Ergebnis, zu dem der Nutzer zurückkehren kann.

das supastack-Team

Bevor das Modell läuft

Der Nutzer liefert einen Prompt und einen Alias wie cheap, fast oder smart. Der Produktionsserver prüft Authentifizierung, Workspace-Besitz und Berechtigung, bevor er den Task akzeptiert. Anbieter-Modell-IDs und Geheimnisse bleiben hinter dieser Grenze — der freundliche Alias ist das einzige Modellvokabular, das der Client je braucht, weil die Zuordnung zu einem echten Anbietermodell Konfiguration ist, nicht Vertrag.

Ein dauerhafter Task-Datensatz gibt der Anfrage eine Identität, bevor die Hintergrundausführung beginnt. Diese Identität verknüpft Einreichung, Worker, Nutzungsdatensätze und Ergebnis. Sie gibt dem Nutzer auch eine Möglichkeit, die Arbeit wiederzufinden, nachdem er wegnavigiert ist.

Die Reihenfolge zählt: Teure Arbeit startet erst, wenn billige Prüfungen bestanden sind. Authentifizierung, Besitz und Berechtigung zu verifizieren, bevor irgendetwas eingereiht wird, hält unauthentifizierte oder unbezahlte Anfragen davon ab, je einen Anbieter zu erreichen — und macht den Fehlschlag für den Nutzer erklärbar. Der KI-Modul-Guide dokumentiert, wo diese Prüfungen leben; der Workspace-Grenzen-Post erklärt, warum Besitz serverseitig abgeleitet wird, statt ihn vom Client zu übernehmen.

Entscheide, wessen Schlüssel und wessen Limits

Ein KI-Feature ist eine Ausgabenentscheidung. supastack lässt Workspaces eigene Anbieter-Schlüssel mitbringen — verschlüsselt gespeichert, niemals Clients ausgesetzt — oder auf Plattform-Schlüsseln laufen, und setzt Budgets pro Workspace gegen einen Modell-Preiskatalog durch. Wie auch immer deine Implementierung aussieht, die Fragen bleiben dieselben: Wer zahlt, und wo wird das Limit durchgesetzt?

Durchsetzung gehört in den Server-Workflow, nicht in eine browserseitige Schätzung. Ein Budget, das erst nach der Generierung geprüft wird, dokumentiert nur die Überschreitung; vor dem Dispatch geprüft, verhindert es sie. Anbieter-Schlüssel einrichten deckt die Konfigurationsseite ab.

Die Ausführung explizit machen

Trigger.dev führt den Workflow ai.generate aus. Der fähigkeitsbewusste Router wählt ein Modell anhand der konfigurierten Richtlinie und der Anforderungen der Anfrage. Behandle diese Richtlinie als operativen Input: Ein nicht verfügbarer Alias sollte im UI nicht als funktionierende Auswahl erscheinen.

Ein Netzwerkausfall während der Einreichung kann den Client unsicher lassen, ob die Arbeit eingereiht wurde. Der Produktionspfad nutzt einen task-bezogenen Idempotenzschlüssel und eine gespeicherte Einreichung, damit die Wiederherstellung die ursprüngliche Anfrage wiederverwendet. Nach jedem Timeout eine neue Task einzureichen, riskiert doppelte Arbeit und doppelte Kosten.

Dauerhaftigkeit ist auch das, was das UI einfach hält: Der Screen liest den Task-Status und rendert ihn, statt Retries zu orchestrieren. Wenn Generierung Modellaufrufe, Tool-Schritte oder Zeitpläne umspannt, ist es der explizite Workflow-Vertrag — enqueue, status, cancel —, der „in Bearbeitung“ ehrlich hält.

Nenne die Fehlermodi beim Namen

Zwischen Anfrage und Ergebnis liegt eine konkrete, endliche Menge von Dingen, die schiefgehen. Entwirf für jedes beim Namen statt für „Fehler“ im Abstrakten — jeder Task sollte in einem erklärbaren Zustand enden: eingereiht, laufend, mit Grund fehlgeschlagen oder mit Ergebnis abgeschlossen. Task-Recovery ist die Referenz des Kits für die Wiederherstellungsseite.

Die Anforderung darunter ist, dass kein Zustand lügen darf. Ein Spinner, der die Arbeit überlebt, oder eine Erfolgsmeldung für einen Task, der nie lief, ist ein Support-Ticket und ein Abrechnungsstreit, die nur darauf warten, zu passieren.

  • Timeout bei der Einreichung — über die gespeicherte Einreichung und den task-bezogenen Idempotenzschlüssel wiederherstellen, statt neu einzureihen.
  • Anbieter mitten im Task fehlgeschlagen — den Task mit einem Grund als fehlgeschlagen markieren, den das UI zeigen kann.
  • Budget erschöpft — vor dem Dispatch ablehnen, nicht nach der Ausgabe.
  • Nutzer wegnavigiert — der dauerhafte Datensatz und die Recovery-URL stellen Status und Ergebnis wieder her.

Nachverfolgen, was passiert ist

Generierung produziert mehr als Text. Die Anwendung zeichnet Nutzung und ein Task-Ergebnis auf, und das UI liest den Status über die authentifizierte API. Der Nutzungsdatensatz ist es, der das Budget durchsetzbar macht — er wird geschrieben, bevor das Ergebnis zurückgegeben wird, nicht hinterher geschätzt.

Die Abschluss-E-Mail ist ein separater Schritt mit eigenen Zustellungsdatensätzen. Eine erfolgreiche Modellantwort belegt nicht, dass eine E-Mail zugestellt wurde. Diese Ergebnisse getrennt zu halten macht Fehlschläge leichter zu erklären und zu wiederholen, ohne das Modell unnötig erneut laufen zu lassen.

Das Ergebnis braucht außerdem ein Zuhause, zu dem der Nutzer zurückkehren kann: eine Task-Seite, eine Verlaufsliste, eine Recovery-URL in der Abschluss-E-Mail. Eine Generierung, die nur in einer flüchtigen Benachrichtigung existiert, ist Arbeit, die du ein zweites Mal liefern musst.

Jede Grenze verifizieren

Nutze deterministische Fake-Adapter, um zuerst die Entscheidungen der Anwendung zu testen: verweigerter Zugang, deaktivierte Aliase, doppelte Einreichungen, Ergebnis-Wiederherstellung und generische Fehler. Diese Tests sollten ohne Anbieter-Zugangsdaten laufen.

Nutze dann den explizit opt-in Anbieter-Smoke-Prozess für echte Integrationen. Er verlangt die dokumentierte Sandbox-Konfiguration und eine Freigabe für externe Aufrufe. Diese Unterscheidung hält die gewöhnliche Entwicklung schnell und macht Produktionsnachweise konkret und nachvollziehbar.

Halte diese Trennung stabil, während sich das Produkt ändert: deterministische Abdeckung nahe jeder Grenzentscheidung, damit ein Anbieterwechsel, eine Router-Policy-Änderung oder ein neuer Alias einen Test scheitern lässt statt einen Kunden.

Häufige Fragen zu KI-Features in SaaS

Ein paar Fragen kommen in jedem Gespräch darüber auf, KI hinter eine Paywall zu stellen.

  • Wo sollte die Autorisierung für KI-Features passieren? — Bevor irgendetwas eingereiht wird: authentifizieren, Workspace auflösen, Berechtigung prüfen, dann den Task erstellen. Prüfungen nach der Generierung dokumentieren nur Missbrauch.
  • Brauche ich Bring-your-own-Key-Support? — Wenn deine Kunden eigene Anbieterbeziehungen haben, ja: Sie entscheidet, wer zahlt und wem Rate-Limits gehören. Speichere Schlüssel verschlüsselt und halte sie von Clients fern — der KI-Konfigurations-Guide beschreibt das Modell.
  • Wie verhindere ich, dass Retries doppelt abrechnen? — Begrenze den Idempotenzschlüssel auf den Task und verwende die gespeicherte Einreichung bei der Wiederherstellung wieder, damit ein Timeout keinen zweiten abrechenbaren Lauf erzeugt.
  • Welche Nutzungsdaten sollte ich aufzeichnen? — Pro Task: Modell, verbrauchte Einheiten, Kosten gegen den Preiskatalog und der Workspace — genug, um Budgets durchzusetzen und Ausgabenfragen zu beantworten, ohne Jobs erneut laufen zu lassen.
  • Wann gehört Generierung in einen Hintergrund-Job? — Immer dann, wenn sie eine Anfrage überleben kann. Modell-Latenz, Retries und mehrstufige Arbeit sprechen für dauerhafte Ausführung; nur sofortige, billige Aufrufe gehören inline.

Häufige Fragen

14 Fragen

Was ist supastack?

supastack ist eine modulare Basis zum Bauen von KI-gestützten SaaS-Produkten. Sie bündelt die gemeinsame Infrastruktur, damit du dich auf die Funktionen konzentrieren kannst, die dein Produkt ausmachen.

Unterstützt es Web und Mobil?

Ja. supastack enthält Next.js- und Expo-Apps als Ausgangspunkt für Web- und Mobile-Erlebnisse.

Welche Authentifizierung ist enthalten?

Better Auth deckt E-Mail/Passwort, OTP und Social Login ab. Persönliche Workspaces werden mit dem Konto provisioniert, damit Datensätze vom ersten Tag an begrenzt sind.

Wie wird KI unterstützt?

supastack enthält konfigurierbare Multi-Anbieter-KI, Nutzungsverfolgung, Budgets und verschlüsselte Bring-your-own-key-Unterstützung.

Wie werden Abonnements gehandhabt?

Für Produkte, die auf dem Kit aufbauen, bilden Stripe-Abrechnung, Abonnements und Berechtigungen die Basis für bezahlten Zugang. Anbieter-Geheimnisse bleiben serverseitig.

Wo liegt mein produktspezifischer Code?

Produktspezifische Funktionen bleiben in einem separaten Codebase, während das Produkt die Basismodule von supastack konfiguriert und integriert.

Wie funktioniert die Preisgestaltung von supastack?

Das Kit ist ein Einmalkauf mit lebenslangen Updates: Ein Framework für 249 $ (befristeter Einführungspreis — 100 $ Rabatt auf den regulären Preis von 349 $) oder Alle Frameworks (Next.js, iOS, Android) für 499 $ (befristeter Einführungspreis — 100 $ Rabatt auf den regulären Preis von 599 $), plus 75 $ pro zusätzlichem Entwickler-Sitz. Kein Kit-Abo. Checkout auf dieser Website liefert deinen Lizenzschlüssel per E-Mail, mit Repo-Zugang per GitHub-Einladung.

Wie begrenzen Workspaces meine Daten?

Nutzerdatensätze sind über workspaceId begrenzt. Identität, Berechtigungen, KI-Nutzung, Abrechnungsereignisse und Audit-Einträge bleiben innerhalb der persönlichen Workspace-Grenze.

Wie funktionieren Hintergrundjobs?

Trigger.dev ist die explizite Job-Laufzeit. Der JobRunner-Vertrag verspricht nur enqueue, status und cancel — Workflow-Semantik bleibt Trigger.dev-spezifisch und explizit.

Wie unterscheidet sich E-Mail von Outreach?

Transaktions-E-Mail deckt Produktabläufe wie Task-Abschluss-Hinweise ab. Cold Outreach und Kampagnen gehören zum Produkt selbst, außerhalb des E-Mail-Moduls dieses Kits.

Wie funktionieren mobile Käufe?

Mobile bietet native Käufe und Wiederherstellung über RevenueCat; dein Server prüft den Zugriff. Konfiguriere die Store-Konten und schließe Gerätetests vor der Veröffentlichung ab. Web-Abrechnung bleibt separat.

Wo liegen die KI-Anbieter-Schlüssel?

BYOK-Zugangsdaten sind verschlüsselt und bleiben serverseitig. Schlüssel werden in Logs bereinigt; Nutzung und Budgets bleiben auf Workspace-Ebene sichtbar.

Welche Zahlungsmethoden akzeptiert der Checkout?

Der von Stripe gehostete Checkout akzeptiert Karten und kann — sobald die Wallets im Stripe-Konto aktiviert sind — auch Alipay und WeChat Pay anbieten, praktisch für Käufer in China. Wallet-Autorisierungen werden asynchron bestätigt, sodass sich die Lizenzseite aktualisiert, sobald die Zahlung eingegangen ist.

Kann ich eine Rückerstattung erhalten?

Sobald du Zugriff auf das Repository hast, gehört supastack für immer dir und kann daher nicht zurückerstattet werden. Aber keine Sorge: Du erhältst den vollständigen Quellcode mit lebenslangen Updates, um unbegrenzt viele Produkte für dich oder deine Kunden zu erstellen und zu veröffentlichen. Du darfst den Code lediglich nicht weiterverkaufen oder das Repository als Starter-Kit oder Vorlage weitergeben.

DE