managarten/chat/apps/mobile/readme/README.md
Till-JS c638a7ffee feat(chat): integrate chat project into monorepo with full app structure
- Restructure chat as apps/mobile, apps/web, apps/landing, backend
- Add NestJS backend for secure Azure OpenAI API calls
- Remove exposed API key from mobile app (security fix)
- Add shared chat-types package
- Create SvelteKit web app scaffold
- Create Astro landing page scaffold
- Update pnpm workspace configuration
- Add project-level CLAUDE.md documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 13:48:24 +01:00

101 lines
3.8 KiB
Markdown

# 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