Sobes.tech
Senior

Projete um serviço LLM multi-inquilino com limite de taxa e quotas por assinatura.

sobes.tech IA

Resposta da IA

Para projetar um serviço multi-tenant LLM com limites de taxa e quotas por assinatura, é necessário considerar vários aspetos-chave:

  1. Multi-tenancy:

    • Atribui-se um identificador único a cada cliente (arrendatário).
    • Os dados e modelos estão isolados ou logicamente separados para garantir segurança e privacidade.
  2. Autenticação e autorização:

    • Utilizar API-keys ou OAuth para identificar os clientes.
    • Verificar direitos de acesso e assinaturas em cada pedido.
  3. Limitação de taxa:

    • Restringir o número de pedidos num determinado período de tempo para cada cliente.
    • Pode usar algoritmos como token-bucket ou leaky bucket.
    • Armazenar o estado dos limites em um armazenamento rápido (por exemplo, Redis).
  4. Quotas por assinatura:

    • Definir limites de uso (por exemplo, número de tokens ou pedidos por mês) dependendo do plano.
    • Monitorizar o consumo e bloquear ou notificar quando exceder.
  5. Arquitetura:

    • API Gateway para roteamento e controlo de acesso.
    • Microserviços para processar pedidos ao LLM.
    • Armazenamento para logs e métricas.
  6. Monitorização e registo:

    • Monitorizar uso, erros e desempenho.

Exemplo de esquema simplificado de limitação de taxa em Node.js com 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 minuto
  max: (req) => {
    // Obter limite da assinatura do utilizador
    return req.user.subscriptionLimit || 100;
  },
  keyGenerator: (req) => req.user.id,
  handler: (req, res) => {
    res.status(429).json({ error: 'Limite de pedidos excedido' });
  }
});

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

Assim, o serviço garante o isolamento dos clientes, controla a carga e cumpre as restrições das assinaturas.