Senior
Դիզայնեք բազմաբնակարան LLM ծառայություն՝ արագության սահմանափակում և բաժանորդագրության քվոտաներով։
sobes.tech AI
Պատասխան AI-ից
Մուլտի-տենանտ ԼԼՄ-ծառայության նախագծման համար, որը ունի արագության սահմանափակում և բաժանորդագրության քվոտաներ, անհրաժեշտ է հաշվի առնել մի քանի հիմնական аспектներ:
-
Մուլտիարենտություն (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);
Այսպիսով, ծառայությունը ապահովում է հաճախորդների առանձնացում, բեռի վերահսկում և բաժանորդագրությունների սահմանափակումների պահպանում։