Rechtliches // TERMS
Allgemeine Geschäftsbedingungen
Die vertraglichen Regeln eines kostenpflichtigen Dienstes sind ein Rechtstext und werden hier nicht entworfen. Was auf dieser Seite steht, ist die technische Seite des Dienstes, aus dem Quelltext gelesen, damit die anwaltliche Ausarbeitung weiß, was hier tatsächlich verkauft wird.
01Parteien, Geltungsbereich und Vertragsschluss
⚠ LÜCKE — ANGABE DES BETREIBERS ERFORDERLICH
Rahmen des Vertrags
Erforderliche Angaben:
- Der Vertragspartner, identisch mit dem Impressum
- Ob sich das Angebot nur an Unternehmen richtet oder auch an Verbraucher
- In welchem Schritt des Bezahlvorgangs der Vertrag zustande kommt
- Wie diese Bedingungen einbezogen werden und wo die Kundin sie bestätigt
- Vertragssprache und Ort der Vertragstextspeicherung
Heute verlangt das Frontend an keiner Stelle eine Zustimmung zu Bedingungen; der Bezahlvorgang geht direkt an Stripe.
02Was technisch erbracht wird
Der Dienst beantwortet OpenAI-kompatible Anfragen unter einem API-Key. Ein Test-Key wird nach Bestätigung einer E-Mail-Adresse ausgegeben und läuft von selbst ab. Ein bezahlter Key wird angelegt oder aufgewertet, sobald Stripe einen abgeschlossenen Bezahlvorgang meldet; ein aufgewerteter Test-Key behält seinen Wert, sodass im Entwicklungswerkzeug nichts umkonfiguriert werden muss. Endet ein Abonnement, werden die Keys dieser Kundin in der Datenbank deaktiviert und am Gateway gelöscht.
Werte, mit denen diese Installation tatsächlich läuft
| Einstellung | Wert |
|---|---|
| Modell für bezahlte Tarife | devpipe-code-1 |
| Modell für Test-Keys | devpipe-code-1-trial |
| Laufzeit eines Test-Keys (Stunden) | 48 |
| Anfragen pro Minute im Test | 20 |
| Tokens pro Minute im Test | 40000 |
| Gesamt-Tokenbudget eines Test-Keys | 150000 |
| Wartezeit je E-Mail-Adresse (Tage) | 30 |
| Laufzeit des Anmelde-Cookies (Tage) | 7 |
Belegt in:
backend/app/services/onboarding_service.py · backend/app/services/stripe_service.py · backend/app/core/config.py
03Preise, Umsatzsteuer und Rechnungen
Der Preis ist in diesem Quelltext nicht festgelegt. Der Bezahlvorgang verweist auf Preisobjekte bei Stripe; abgerechnet wird also, was dort hinterlegt ist. Die automatische Steuerberechnung von Stripe ist in der Checkout-Sitzung, die der Code anlegt, nicht eingeschaltet.
⚠ LÜCKE — ANGABE DES BETREIBERS ERFORDERLICH
Kaufmännische Bedingungen
Erforderliche Angaben:
- Die Preisliste selbst und ob die Beträge netto oder brutto sind
- Wie die Umsatzsteuer ermittelt und ausgewiesen wird, auch bei Verkäufen in andere EU-Staaten
- Abrechnungszeitraum, Fälligkeit und akzeptierte Zahlungsmittel
- Was bei einer fehlgeschlagenen Zahlung geschieht
- Wie eine Preisänderung angekündigt wird
Die Preisseite weist die Beträge als Bruttopreise inklusive Umsatzsteuer aus, weil das Angebot auch Verbrauchern offensteht. Die Stripe-Preisobjekte müssen als steuerinklusiv konfiguriert sein, damit die Abbuchung der Seite entspricht.
Belegt in:
backend/app/services/stripe_service.py
04Laufzeit, Verlängerung und Kündigung
Technisch kündigt eine Kundin über das Stripe-Kundenportal, das aus dem Cockpit geöffnet wird. Meldet Stripe daraufhin das Ende des Abonnements, deaktiviert der Webhook die Keys dieser Kundin, entfernt sie am Gateway und setzt die Abonnementzeile auf gekündigt.
⚠ LÜCKE — ANGABE DES BETREIBERS ERFORDERLICH
Vertragliche Kündigungsregeln
Erforderliche Angaben:
- Mindestlaufzeit, Verlängerung und Kündigungsfrist
- Zeitpunkt, zu dem der Zugang nach einer Kündigung endet
- Gründe für eine außerordentliche Kündigung auf beiden Seiten
- Ob § 312k BGB gilt und damit ein Kündigungsknopf auf der Seite erforderlich ist
Im Frontend gibt es heute keinen Kündigungsknopf; gekündigt wird im Stripe-Portal.
Belegt in:
backend/app/api/v1/dashboard.py · backend/app/services/stripe_service.py
05Limits, faire Nutzung und Sperrung
Anfragen sind durch Anfragen pro Minute und Tokens pro Minute begrenzt. Bei Solo- und Test-Keys gilt die Grenze je Key; die Keys eines Team-Tarifs schöpfen aus einem gemeinsamen Budget, das alle Keys des Teams teilen. Für die Token-Grenze pro Minute zählt als Token ein nicht aus dem Cache bedienter Prompt-Token oder ein Ausgabe-Token: Prompt-Tokens, die der Präfix-Cache bedient, zählen nicht auf die Grenze. Test-Keys tragen zusätzlich ein Gesamt-Tokenbudget. Anfragen oberhalb der Grenze werden abgewiesen und gezählt. Das sind Durchsatzgrenzen, keine Mengengrenzen: Bezahlte Keys tragen am Gateway kein Tages-, Monats- oder Gesamt-Tokenbudget, und die Minutenraten können im laufenden Betrieb angepasst werden, um den Cluster unter Last stabil zu halten.
⚠ LÜCKE — ANGABE DES BETREIBERS ERFORDERLICH
Regeln, die der Quelltext nicht aufstellen kann
Erforderliche Angaben:
- Was als missbräuchliche Nutzung gilt und was daraus folgt
- Ob und wie ein Zugang gesperrt werden darf
- Ob Limits während eines laufenden Abonnements geändert werden dürfen
Belegt in:
backend/app/services/rate_limiter.py · backend/app/services/litellm_client.py · config/litellm-config.yaml
06Verfügbarkeit und Support
Zwei Zusagen der Marketingseiten haben in diesem Quelltext keine Entsprechung; die Bedingungen sollten sie entweder unterlegen oder streichen. Die Preisseite wirbt für den Team-Tarif mit einer dedizierten SLA, während hier nichts die Verfügbarkeit misst oder ausweist. Dieselbe Seite verspricht einen digital gegengezeichneten Auftragsverarbeitungsvertrag, während das Cockpit eine ungezeichnete Markdown-Datei ausgibt.
⚠ LÜCKE — ANGABE DES BETREIBERS ERFORDERLICH
Verfügbarkeitszusage
Erforderliche Angaben:
- Ob eine Verfügbarkeit zugesagt wird und wie sie gemessen wird
- Wartungsfenster und wie sie angekündigt werden
- Supportweg und Reaktionszeiten
- Folgen einer Unterschreitung
Belegt in:
backend/app/api/v1/dashboard.py · backend/app/core/i18n.py
07Haftung, Gewährleistung und erzeugte Ausgaben
Antworten stammen aus einem Sprachmodell. Die Konfiguration des Gateways enthält weder einen Inhaltsfilter noch eine Moderationsstufe; die Ausgabe wird so durchgereicht, wie das Modell sie erzeugt hat.
⚠ LÜCKE — ANGABE DES BETREIBERS ERFORDERLICH
Haftungsregeln
Erforderliche Angaben:
- Haftungsbeschränkung und ihre Grenzen
- Gewährleistung für einen im Abonnement erbrachten Dienst
- Aussage zu Rechten an den erzeugten Ausgaben und dazu, wer das Risiko ihrer Verwendung trägt
- Pflichten der Kundin, etwa keine Daten Dritter ohne Grundlage zu übermitteln
Belegt in:
config/litellm-config.yaml
08Auftragsverarbeitung nach Art. 28 DSGVO
Das Cockpit erzeugt einen Auftragsverarbeitungsvertrag als Markdown-Download. In seiner jetzigen Form nennt er kein Unternehmen als Auftragnehmer, gibt eine Kontaktadresse an, die kein Impressum trägt, und stellt fest, es finde keine Übermittlung in Drittländer statt, obwohl die Zahlung über Stripe läuft.
⚠ LÜCKE — ANGABE DES BETREIBERS ERFORDERLICH
Ein belastbarer Auftragsverarbeitungsvertrag
Erforderliche Angaben:
- Ein geprüfter Vertrag, der den Auftragnehmer und die technisch-organisatorischen Maßnahmen benennt
- Eine Aussage zu Unterauftragsverarbeitern, einschließlich Zahlungs- und Mailanbieter
- Wie die Kundin ihn gegenzeichnet
Die erzeugte Datei ist ein Entwurf. In dieser Form sollte sie keinem Datenschutzbeauftragten eines Kunden vorgelegt werden.
Belegt in:
backend/app/api/v1/dashboard.py
09Änderungen, anwendbares Recht und Gerichtsstand
⚠ LÜCKE — ANGABE DES BETREIBERS ERFORDERLICH
Schlussbestimmungen
Erforderliche Angaben:
- Wie diese Bedingungen geändert werden dürfen und wie eine Änderung mitgeteilt wird
- Anwendbares Recht
- Gerichtsstand und die Einschränkung, die gegenüber Verbrauchern gilt
- Salvatorische Klausel