Files
GerbilManager/docs/ai-provider.md
Gulum 454f6e0d60
Some checks failed
CI / Backend Tests (.NET) (push) Failing after 50s
CI / Docker Build & Push (push) Has been cancelled
CI / Frontend Tests (Node/Vite) (push) Has been cancelled
fix(ai): Default-Modell gemini-2.0-flash -> gemini-flash-latest (Free-Tier-fähig)
gemini-2.0-flash hat auf Julians Konto KEIN freies Kontingent (429), gemini-flash-latest schon
(direkt verifiziert). Julian bleibt kostenlos. compose/.env.example/docs angepasst.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 20:48:05 +02:00

2.0 KiB

KI-Anbieter für das Abgabe-Inserat (FEAT-12a)

POST /gerbils/sale-ad spricht einen beliebigen OpenAI-kompatiblen Chat-Completions-Endpunkt an — kein SDK, nur drei Einstellungen (Sektion AI), gesetzt als Umgebungsvariablen oder user-secrets, niemals in appsettings committen. Fehlt eine der drei, antwortet der Endpunkt mit 503 {code:"AiKeyMissing"} und die Oberfläche zeigt den deutschen Hinweis.

Variable Bedeutung
AI__BaseUrl Basis-URL des Anbieters (ohne /chat/completions)
AI__ApiKey API-Schlüssel (Bearer)
AI__Model Modellname des Anbieters

Anbieter-Matrix (alle mit derselben Implementierung getestet)

Anbieter AI__BaseUrl Beispiel-AI__Model Kosten
Google Gemini (vermutlich Julians Wahl) https://generativelanguage.googleapis.com/v1beta/openai gemini-flash-latest Free Tier
Groq https://api.groq.com/openai/v1 llama-3.3-70b-versatile Free Tier
Mistral https://api.mistral.ai/v1 mistral-small-latest Free Tier
Ollama (lokal/TrueNAS) http://<host>:11434/v1 llama3.2 kostenlos, lokal

Ollama ignoriert den Schlüssel — AI__ApiKey=ollama als Platzhalter setzen (die Einstellung darf nur nicht leer sein).

Setzen der Variablen

Entwicklung (PowerShell, vor dem AppHost-Start):

$env:AI__BaseUrl = 'https://generativelanguage.googleapis.com/v1beta/openai'
$env:AI__ApiKey  = '<schlüssel>'
$env:AI__Model   = 'gemini-flash-latest'

oder per user-secrets im API-Projekt: dotnet user-secrets set "AI:ApiKey" "<schlüssel>" --project GerbilManagerWebAPI (usw.).

TrueNAS / Docker Compose (für Dwights Ops-Doku): im environment:-Block des API-Containers —

services:
  webapi:
    environment:
      AI__BaseUrl: https://generativelanguage.googleapis.com/v1beta/openai
      AI__ApiKey: ${AI_API_KEY}        # Wert in der TrueNAS-App/.env hinterlegen
      AI__Model: gemini-flash-latest