Sobes.tech
Senior

Izstrādājiet daudzīpašnieku LLM pakalpojumu ar ierobežojumu un kvotām pēc abonementa.

sobes.tech AI

Atbilde no AI

Multi-tenant LLM pakalpojuma projektēšanai ar ātruma ierobežojumu un abonēšanas kvotām, ir jāņem vērā daži galvenie aspekti:

  1. Multi-tenantība (multi-tenancy):

    • Katram klientam (nomniekam) tiek piešķirts atsevišķs identifikators.
    • Dati un modeļi ir izolēti vai loģiski atdalīti, lai nodrošinātu drošību un konfidencialitāti.
  2. Autentifikācija un autorizācija:

    • Izmantot API atslēgas vai OAuth klientu identifikācijai.
    • Katru pieprasījumu pārbaudīt tiesības un abonēšanu.
  3. Ātruma ierobežojums:

    • Ierobežot katra klienta pieprasījumu skaitu noteiktā laika posmā.
    • Izmantot tokenu baku vai leaky bucket algoritmus.
    • Saglabāt ierobežojumu stāvokli ātrajā glabātuvē (piemēram, Redis).
  4. Abonēšanas kvotas:

    • Noteikt lietošanas limitus (piemēram, tokenu vai pieprasījumu skaitu mēnesī) atbilstoši tarifam.
    • Uzraudzīt patēriņu un bloķēt vai brīdināt par pārsniegšanu.
  5. Arhitektūra:

    • API Gateway maršrutēšanai un piekļuves kontrolei.
    • Mikropakalpojumi pieprasījumu apstrādei LLM.
    • Žurnālu un metriku glabāšana.
  6. Uzraudzība un žurnālu reģistrēšana:

    • Uzraudzīt lietošanu, kļūdas un veiktspēju.

Piemērs vienkāršai ātruma ierobežošanas shēmai Node.js ar 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 minūte
  max: (req) => {
    // Iegūt lietotāja abonēšanas limitu
    return req.user.subscriptionLimit || 100;
  },
  keyGenerator: (req) => req.user.id,
  handler: (req, res) => {
    res.status(429).json({ error: 'Pieteikumu limits ir pārsniegts' });
  }
});

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

Tādējādi, pakalpojums nodrošina klientu izolāciju, slodzes kontroli un abonēšanas limitu ievērošanu.