managarten/apps/chat/apps/mobile/readme
Wuesteon d36b321d9d style: auto-format codebase with Prettier
Applied formatting to 1487+ files using pnpm format:write
  - TypeScript/JavaScript files
  - Svelte components
  - Astro pages
  - JSON configs
  - Markdown docs

  13 files still need manual review (Astro JSX comments)
2025-11-27 18:33:16 +01:00
..
ExpoApiRoutes.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
NativeWind.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
README.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
Supabase.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
TokenAccounting.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00

Chat Application

Eine moderne Chat-Anwendung mit LLM-Integration, entwickelt mit Expo React Native und Supabase.

Projektübersicht

Diese Anwendung ermöglicht Benutzern, mit verschiedenen LLM-Modellen zu interagieren. Sie unterstützt verschiedene Konversationsmodi:

  • Freier Modus: Offene Gespräche mit dem KI-Modell
  • Geführter Modus: Strukturierte Konversationen mit vordefinierten Schritten
  • Vorlagen-Modus: Vordefinierte Gesprächsabläufe für spezifische Anwendungsfälle

Datenbankstruktur

Die Anwendung verwendet Supabase mit folgender Datenbankstruktur:

Users

Feld Typ Beschreibung
id UUID (PK) Eindeutige Benutzer-ID
email String E-Mail-Adresse des Benutzers
name String Name des Benutzers
created_at Timestamp Erstellungszeitpunkt
updated_at Timestamp Letzter Aktualisierungszeitpunkt

Conversations

Feld Typ Beschreibung
id UUID (PK) Eindeutige Konversations-ID
user_id UUID (FK) Referenz zum Benutzer
model_id UUID (FK) Referenz zum verwendeten LLM-Modell
template_id UUID (FK, Nullable) Optionale Referenz zur verwendeten Vorlage
conversation_mode String Modus der Konversation (frei, geführt, vorlage)
created_at Timestamp Erstellungszeitpunkt
updated_at Timestamp Letzter Aktualisierungszeitpunkt

Messages

Feld Typ Beschreibung
id UUID (PK) Eindeutige Nachrichten-ID
conversation_id UUID (FK) Referenz zur Konversation
sender Enum Absender der Nachricht (user, ai)
message_text Text Inhalt der Nachricht
created_at Timestamp Erstellungszeitpunkt
updated_at Timestamp Letzter Aktualisierungszeitpunkt

Models

Feld Typ Beschreibung
id UUID (PK) Eindeutige Modell-ID
name String Name des Modells (z.B. GPT-4, GPT-3)
description Text Beschreibung des Modells
parameters JSON Optionale Einstellungen für das Modell

Templates

Feld Typ Beschreibung
id UUID (PK) Eindeutige Vorlagen-ID
name String Name der Vorlage (z.B. "Vertrag erstellen")
description Text Beschreibung der Vorlage
mode_type Text Detaillierte Beschreibung des Modus/Guided Flow
initial_questions JSON/Text Startfragen oder Anweisungen
created_at Timestamp Erstellungszeitpunkt
updated_at Timestamp Letzter Aktualisierungszeitpunkt

Beziehungen

  • Ein Benutzer kann mehrere Konversationen haben
  • Eine Konversation gehört zu einem Benutzer und verwendet ein Modell
  • Eine Konversation kann optional eine Vorlage verwenden
  • Eine Konversation enthält mehrere Nachrichten
  • Jede Nachricht gehört zu einer Konversation

Technologie-Stack

  • Frontend: Expo React Native
  • Backend/Datenbank: Supabase
  • Authentifizierung: Supabase Auth
  • LLM-Integration: Verschiedene KI-Modelle (GPT-4, GPT-3, etc.)

Funktionen

  • Benutzerregistrierung und -anmeldung
  • Erstellen und Verwalten von Konversationen
  • Auswahl verschiedener KI-Modelle
  • Unterstützung für verschiedene Konversationsmodi
  • Vorlagensystem für spezifische Anwendungsfälle
  • Nachrichtenverlauf und -speicherung

Installation und Einrichtung

  1. Repository klonen
  2. Abhängigkeiten installieren: npm install oder yarn install
  3. Supabase-Projekt einrichten und Verbindungsdaten konfigurieren
  4. Umgebungsvariablen in .env konfigurieren
  5. Anwendung starten: expo start

Entwicklungshinweise

  • Supabase-Tabellen entsprechend der oben beschriebenen Struktur einrichten
  • Sicherstellen, dass alle Fremdschlüsselbeziehungen korrekt konfiguriert sind
  • API-Schlüssel für LLM-Modelle sicher verwalten