AI više nije "jednom mjesečno tipovi pišu blog post". Postaje arhitektura — pozivi prema LLM-u, vector baze za semantičko pretraživanje, embedding pipelines, agenti koji rade u pozadini. Ovo je vodič što treba znati za hosting modernih AI aplikacija u 2026.
Tipovi AI aplikacija i što svaka traži
1. LLM API proxy / chat agent
Najjednostavnije — frontend chat ili API endpoint koji prosljeđuje upit OpenAI/Anthropic/Mistral/lokalnom modelu, vraća odgovor. Većina infrastrukture ostaje na strani LLM providera.
Hosting potrebe: normalan web stack (PHP, Node, Python). Glavna stvar — dugi response timeouts (LLM odgovor može trajat 10-60s), streaming podrška (Server-Sent Events ili WebSockets za chunked response).
2. RAG (Retrieval-Augmented Generation)
LLM koji odgovara na pitanja iz tvoje baze znanja — npr. AI customer support koji zna sve iz tvojih KB članaka. Pipeline: korisnik pita → embedding upita → vector search nad tvojim dokumentima → top N rezultata se ubace u LLM prompt → LLM odgovara s kontekstom.
Hosting potrebe: web app + vector baza (Postgres s pgvector, Pinecone, Weaviate, Qdrant). Periodični embedding job za nove dokumente.
3. AI agent (autonomous)
Pozadinski proces koji izvršava više koraka — npr. agent koji čita maile, kategorizira, odgovara. Loop: thought → tool call → observation → ponovno.
Hosting potrebe: queue worker (Laravel Horizon, Sidekiq, Celery), perzistentne sesije, dugotrajni procesi (ne stateless funkcije).
4. Self-hosted LLM
Vlastiti Llama/Mistral/Qwen model na GPU serveru. Privacy, no API cost, ali ogroman trošak za infrastrukturu.
Hosting potrebe: NVIDIA GPU server (A100, H100, RTX 4090+), 32-256GB RAM, brzi NVMe, vLLM ili Ollama za serving.
Što razlikuje AI hosting od običnog
- Dugi timeoutovi. LLM odgovor 5-60 sekundi. Standardni 30s timeout web servera mora se podić na 120-300s, ili koristit streaming.
- Streaming response. Korisnici očekuju da vide odgovor kako se generira (chunk by chunk). Treba SSE ili WebSockets podrška na svim slojevima (PHP-FPM, nginx, Cloudflare).
- Veće CPU/RAM potrošnja po requestu. Embedding generacije, dokument parsiranje, tokenizacija su CPU-intenzivni.
- Vector storage. Vektor 1536-dimenzionalan po dokumentu × 100.000 dokumenata = nekoliko GB. Treba brza baza.
- Rate limiting prema vanjskim API-jima. OpenAI 10.000 RPM, ali tvoj sajt može impulsivno tražit više — treba queue + retry s exponential backoff.
- Trošak vidljiv u realnom vremenu. Svaki LLM poziv = trošak. Mora se mjeriti i alarmirati.
Vector baze — kako birat
Postgres + pgvector
Najjednostavnije za većinu slučajeva. Dodaš CREATE EXTENSION vector;, kreiraš tablicu s vector kolumnom, koristiš HNSW indeks za brzu pretragu.
Plus: jedna baza za sve (relational + vector), ACID, SQL upiti s vector join-ovima. Idealno do nekoliko milijuna vektora.
Minus: za >50M vektora performanse padaju u odnosu na specijalizirane baze.
Cijena: trošak Postgres servera (8GB RAM, 4 vCPU dovoljno za 1M vektora).
Qdrant
Open-source vector baza, samohostana ili managed cloud. Brza, dobre filtration features.
Plus: brza, payload filtering, samohostiv.
Minus: dodatna baza za održavanje uz primarnu.
Cijena: self-host besplatno (server cost). Cloud od ~25 EUR/mj.
Weaviate
Open-source, ima ugrađenu integraciju s OpenAI/Cohere/HuggingFace za embedding.
Plus: auto-embedding, GraphQL API.
Minus: složeniji setup.
Pinecone
Managed-only vector DB, fokus na enterprise.
Plus: nula održavanja, skalabilno, dobra dokumentacija.
Minus: vendor lock-in, skupo (~70+ USD/mj za production), podaci kod njih (GDPR razmišljanje).
Embedding pipeline
Da bi RAG radio, svaki tvoj dokument mora biti embedan (pretvoren u vektor) i pohranjen u vector bazi. Pipeline:
- Chunking — razbij dokument na chunkove (500-1500 tokena po chunku, s overlapom 100-200 tokena).
- Embedding — pozovi embedding API (OpenAI text-embedding-3-small, Cohere, Voyage AI). 100k tokena = ~0.005 EUR.
- Storage — upiši vector + metadata (source, chunk_id, date) u bazu.
- Re-embedding kad se dokument promijeni — delete stari, embed novi.
Pipeline mora biti pozadinski (queue worker), inače blokiraš web request 30+ sekundi po dokumentu.
Server arhitektura za AI
Minimum (chat agent + RAG do 100k dokumenata)
- Web server: 8 vCPU, 16GB RAM, NVMe
- Postgres + pgvector: 4 vCPU, 8GB RAM, 100GB NVMe
- Redis (queue + cache): 2 vCPU, 2GB RAM
- Trošak: 60-120 EUR/mj na managed VPS
Mid (više korisnika, više dokumenata, agenti)
- Load-balanced 2x web server
- Postgres pgvector cluster (replicaiton): 16GB RAM
- Redis cluster
- Queue worker pool (Laravel Horizon)
- Trošak: 250-500 EUR/mj
Self-hosted LLM (GPU)
- NVIDIA A100 80GB ili H100 server
- vLLM ili Ollama za serving
- Inference latency: 30-200 tokena/sec ovisno o modelu
- Trošak: 1000-3000 EUR/mj za dedicated GPU
Streaming — implementacija
LLM API vrača chunkove kako ih generira. Tvoj backend mora ih streamati klijentu:
- Laravel:
return response()->stream(...)+ Server-Sent Events. - Node/Express:
res.write(chunk)+Content-Type: text/event-stream. - Cloudflare proxy: uključi "Disable Buffering" ili pošalji
X-Accel-Buffering: noheader. - nginx:
proxy_buffering off;u location bloku.
Praćenje troška
AI je jedini hosting use case gdje trošak skalira s prometom u realnom vremenu. Mora se mjerit:
- Po requestu: input tokens, output tokens, model used, trošak EUR.
- Po korisniku: dnevni/mjesečni limit (npr. 100k tokena po userčiku/mjesec).
- Alarm: ako dnevni trošak iznad X, pošalji notif (cron + Telegram bot ili Sentry).
Postavi hard limit na API ključ kod OpenAI/Anthropic — npr. 100 USD/mj. Inače runaway loop može potrošit 1000 USD prije nego primjetiš.
Sigurnost i GDPR
- API ključ skriven server-side — nikad u frontend kodu.
- Rate limit po korisniku/IP-u — sprječava trošenje kvote.
- Prompt injection obrana — sanitiziraj korisnički input prije slanja LLM-u.
- GDPR: ako šalješ osobne podatke u OpenAI, treba DPA s njima. Anthropic, OpenAI, Mistral imaju EU DPA dokumente. Self-hosted LLM elimina ovaj problem.
- Logging: ne logiraj cijele promptove ako sadrže PII. Hash ili pseudo-anon.
Usporedba modela (rugruba)
| Model | Provider | Brzina | Kvaliteta | Cijena (input/output po 1M tokena) |
|---|---|---|---|---|
| GPT-4.5 | OpenAI | srednje | vrhunska | ~2 / 8 EUR |
| Claude Sonnet 4.6 | Anthropic | brza | vrhunska | ~2.5 / 12 EUR |
| Mistral Large | Mistral (EU) | brza | vrlo dobra | ~1.5 / 4 EUR |
| Llama 3.x (self-host) | tvoj GPU | ovisi | vrlo dobra | fiksni server cost |
WMD i AI hosting
WMD ima dedicated VPS i managed VPS planove pogodne za AI workloadove — sa NVMe storage-om, dovoljno RAM-a za pgvector, i podrška za WebSockets/SSE streaming na nivou web servera. Za klijente koji grade AI agente postavljamo Postgres + pgvector + Redis stack, queue worker setup (Horizon ili Sidekiq), monitoring trošak po requestu. Za self-hosted LLM klijente nudimo GPU server quotes (dedicated GPU instance, partner DC ovisno o regiji). EU DPA dokumentacija za OpenAI/Anthropic/Mistral integracije ako trebaš.
FAQ
Treba li mi GPU za RAG? Ne. Embedding ide kroz API (OpenAI), retrieval kroz pgvector na CPU. GPU treba samo za self-hosted LLM.
Koja je razlika između embedding i chat modela? Embedding model pretvori tekst u vektor (number array) za pretragu. Chat model generira tekst kao odgovor. Različite cijene, različite API-je.
Kako spriječit prompt injection? Filter user input (regex za "ignore previous instructions" tipa fraza), koristi system prompts s jasnim granicama, izolacija agent contexta, audit log.
Cloudflare blokira streaming odgovor — što sad? Provjeri da nije "Auto Minify" upaljen, dodaj header X-Accel-Buffering: no, ili koristi WebSockets umjesto SSE-a.
Kolika je latencija kod Mistral EU API-ja? Slično OpenAI-u (200-800ms za prvi token, ovisi o regiji).
Gradiš AI aplikaciju i trebaš infrastrukturu? WMD postavlja Postgres + pgvector + Redis + queue worker stack, optimizira nginx/PHP-FPM za streaming, postavlja monitoring trošak. Javi se preko kontakt forme.