Senior
Абоненттик негизде ылдамдык чектөө жана квоталар менен көп-кырдактуу LLM кызматын долбоорлоо.
sobes.tech AI
AIден жооп
Multi-tenant LLM- кызматынын долбоорлоо үчүн, алдаган ылдамдык чектөө жана жазылуу квоталары менен, бир нече негизги аспекттерди эске алуу керек:
-
Мультиарендүүлүк (multi-tenancy):
- Ар бир кардарга (арендаторго) өзүнчө идентификатор берилет.
- Маалыматтар жана моделдер изоляцияланган же логикалык бөлүнгөн, коопсуздук жана купуялуулукту камсыз кылуу үчүн.
-
Аутентификация жана уруксат берүү:
- API ачкычтарды же OAuth колдонуу аркылуу кардарларды идентификациялоо.
- Ар бир суроо-талапта укуктарды жана жазылууну текшерүү.
-
Ылдамдык чектөө:
- Ар бир кардар үчүн убакыт бирдикте суроолордун санын чектөө.
- Токен-бак же лейки бак алгоритмдерин колдонуу.
- Чектөөлөрдүн абалын тез сактагычта сактоо (мисалы, Redis).
-
Жазылуу квоталары:
- Колдонуунун чектөөлөрүн аныктоо (мисалы, токендердин же суроолордун айлык саны)
- Колдонууну көзөмөлдөө жана ашып кетсе блоктоо же кабарлоо.
-
Архитектура:
- API Gateway аркылуу маршруттоо жана кирүү көзөмөлү.
- ЛЛМге суроолорду иштетүү үчүн микросервистер.
- Логдор жана метрикалар үчүн сактагыч.
-
Көзөмөл жана лог жүргүзүү:
- Колдонууну, каталарды жана иштөө көрсөткүчтөрүн көзөмөлдөө.
Node.js жана 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 мүнөт
max: (req) => {
// Колдонуучунун жазылуу чектөөсүн алуу
return req.user.subscriptionLimit || 100;
},
keyGenerator: (req) => req.user.id,
handler: (req, res) => {
res.status(429).json({ error: 'Суроо чектөөсү ашып кетти' });
}
});
app.use('/api/llm', authenticateUser, limiter, llmHandler);
Ошентип, кызмат кардарларды изоляциялайт, жүктөмдү көзөмөлдөйт жана жазылуу чектөөлөрүн сактайт.