Nem „AI-hype" fejezet: azt nézzük meg, mely darabok illeszkednek a te SaaS-odba, mi az, amit a platform tényleg jobban ad, mint a szokásos „hívjuk az OpenAI-t a szerverről" megoldás — és mi az, amiért nem érdemes ideköltözni.
| Termék | Mit csinál | AWS-megfelelő |
|---|---|---|
| Workers AI | modell-inference bindingként: env.AI.run(...) — nyílt modellek (LLM-ek, embedding, kép, beszéd) a Cloudflare GPU-in | Bedrock |
| AI Gateway | proxy bármelyik AI-szolgáltató elé: log, cache, rate limit, költségkövetés, fallback — egyetlen endpointon | nincs igazi párja |
| Vectorize | vektor-adatbázis (embedding-tárolás + hasonlósági keresés) | OpenSearch / pgvector |
| AI Search | kulcsrakész RAG: feltöltöd a dokumentumokat, indexeli, és kereshetsz/kérdezhetsz rá | Kendra / Bedrock KB |
| Agents SDK | állapotos, hosszú életű agentek Durable Objectsen, MCP-támogatással | Bedrock Agents |
| Browser Rendering | fejléc nélküli böngésző Workersből (Puppeteer-szerű API): screenshot, PDF, scraping, agent-eszköz | saját Lambda + Chromium |
A modell-futtatás ugyanaz a bindings-élmény, mint minden más (1. modul): nincs API-kulcs, nincs endpoint, nincs SDK — a binding maga a hozzáférés.
wrangler.jsonc{ "ai": { "binding": "AI" } }
server/api/summarize.post.ts (Nuxt)
export default defineEventHandler(async (event) => {
const { env } = event.context.cloudflare;
const { text } = await readBody(event);
const res = await env.AI.run("@cf/meta/llama-3.3-70b-instruct-fp8-fast", {
messages: [
{ role: "system", content: "Foglald össze magyarul, 3 mondatban." },
{ role: "user", content: text },
],
});
return { summary: res.response };
});
A katalógusban szöveg-generáló modellek (köztük function calling / reasoning képesek), embedding-modellek, kép- és beszédmodellek vannak — a lista folyamatosan bővül, ezért konkrét modellnevet mindig a friss katalógusból vegyél. Elérhető három módon: binding, REST API, illetve OpenAI-kompatibilis endpoint (/v1/chat/completions) — ez utóbbi azért fontos, mert a meglévő OpenAI-SDK-s kódod base URL-cserével átirányítható.
Ez az a darab, amit ma is bevezethetnél, még mielőtt bármit Cloudflare-re költöztetnél: egy proxy az AI-hívásaid elé, ami cache-el, logol, rate limitel, és költséget mér — szolgáltatófüggetlenül. A kódváltozás egyetlen sor, a base URL:
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: env.OPENAI_API_KEY,
baseURL: `https://gateway.ai.cloudflare.com/v1/${ACCOUNT_ID}/default/openai`,
});
// innentől minden hívás a Gatewayen megy át — a kód többi része változatlan
Mit nyersz vele konkrétan a te SaaS-odban:
A tipikus SaaS-igény: „a felhasználó kérdezhessen a saját dokumentumaiból / a súgónkból". Erre két szint van:
Feltöltöd a tartalmat, ő indexeli (beépített tárral és vektor-indexszel), te pedig keresel vagy kérdezel rá. Nem kell embedding-pipeline-t építened, chunkolni, vektor-indexet karbantartanod:
const instance = env.AI_SEARCH.get("tenant-acme-docs");
// feltöltés + indexelés
await instance.items.uploadAndPoll("onboarding.md", content);
// keresés / kérdés
const results = await instance.search({
messages: [{ role: "user", content: "hogyan hívok meg egy webhookot?" }],
});
Ami a te multitenant modelledbe illik: a namespace-binding futásidőben tud instance-okat létrehozni és kezelni — vagyis tenantonként külön tudásbázis, ugyanazzal a mintával, amit az 5b. modulban a per-tenant D1-eknél láttál. Az adatszeparáció így nem prompt-fegyelem kérdése, hanem architektúra.
Ha saját chunkolási és rangsorolási logikád van (vagy a beágyazást máshol állítod elő), a Vectorize adja a nyers vektor-adatbázist: index létrehozás, upsert, lekérdezés metaadat-szűréssel. Tipikus párosítás: Workers AI embedding-modell → Vectorize index → a találatokat a promptba. Multitenantnál a metaadat-szűrés (tenant_id) vagy a külön indexek adják az izolációt — és ez ugyanaz a döntés, mint a shared vs. per-tenant DB (5b. modul).
Az „agent" itt nem marketingszó: az Agents SDK Durable Objectsre épül (7. modul), és pontosan azt adja, ami egy hosszú életű, állapotos AI-folyamathoz kell — mindegyik ismerős a kurzusból:
Mikor releváns ez neked? Nem a „csetablak a sarokban" funkcióhoz (arra elég egy Worker + AI Gateway). Akkor, ha az AI-funkciód több lépéses és hosszú: dokumentum-feldolgozó folyamat emberi jóváhagyással, onboarding-asszisztens, ami napokon át kísér egy tenantot, vagy háttér-agent, ami éjszaka végigmegy adatokon és javaslatokat készít.
Fejléc nélküli böngésző Workersből, Puppeteer-szerű API-val. Nem AI-funkció, de gyakran ezzel párosul (agent, ami weboldalt olvas). A te SaaS-odban viszont önmagában is hasznos, mert olyan feladatokat old meg, amikre eddig külön Lambda + Chromium kellett:
| Lépés | Mit csinálsz | Kockázat |
|---|---|---|
| 1. | AI Gateway a meglévő AI-hívásaid elé (base URL csere) — log, cache, költségkövetés azonnal | gyakorlatilag nulla |
| 2. | Olcsó feladatok átvitele Workers AI-ra (címkézés, összefoglalás, embedding), a drága érvelés marad a frontier-modellnél | alacsony — mérhető minőségi összevetéssel |
| 3. | AI Search tenantonkénti tudásbázissal, ha van dokumentum-alapú funkciód | közepes — adatszeparációt tervezni kell |
| 4. | Agents SDK, ha többlépéses, hosszú folyamat jön | közepes — DO-modellt érteni kell (7. modul) |
Mert szolgáltatófüggetlen: cache-t, rate limitet, logot, költségkövetést és fallbacket ad anélkül, hogy bármit átköltöztetnél. A kódban egyetlen dolog változik: a kliens baseURL-je a Gateway endpointjára mutat.
Ha nyílt modell is elég (összefoglalás, osztályozás, embedding, egyszerű extrakció), sok kis hívásod van és számít a latencia, és nem akarsz külön kulcsot/szerződést kezelni. Frontier-képességnél maradj a szolgáltatódnál — de Gatewayen keresztül.
Az AI Search kulcsrakész RAG: feltöltés, automatikus indexelés, keresés/kérdezés — nem kell embedding-pipeline. A Vectorize a nyers vektor-adatbázis, ha saját chunkolási/rangsorolási logikád van. Gyors indulásnak AI Search, teljes kontrollhoz Vectorize.
Ugyanaz a döntés, mint az adatbázisnál (5b. modul): vagy tenantonként külön AI Search instance / Vectorize index (erős izoláció), vagy közös index metaadat-szűréssel (tenant_id) — utóbbinál a szűrés helyessége kritikus, mert egy hiba más ügyfél adatát szivárogtatja.
Ha a folyamat hosszú életű és állapotos: több lépés, várakozás emberi jóváhagyásra, napokon átívelő kísérés, streamelt beszélgetés memóriával. A sima Worker állapotmentes; az Agents SDK Durable Objectsre épül, így kap saját tárat, címezhetőséget, WebSocketet és ütemezést.