ki integration

This commit is contained in:
2026-08-15 13:43:52 +02:00
parent 82d98bd8cf
commit 9ecb292c26
78 changed files with 12055 additions and 55 deletions

View File

@@ -166,11 +166,26 @@ Homescreen → **Feed** · **Erstellen** (Szene / Post / Modell) · **Ordner**
| Hosting | Hetzner Cloud (MVP CX32 ~€7 → CX42 ~€16 ab ~25 Brands) |
| Video-Speicher | Hetzner Object Storage (S3-kompatibel) |
| Backend/DB | **Appwrite self-hosted** (Auth+Teams, TablesDB, Functions, Realtime, Storage mit S3-Adapter, Messaging) €0 Lizenz |
| KI-Gateway | **OpenRouter** (eine API für LLM *und* Video) |
| LLM | Claude (Scripts, Tagging, Vergleiche) · Gemini für P9 |
| Videomodelle | Seedance 2.0 + Veo 3.1 + Sora 2 / Wan |
| KI-Gateway | **Zwei Anbieter, klar getrennt:** **OpenRouter** für LLM *und* Bild · **BytePlus ModelArk** für Video |
| LLM | Claude (Scripts, Vergleiche) · Gemini für P9 **beides über OpenRouter**, Gemini dort mit nativem Video-Input |
| Bildmodelle | **noch offen** Kandidaten für den Test vor E6: `google/gemini-3-pro-image`, `openai/gpt-5-image` (OpenRouter) und `seedream-5-0-260128` (Ark **eu-west**, DSGVO-nah) |
| Videomodelle | **Seedance-Familie über BytePlus ModelArk** `dreamina-seedance-2-5` / `-2-0` / `-2-0-fast` / `-2-0-mini` · `seedance-1-5-pro` · `seedance-1-0-pro` / `-pro-fast` |
| Payment | Stripe (Abo + metered) |
> **Warum zwei Anbieter statt einem Gateway:** OpenRouter hat **kein** Modell mit Video-*Output* (geprüft am 14.08.2026 über `/api/v1/models`, 411 Modelle, keines mit `output_modalities: video`). Video-*Input* und Bild-*Output* kann OpenRouter dagegen sehr wohl deshalb läuft dort alles außer der Videogenerierung.
>
> **Ark-Regionen Keys sind regionsgebunden, jeder Key funktioniert nur in seiner eigenen Region** (geprüft am 14.08.2026):
>
> | Region | Endpoint | Modelle | Video? |
> |---|---|---|---|
> | **ap-southeast** (Singapur) | `https://ark.ap-southeast.bytepluses.com/api/v3` | 42 aktiv | **ja einzige Region mit Seedance** |
> | **eu-west** | `https://ark.eu-west.bytepluses.com/api/v3` | 5 aktiv (1× Bild `seedream-5-0`, 4× VLM) | **nein** |
> | cn-beijing | `ark.cn-beijing.volces.com` | | weist BytePlus-Keys mit `AuthenticationError` ab |
>
> **Entscheidung:** Videogenerierung läuft über **ap-southeast**, weil die EU-Region keine Videomodelle anbietet. Der EU-Key bleibt für den Bildmodell-Test und als spätere Migrationsoption bestehen falls BytePlus Seedance in eu-west ausrollt, ist der Wechsel eine Endpoint- und Key-Änderung, sonst nichts. **Deshalb gehören Endpoint und Key in die Konfiguration, nicht in den Code.**
>
> **Folge für den Vote-Loop:** Die 36 konkurrierenden Videos kommen jetzt aus **einer Modellfamilie in verschiedenen Generationen**, nicht mehr von verschiedenen Anbietern. Für die Elo-Attribution (§5) ist das eher ein Vorteil bei konstanter Modellfamilie stammt der Unterschied zwischen zwei Videos aus den Attributen, nicht aus dem Modell. Verloren geht die Absicherung, dass ein anderer Anbieter bestimmte Motive besser trifft. Die Adapter für Veo/Sora/Wan bleiben deshalb in `prompts/` liegen (siehe §7) sie sind ungenutzt, aber nicht gelöscht.
**Kostenrechnung 25 Brands (~1.000 Videos/Monat):** ~€1.300 gesamt, davon **>90 % Videogenerierung** (~€1.200). ≈ €52/Brand/Monat → Abo ab €150300/Brand lässt gesunde Marge. Genau deshalb funktioniert „Preis pro Video".
### Datenbank-Tabellen (Appwrite)
@@ -185,6 +200,7 @@ Homescreen → **Feed** · **Erstellen** (Szene / Post / Modell) · **Ordner**
## 10. Rechtliches
- **AVV** mit Hetzner (Standard, kostenlos)
- **Drittlandtransfer BytePlus (Singapur)** die Videogenerierung läuft über `ap-southeast`, weil die EU-Region keine Videomodelle hat (§9). Damit verlassen Prompt, Referenzbilder und generiertes Video die EU. Zu klären: AVV mit BytePlus inklusive **Standardvertragsklauseln**, Nennung in der Datenschutzerklärung, Aufnahme ins Verarbeitungsverzeichnis. **Entschärfend:** nach der Regel unten gehen ohnehin nur KI-generierte Gesichter raus überwiegend Geschäfts-, keine biometrischen Personendaten. Alles außerhalb der Videogenerierung bleibt in der EU bzw. bei OpenRouter.
- **EU AI Act:** KI-generierte Werbevideos müssen gekennzeichnet werden
- **Gesichter echter Personen** nur mit dokumentierter Einwilligung (auch beim Brand Owner) → **rein KI-generierte Gesichter sind der sichere Standard**
- Referenzen fremder Inhalte: Merkmale beschreiben und lernen, **nie 1:1 kopieren**
@@ -256,7 +272,7 @@ Es gibt jetzt **zwei Stränge**, die parallel laufen können der Bild-Strang
4. **Appwrite aufsetzen** und das Schema aus `datenbank-aufbau.md` anlegen **inklusive `attribute_scores`-Auftrennung von Anfang an** (siehe Abhängigkeit in §12).
5. **Elo-Function implementieren** (deterministisch, gut testbar guter erster Code), scope-bewusst.
6. **Nischen- und Typ-Tag-Enums festlegen** blockiert P19, P22 und die Kopier-Kompatibilität.
7. **Bildmodell auswählen** Kriterium ist Multi-Referenz-Komposition (Person + Produkt + Kulisse konsistent), nicht reine Bildqualität.
7. **Bildmodell auswählen** Kriterium ist Multi-Referenz-Komposition (Person + Produkt + Kulisse konsistent), nicht reine Bildqualität. Vier Kandidaten stehen bereit: `google/gemini-3-pro-image`, `google/gemini-3.1-flash-image`, `openai/gpt-5-image` (OpenRouter) und `seedream-5-0-260128` (Ark eu-west). **Seedream hat den Standortvorteil** bei gleichwertigem Ergebnis bliebe der gesamte Bild-Strang in der EU und §10 wäre nur für Video zu klären. Der Test entscheidet, nicht die Herkunft.
8. **Prototyp erweitern:** Feed, Post-Detail, Kopier-Screen mit Slot-Chips, Ordner-Ansicht, Ordner anlegen (zwei Schalter).
9. Entscheidungen nachziehen: Name, Preisstufen **für beide Zielgruppen**, Ads- **und Social-**API-Anträge starten.