Files
gooseek/CONTINUE.md
home 7a40ff629e
Some checks failed
Build and Deploy GooSeek / build-and-deploy (push) Failing after 8m25s
feat: LLM routing by tier (free→Ollama, pro→Timeweb)
- 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
2026-03-03 02:25:22 +03:00

100 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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