wtrinkl c149bdbdde Architektur-Analyse und Korrektur-Konzept
- Umfassende Analyse der aktuellen Implementierung durchgeführt
- Identifiziert: Zwei getrennte User-Systeme (users vs gateway_users)
- Problem: API verwendet falsche Tabelle (users statt gateway_users)
- Lösung: Kompletter Implementierungsplan für korrekte Architektur
- Dokument: ARCHITEKTUR.md mit 6-Tage-Umsetzungsplan erstellt
- Enthält: Custom API-Key Guard, Gateway-User-Credentials, Budget-System
- Swagger/Scramble Paket hinzugefügt (für spätere API-Dokumentation)

Status: Bereit für Implementierung (Start: Tag 1 - Datenbank & Models)
2025-11-18 23:42:29 +01:00

Laravel LLM Gateway

Ein umfassendes Laravel-basiertes LLM Gateway System mit Multi-Provider-Support, Kosten-Tracking, Budget-Management und Admin-Interface.

🎯 Hauptfeatures

  • Multi-Provider Support: OpenAI, Anthropic, DeepSeek, Google Gemini, Mistral AI
  • Per-User API Keys: Verschlüsselte Speicherung von Provider-Credentials pro Benutzer
  • Kosten-Tracking: Detaillierte Verfolgung von Token-Nutzung und Kosten
  • Budget-Management: Flexible Budget-Limits und Benachrichtigungen
  • Rate Limiting: Schutz vor Überlastung
  • Admin-Interface: Umfassende Verwaltungsoberfläche mit Laravel/Livewire
  • OpenAI-kompatible API: Standard-konforme Endpoints

🚀 Quick Start

Voraussetzungen

  • Docker & Docker Compose installiert
  • Port 80 und 8081 verfügbar

Installation

cd /opt/laravel-llm
docker compose up -d

Das System startet automatisch:

  • Laravel Anwendung auf Port 80
  • MariaDB 11.4 Datenbank
  • phpMyAdmin auf Port 8081

🌐 URLs & Zugangsdaten

Services

Service URL Beschreibung
Laravel Admin http://localhost:80 Admin-Interface
phpMyAdmin http://localhost:8081 Datenbank-Management

Login-Daten

Laravel Admin

Email:    admin@laravel-llm.local
Password: [Dein Admin-Passwort]

phpMyAdmin (MariaDB)

Server:   mariadb
Username: root
Password: rootpass
Database: gateway

📁 Projekt-Struktur

/opt/laravel-llm/
├── docker-compose.yml          # Docker Services Definition
├── backup_*.sql                # Datenbank-Backups
│
├── laravel/                    # Laravel Docker Config
│   ├── Dockerfile              # PHP 8.3 + Nginx
│   ├── nginx.conf              # Webserver Config
│   ├── supervisord.conf        # Process Manager
│   └── php.ini                 # PHP Einstellungen
│
└── laravel-app/                # Laravel Anwendung
    ├── app/
    │   ├── Http/Controllers/   # Admin Controllers
    │   ├── Models/             # Eloquent Models
    │   ├── Services/LLM/       # Provider Services
    │   └── ...
    ├── database/
    │   └── migrations/         # Datenbank Schema
    ├── resources/
    │   └── views/              # Blade Templates
    └── routes/
        └── web.php             # Admin Routes

🗄️ Datenbank-Schema

Haupttabellen

Tabelle Beschreibung
admins Admin-Benutzer für das Interface
users Gateway-Benutzer (API-Nutzer)
user_provider_keys Verschlüsselte Provider API-Keys
usage_logs Request-Tracking und Kosten
budgets Budget-Definitionen
budget_reset_logs Budget-Historie
model_pricing Modell-Kosten-Konfiguration

Datenbank-Zugriff

Via phpMyAdmin:

http://localhost:8081
Server: mariadb
User: root
Password: rootpass

Via CLI:

docker compose exec mariadb mysql -u gateway -pgateway gateway

# Beispiel-Queries
SELECT * FROM users;
SELECT * FROM usage_logs ORDER BY created_at DESC LIMIT 10;

🔧 Docker Commands

Container Management

# Container starten
docker compose up -d

# Container stoppen
docker compose down

# Logs anzeigen
docker compose logs -f laravel

# Container neu bauen
docker compose up -d --build

# In Laravel Container einloggen
docker compose exec laravel bash

Laravel Artisan Commands

# Migrationen
docker compose exec laravel php artisan migrate

# Cache leeren
docker compose exec laravel php artisan cache:clear
docker compose exec laravel php artisan config:clear

# Queue Worker starten
docker compose exec laravel php artisan queue:work

# Tinker (Laravel REPL)
docker compose exec laravel php artisan tinker

Asset Compilation

# Development (mit Hot Reload)
docker compose exec laravel npm run dev

