Zum Inhalt

AI-Provider einrichten

Drei Pfade. Mische dich nicht zwischen ihnen — pro Instanz ein Provider, Embeddings können separat laufen.

Ollama (lokal, empfohlen für Self-Hosting)

Vorteile

  • Daten bleiben im Stack
  • Keine API-Kosten
  • Kein Internetzugang nötig

Voraussetzungen

  • 8 GB RAM für llama3.1:8b, 64 GB+ für llama3.1:70b
  • GPU stark empfohlen (NVIDIA mit nvidia-container-toolkit)
  • 10–80 GB Disk für Modelle

Aktivieren

In .env:

AI_ENABLED=true

Ollama als Compose-Profil starten:

docker compose -f /opt/vesana/docker-compose.prod.yml --profile ai up -d

GPU-Beschleunigung

In docker-compose.prod.yml (oder Override-File):

ollama:
  image: ollama/ollama:latest
  profiles: ["ai"]
  deploy:
    resources:
      reservations:
        devices:
          - capabilities: [gpu]
  volumes:
    - ollama-models:/root/.ollama

Voraussetzung auf dem Host: nvidia-container-toolkit installiert.

Modell installieren

/admin/ai:

  1. Provider: Ollama
  2. Modellname: llama3.1:8b (oder anderes)
  3. Installieren — Fortschritt streamt per SSE
  4. Embedding-Modell: nomic-embed-text, ebenfalls installieren

Modell-Empfehlungen nach RAM:

RAM Modell Parameter
8 GB llama3.1:8b 8B
16 GB llama3.1:8b 8B (schneller)
32 GB+ mistral oder mixtral:8x7b 7B/56B
64 GB+ GPU llama3.1:70b 70B

Modelle verwalten

/admin/ai/models:

  • Liste installierte Modelle
  • Modelle löschen (POST-Endpoint, nicht DELETE — axios.delete() mit Body ist unzuverlässig)
  • Modelle nachinstallieren

Anthropic (Cloud, höchste Qualität)

Voraussetzungen

  • Anthropic-Account (console.anthropic.com)
  • API-Key
  • Outbound-Zugriff auf api.anthropic.com

Konfiguration

/admin/ai:

  1. Provider: Anthropic
  2. API-Key einsetzen
  3. Modell wählen: claude-sonnet-4-6, claude-opus-4-7, …
  4. Embedding-Modell separat (Ollama nötig, siehe oben)

Kosten

Pay-as-you-go pro Token. Faustregel:

  • Service-Analyse: ~2 000 Input + 500 Output Tokens → ein paar Cent
  • Chat-Frage: ~1 000–3 000 Input + 200–800 Output → ein paar Cent

Für viele Tenants kann das im Monat zu zweistelligen Eurobeträgen werden — Kosten in der Anthropic-Console behalten.

Externer OpenAI-kompatibler Anbieter

Für vLLM, LM Studio, text-generation-inference, lokal gehostete Cloud-Modelle:

/admin/ai:

  1. Provider: Extern
  2. API-URL: http://gpu-server:8080/v1
  3. API-Key (falls nötig)
  4. Modellname

Der Endpoint muss OpenAI-kompatibel sein (Chat-Completion mit messages-Array).

Verbindung testen

Nach Konfiguration: Verbindung testen schickt eine kleine Test-Frage und zeigt:

  • Antwortzeit
  • Antwort-Inhalt (oder Fehler-Code)
  • Token-Counts (Input + Output)

So weißt du sofort ob die Konfiguration trägt.

Default-Parameter

Pro Provider:

Parameter Default Bedeutung
temperature 0.3 niedrig = sachlich, hoch = kreativ
max_tokens 1024 Output-Limit
top_p 0.9 Nukleus-Sampling

Anpassbar in der Admin-UI.

Fallback bei Provider-Ausfall

Wenn der konfigurierte Provider nicht antwortet (Anthropic-API-Outage, Ollama-Container down):

  • Chat-Widget zeigt „AI gerade nicht verfügbar — bitte später erneut versuchen"
  • Service-Analyse fällt auf gecachte Antworten zurück, wenn vorhanden
  • Keine Auto-Retry, kein anderer Provider — bewusst, um nicht überraschende Cloud-Kosten zu verursachen

Schema

Konfiguration liegt in ai_config-Tabelle (Migration 065+067):

Feld Wert
provider ollama / anthropic / openai_compat
chat_model Modellname
embed_provider Default ollama (auch wenn Chat anderswo läuft)
embed_model nomic-embed-text
temperature float
api_url für extern
api_key verschlüsselt gespeichert

Permission

ai.config für Admins. Andere User sehen nur „AI ist aktiv / inaktiv" ohne API-Key.

Anschluss

  • AI-Chat & Analyse — wofür der Provider gebraucht wird
  • Wiki — Embeddings sind nur sinnvoll wenn Wiki-Artikel da sind