147 lines
4.9 KiB
Markdown
147 lines
4.9 KiB
Markdown
|
|
# Cloudflare AI Gateway
|
|||
|
|
|
|||
|
|
## Что это?
|
|||
|
|
|
|||
|
|
Cloudflare AI Gateway — это прокси-сервис между вашим приложением и AI провайдерами (OpenAI, Anthropic и др.), который предоставляет:
|
|||
|
|
|
|||
|
|
## Преимущества
|
|||
|
|
|
|||
|
|
### 1. 🚀 Кэширование запросов
|
|||
|
|
- Автоматическое кэширование одинаковых запросов к AI
|
|||
|
|
- Экономия на повторных запросах
|
|||
|
|
- Мгновенные ответы для закэшированных запросов
|
|||
|
|
|
|||
|
|
### 2. 📊 Аналитика и мониторинг
|
|||
|
|
- Детальная статистика использования API
|
|||
|
|
- Отслеживание стоимости запросов
|
|||
|
|
- Анализ производительности
|
|||
|
|
|
|||
|
|
### 3. 💰 Экономия средств
|
|||
|
|
- Снижение количества запросов к OpenAI через кэш
|
|||
|
|
- Контроль расходов
|
|||
|
|
- Rate limiting для предотвращения перерасхода
|
|||
|
|
|
|||
|
|
### 4. 🛡️ Безопасность
|
|||
|
|
- Защита API ключей
|
|||
|
|
- Rate limiting
|
|||
|
|
- Логирование всех запросов
|
|||
|
|
|
|||
|
|
### 5. 🔄 Резервные варианты
|
|||
|
|
- Поддержка нескольких AI провайдеров
|
|||
|
|
- Автоматическое переключение при сбоях
|
|||
|
|
|
|||
|
|
## Настройка
|
|||
|
|
|
|||
|
|
### 1. Создание Gateway в Cloudflare
|
|||
|
|
|
|||
|
|
1. Перейдите на [Cloudflare Dashboard](https://dash.cloudflare.com/)
|
|||
|
|
2. Откройте раздел **AI** → **AI Gateway**
|
|||
|
|
3. Нажмите **Create Gateway**
|
|||
|
|
4. Введите имя для Gateway (например: `gpt`)
|
|||
|
|
5. Скопируйте **Account ID** и **Gateway ID**
|
|||
|
|
|
|||
|
|
### 2. Настройка в проекте
|
|||
|
|
|
|||
|
|
Добавьте в `.env` файл:
|
|||
|
|
|
|||
|
|
```env
|
|||
|
|
# Cloudflare AI Gateway
|
|||
|
|
CLOUDFLARE_ACCOUNT_ID=ваш_account_id
|
|||
|
|
CLOUDFLARE_GATEWAY_ID=gpt
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. Проверка работы
|
|||
|
|
|
|||
|
|
После настройки все запросы к OpenAI будут проходить через Cloudflare Gateway.
|
|||
|
|
|
|||
|
|
Проверить можно в дашборде Cloudflare: **AI** → **AI Gateway** → выбрать ваш Gateway
|
|||
|
|
|
|||
|
|
## Как это работает
|
|||
|
|
|
|||
|
|
### Без Cloudflare Gateway:
|
|||
|
|
```
|
|||
|
|
Бот → OpenAI API → Ответ
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### С Cloudflare Gateway:
|
|||
|
|
```
|
|||
|
|
Бот → Cloudflare Gateway → OpenAI API → Ответ
|
|||
|
|
↓
|
|||
|
|
(кэш + аналитика)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
При повторном запросе:
|
|||
|
|
```
|
|||
|
|
Бот → Cloudflare Gateway → Ответ из кэша (мгновенно!)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Примеры экономии
|
|||
|
|
|
|||
|
|
### Без кэширования:
|
|||
|
|
- Запрос перевода слова "hello" → $0.002
|
|||
|
|
- 10 пользователей запрашивают "hello" → $0.02
|
|||
|
|
- 100 пользователей → $0.20
|
|||
|
|
|
|||
|
|
### С кэшированием:
|
|||
|
|
- Первый запрос "hello" → $0.002
|
|||
|
|
- Последующие 99 запросов → $0 (из кэша)
|
|||
|
|
- **Экономия: 99%**
|
|||
|
|
|
|||
|
|
## Настройка кэширования
|
|||
|
|
|
|||
|
|
В дашборде Cloudflare Gateway можно настроить:
|
|||
|
|
|
|||
|
|
- **TTL кэша** - время жизни закэшированных ответов
|
|||
|
|
- **Правила кэширования** - что кэшировать, а что нет
|
|||
|
|
- **Invalidation** - очистка кэша
|
|||
|
|
|
|||
|
|
### Рекомендации для нашего бота:
|
|||
|
|
|
|||
|
|
**Кэшировать:**
|
|||
|
|
- Переводы слов (TTL: 30 дней)
|
|||
|
|
- Проверка ответов с одинаковыми параметрами (TTL: 1 день)
|
|||
|
|
|
|||
|
|
**Не кэшировать:**
|
|||
|
|
- Диалоги с пользователями (уникальный контекст)
|
|||
|
|
|
|||
|
|
## Мониторинг
|
|||
|
|
|
|||
|
|
В дашборде Cloudflare Gateway доступны метрики:
|
|||
|
|
|
|||
|
|
- **Requests** - общее количество запросов
|
|||
|
|
- **Cache hit rate** - процент попаданий в кэш
|
|||
|
|
- **Cost** - стоимость запросов
|
|||
|
|
- **Latency** - задержка ответов
|
|||
|
|
- **Errors** - ошибки
|
|||
|
|
|
|||
|
|
## Отключение
|
|||
|
|
|
|||
|
|
Чтобы отключить Cloudflare Gateway и использовать прямое подключение к OpenAI:
|
|||
|
|
|
|||
|
|
1. Удалите или закомментируйте в `.env`:
|
|||
|
|
```env
|
|||
|
|
# CLOUDFLARE_ACCOUNT_ID=...
|
|||
|
|
# CLOUDFLARE_GATEWAY_ID=...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. Или оставьте `CLOUDFLARE_ACCOUNT_ID` пустым:
|
|||
|
|
```env
|
|||
|
|
CLOUDFLARE_ACCOUNT_ID=
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Поддержка других AI провайдеров
|
|||
|
|
|
|||
|
|
Cloudflare AI Gateway также поддерживает:
|
|||
|
|
- Anthropic (Claude)
|
|||
|
|
- Google AI
|
|||
|
|
- Hugging Face
|
|||
|
|
- Azure OpenAI
|
|||
|
|
|
|||
|
|
Для переключения достаточно изменить base URL в коде.
|
|||
|
|
|
|||
|
|
## Ссылки
|
|||
|
|
|
|||
|
|
- [Cloudflare AI Gateway Documentation](https://developers.cloudflare.com/ai-gateway/)
|
|||
|
|
- [Cloudflare Dashboard](https://dash.cloudflare.com/)
|
|||
|
|
- [Pricing Calculator](https://developers.cloudflare.com/ai-gateway/get-started/pricing/)
|