# Production Build
docker compose exec laravel npm run build

🛠️ Entwicklung

Admin-Interface Features

Das Admin-Interface unter http://localhost:80 bietet:

  1. Dashboard

    • Übersicht über Nutzungsstatistiken
    • Kosten-Trends (Chart.js)
    • Provider-Verteilung
    • Aktive Benutzer
  2. Gateway Users

    • Benutzerverwaltung
    • API-Key Management
    • Pro-User Provider-Credentials
  3. API Keys

    • Virtual Keys erstellen/löschen
    • Key-Testing
    • Nutzungsstatistiken
  4. Budgets

    • Budget-Limits definieren
    • Reset-Zeiträume (täglich/wöchentlich/monatlich)
    • Benachrichtigungen
  5. Usage Logs

    • Request-Historie
    • Filter & Export (CSV)
    • Kosten-Analyse
  6. Model Pricing

    • Preis-Konfiguration
    • Dynamische Model-Liste
    • Kosten-Rechner

LLM Provider Services

Das System unterstützt folgende Provider mit dynamischer Model-Discovery:

  • OpenAI: GPT-3.5, GPT-4, GPT-4 Turbo
  • Anthropic: Claude 3 (Haiku, Sonnet, Opus)
  • DeepSeek: DeepSeek Chat Modelle
  • Google Gemini: Gemini Pro, Flash
  • Mistral AI: Mistral Large, Medium, Small

Alle Provider-Services befinden sich in app/Services/LLM/.


🔐 Sicherheit

Production Checklist

Vor dem Production-Einsatz:

  1. .env Konfiguration:

    APP_ENV=production
    APP_DEBUG=false
    APP_KEY=... (sicher generieren!)
    
  2. Admin-Passwort ändern

  3. MariaDB Root-Passwort ändern

  4. phpMyAdmin deaktivieren oder absichern

  5. SSL/TLS einrichten

  6. Laravel Caches aktivieren:

    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    php artisan optimize
    

API-Key Verschlüsselung

Provider API-Keys werden verschlüsselt in der Datenbank gespeichert:

  • Verwendung von Laravel's Encryption
  • Basiert auf APP_KEY
  • Automatische Ver-/Entschlüsselung

📊 Monitoring & Analytics

Dashboard Metriken

  • Gesamte Requests
  • Token-Nutzung (Input/Output)
  • Gesamtkosten
  • Requests pro Provider
  • Top-Nutzer
  • Kosten-Trends (Chart.js Visualisierung)

Export Funktionen

Usage Logs können als CSV exportiert werden mit:

  • Zeitraum-Filter
  • Provider-Filter
  • Benutzer-Filter
  • Kosten-Zusammenfassung

🐛 Troubleshooting

Container startet nicht

# Logs prüfen
docker compose logs laravel
docker compose logs mariadb

# Container neu bauen
docker compose down
docker compose up -d --build

Datenbank Connection Fehler

# MariaDB Status prüfen
docker compose ps mariadb

# Connection testen
docker compose exec laravel php artisan migrate:status

Permissions Fehler

# Storage Permissions setzen
docker compose exec laravel chmod -R 777 storage bootstrap/cache

Assets werden nicht geladen

# Assets neu kompilieren
docker compose exec laravel npm run build

# Storage Link neu erstellen
docker compose exec laravel php artisan storage:link

📚 Technologie-Stack

  • Framework: Laravel 11.x
  • Frontend: Livewire 3.x + Tailwind CSS 3.x
  • Datenbank: MariaDB 11.4
  • Webserver: Nginx + PHP-FPM 8.3
  • Charts: Chart.js
  • Container: Docker + Docker Compose


📝 System-Status

Implementiert

  • Docker-Setup (Laravel + MariaDB + phpMyAdmin)
  • Admin-Authentifizierung
  • Gateway User Management
  • API Key Management mit Testing
  • Budget-System mit Limits
  • Usage Logs mit CSV Export
  • Model Pricing Management
  • Dashboard mit Statistiken
  • Multi-Provider Support (5 Provider)
  • Verschlüsselte Credential-Speicherung
  • Dynamische Model-Discovery

🚧 Geplant

  • API Gateway Endpoints (OpenAI-kompatibel)
  • Rate Limiting Implementation
  • Email-Benachrichtigungen
  • Erweiterte Analytics
  • API-Dokumentation

Entwickelt von Wilfried Trinkl | Laravel LLM Gateway 🚀

Description
Any-LLM Gateway with Laravel Admin Interface - Comprehensive AI gateway management system combining Any-LLM Gateway with Laravel-based administrative interface for managing AI provider access, user authentication, usage tracking, and budgets.
Readme 500 KiB
Languages
PHP 57.8%
Blade 41.9%
Dockerfile 0.2%
JavaScript 0.1%