Sobes.tech
Senior

Entwerfen Sie einen Multi-Tenant LLM-Service mit Rate-Limiting und Quoten nach Abonnement.

sobes.tech KI

Antwort von AI

Um einen multi-tenant LLM-Dienst mit Ratenbegrenzung und Abonnementquoten zu entwerfen, sind mehrere Schlüsselaspekte zu berücksichtigen:

  1. Multi-Tenancy:

    • Jedem Kunden (Mieter) wird eine eindeutige Kennung zugewiesen.
    • Daten und Modelle sind isoliert oder logisch getrennt, um Sicherheit und Privatsphäre zu gewährleisten.
  2. Authentifizierung und Autorisierung:

    • Verwendung von API-Schlüsseln oder OAuth zur Identifikation der Kunden.
    • Überprüfung der Zugriffsrechte und Abonnements bei jeder Anfrage.
  3. Ratenbegrenzung:

    • Begrenzung der Anzahl der Anfragen innerhalb eines bestimmten Zeitraums für jeden Kunden.
    • Verwendung von Algorithmen wie Token-Bucket oder Leaky-Bucket.
    • Speicherung des Status der Limits in einem schnellen Speicher (z.B. Redis).
  4. Abonnementquoten:

    • Festlegung von Nutzungsgrenzen (z.B. Anzahl der Tokens oder Anfragen pro Monat) je nach Tarif.
    • Überwachung des Verbrauchs und Sperrung oder Benachrichtigung bei Überschreitung.
  5. Architektur:

    • API-Gateway für Routing und Zugriffskontrolle.
    • Microservices zur Verarbeitung der Anfragen an LLM.
    • Speicher für Logs und Metriken.
  6. Überwachung und Logging:

    • Überwachung der Nutzung, Fehler und Leistung.

Beispiel für ein vereinfachtes Rate-Limiting-Schema in Node.js mit Redis:

const rateLimit = require('express-rate-limit');
const RedisStore = require('rate-limit-redis');
const redisClient = require('./redisClient');

const limiter = rateLimit({
  store: new RedisStore({ client: redisClient }),
  windowMs: 60 * 1000, // 1 Minute
  max: (req) => {
    // Hole das Limit aus dem Abonnement des Nutzers
    return req.user.subscriptionLimit || 100;
  },
  keyGenerator: (req) => req.user.id,
  handler: (req, res) => {
    res.status(429).json({ error: 'Rate limit exceeded' });
  }
});

app.use('/api/llm', authenticateUser, limiter, llmHandler);

Auf diese Weise stellt der Dienst die Isolation der Kunden sicher, kontrolliert die Last und hält die Abonnement-Beschränkungen ein.