Главная сложность при использовании бесплатных API-тарифов (Free Tier) — это ограничения по количеству запросов в минуту (RPM) или токенов в минуту (TPM). Например, у Groq лимит составляет 30 RPM, а у Google AI Studio — 15 RPM.
В продакшене или при активной локальной разработке эти лимиты можно легко исчерпать за 2 минуты.
---
### Решение: Архитектура Smart Fallback
Вместо привязки к единственному провайдеру создается каскад из 3-4 независимых бесплатных провайдеров.
```
Запрос от пользователя
│
▼
[ Groq (Qwen 2.5 Coder) ] ── (429 Too Many Requests) ──┐
│ │
(200 OK) ▼
│ [ Cerebras (Llama 3.3) ]
Ответ │
(429) ───────┴────────┐
│
▼
[ OpenRouter (:free) ]
```
---
### Готовая реализация на TypeScript
```typescript
interface ProviderConfig {
name: string;
url: string;
apiKey: string;
model: string;
}
const PROVIDERS_POOL: ProviderConfig[] = [
{
name: 'Groq',
url: 'https://api.groq.com/openai/v1/chat/completions',
apiKey: process.env.GROQ_API_KEY!,
model: 'qwen-2.5-coder-32b'
},
{
name: 'Cerebras',
url: 'https://api.cerebras.ai/v1/chat/completions',
apiKey: process.env.CEREBRAS_API_KEY!,
model: 'llama3.3-70b'
},
{
name: 'OpenRouter',
url: 'https://openrouter.ai/api/v1/chat/completions',
apiKey: process.env.OPENROUTER_API_KEY!,
model: 'meta-llama/llama-3.3-70b-instruct:free'
}
];
export async function askAiWithFallback(prompt: string) {
for (const provider of PROVIDERS_POOL) {
try {
const res = await fetch(provider.url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${provider.apiKey}`
},
body: JSON.stringify({
model: provider.model,
messages: [{ role: 'user', content: prompt }]
})
});
if (res.status === 429) {
console.warn(`⚠️ ${provider.name} вернул 429. Переключаемся на резерв...`);
continue;
}
if (res.ok) {
const data = await res.json();
return data.choices[0].message.content;
}
} catch (e) {
console.error(`Ошибка сети на ${provider.name}:`, e);
}
}
throw new Error('Все провайдеры исчерпали квоту.');
}
```
Благодаря этому подходу суммарный лимит вырастает до 100+ запросов в минуту, а надежность сервиса приближается к 99.9%.
Теги:#Rate Limits#OpenRouter#Fallback#Архитектура
