Some checks failed
Build and Deploy GooSeek / build-and-deploy (push) Failing after 8m25s
- Add tier-based provider routing in llm-svc - free tier → Ollama (local qwen3.5:9b) - pro/business → Timeweb Cloud AI - Add /api/v1/embed endpoint for embeddings via Ollama - Update Ollama client: qwen3.5:9b default, remove auth - Add GenerateEmbedding() function for qwen3-embedding:0.6b - Add Ollama K8s deployment with GPU support (RTX 4060 Ti) - Add monitoring stack (Prometheus, Grafana, Alertmanager) - Add Grafana dashboards for LLM and security metrics - Update deploy.sh with monitoring and Ollama deployment Made-with: Cursor
100 lines
3.8 KiB
Markdown
100 lines
3.8 KiB
Markdown
# LLM Routing по тарифам ✅
|
||
|
||
## Архитектура
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ llm-svc │
|
||
│ │
|
||
│ POST /api/v1/generate │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌─────────────────┐ │
|
||
│ │ resolveProvider │ │
|
||
│ │ (tier) │ │
|
||
│ └────────┬────────┘ │
|
||
│ │ │
|
||
│ ┌─────┴─────┐ │
|
||
│ ▼ ▼ │
|
||
│ ┌──────┐ ┌────────┐ │
|
||
│ │ FREE │ │ PRO │ │
|
||
│ └──┬───┘ └───┬────┘ │
|
||
│ │ │ │
|
||
│ ▼ ▼ │
|
||
│ Ollama Timeweb │
|
||
│ (local) (cloud) │
|
||
└─────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## Роутинг по тарифам
|
||
|
||
| Тариф | Провайдер | Модель | Лимиты |
|
||
|-------|-----------|--------|--------|
|
||
| **free** | Ollama (local) | qwen3.5:9b | 50 req/day, 2000 tokens/req |
|
||
| **pro** | Timeweb | gpt-4o, claude, etc | 500 req/day, 8000 tokens/req |
|
||
| **business** | Timeweb | all models | 5000 req/day, 32000 tokens/req |
|
||
|
||
## API Endpoints
|
||
|
||
### POST /api/v1/generate
|
||
```json
|
||
{
|
||
"providerId": "auto", // или "ollama", "timeweb", etc
|
||
"key": "qwen3.5:9b", // модель
|
||
"messages": [{"role": "user", "content": "..."}],
|
||
"options": {
|
||
"maxTokens": 1000,
|
||
"temperature": 0.7,
|
||
"stream": true
|
||
}
|
||
}
|
||
```
|
||
|
||
### POST /api/v1/embed
|
||
```json
|
||
{
|
||
"input": "Текст для эмбеддинга",
|
||
"model": "qwen3-embedding:0.6b"
|
||
}
|
||
```
|
||
|
||
### GET /api/v1/providers
|
||
Возвращает список доступных провайдеров с указанием tier.
|
||
|
||
---
|
||
|
||
## Ollama конфигурация
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| OLLAMA_NUM_PARALLEL | 4 |
|
||
| OLLAMA_MAX_LOADED_MODELS | 2 |
|
||
| OLLAMA_FLASH_ATTENTION | true |
|
||
| Модель генерации | qwen3.5:9b |
|
||
| Модель эмбеддингов | qwen3-embedding:0.6b |
|
||
|
||
## Пропускная способность
|
||
|
||
| Сценарий | Одновременно | RPM |
|
||
|----------|--------------|-----|
|
||
| Короткие ответы | 6-8 чел | ~40-60 |
|
||
| Средние ответы | 4-6 чел | ~20-30 |
|
||
| Эмбеддинги | 10+ чел | ~800+ |
|
||
|
||
---
|
||
|
||
## Файлы изменены
|
||
|
||
- `backend/cmd/llm-svc/main.go` — роутинг по тарифу, /embed endpoint
|
||
- `backend/internal/llm/ollama.go` — qwen3.5:9b, убран токен, GenerateEmbedding
|
||
- `backend/internal/llm/client.go` — убран OllamaToken
|
||
- `backend/deploy/k8s/ollama.yaml` — GPU + параллельность
|
||
- `backend/deploy/k8s/ollama-models.yaml` — без авторизации
|
||
|
||
---
|
||
|
||
## Сервер
|
||
- IP: 5.187.77.89
|
||
- GPU: RTX 4060 Ti 16GB
|
||
- Site: https://gooseek.ru
|