15. modulAI a Cloudflare platformon
Cloudflare for Devs · 15. modul

AI a Cloudflare platformon

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.

15.1A hat építőelem — és mire való melyik

TermékMit csinálAWS-megfelelő
Workers AImodell-inference bindingként: env.AI.run(...) — nyílt modellek (LLM-ek, embedding, kép, beszéd) a Cloudflare GPU-inBedrock
AI Gatewayproxy bármelyik AI-szolgáltató elé: log, cache, rate limit, költségkövetés, fallback — egyetlen endpointonnincs igazi párja
Vectorizevektor-adatbázis (embedding-tárolás + hasonlósági keresés)OpenSearch / pgvector
AI Searchkulcsraké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ássalBedrock Agents
Browser Renderingfejléc nélküli böngésző Workersből (Puppeteer-szerű API): screenshot, PDF, scraping, agent-eszközsaját Lambda + Chromium
A te Workered Nuxt API / agent Workers AI env.AI.run(model, …) AI Gateway cache · limit · log · fallback Vectorize / AI Search embedding · RAG CF GPU-k nyílt modellek OpenAI / Anthropic bármely szolgáltató Kulcs: a Gateway bármelyik útra rátehető — saját modell és külső szolgáltató elé egyaránt.
15/1. ábra — A darabok egymásra épülnek, de külön is használhatók: a leggyakoribb belépő az AI Gateway a meglévő OpenAI-hívásaid elé.

15.2Workers AI — inference bindingként

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ó.

Mikor éri meg a Workers AI a külső szolgáltató helyett? Ha (a) nyílt modell is elég a feladatra — összefoglalás, osztályozás, címkézés, embedding, egyszerű extrakció; (b) sok kis hívásod van, és a hálózati út számít (a modell ott fut, ahol a Workered); (c) nem akarsz kulcsokat és külön szolgáltatói szerződést kezelni. Ha viszont frontier-modell kell (bonyolult érvelés, hosszú kontextus, adott szolgáltató minősége), maradj annál — de tedd elé az AI Gatewayt.

15.3AI Gateway — a legjobb ár-érték a listán

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:

Belépő nulla kockázattal: a Gateway használatához nem kell semmit átköltöztetned. Ha a mai Node-appod OpenAI-t hív, csak a base URL változik — a Cloudflare-migráció nulladik lépése lehet, hasonlóan a 10. modul DNS/CDN-fázisához.

15.4RAG a gyakorlatban: Vectorize vs. AI Search

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:

AI Search — a kulcsrakész út

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.

Vectorize — ha te akarod kézben tartani

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).

15.5Agents SDK — ha nem chat, hanem folyamat kell

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.

15.6Browser Rendering — a „láthatatlan" hasznos darab

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:

15.7Bevezetési sorrend a te SaaS-odban

LépésMit csinálszKockázat
1.AI Gateway a meglévő AI-hívásaid elé (base URL csere) — log, cache, költségkövetés azonnalgyakorlatilag nulla
2.Olcsó feladatok átvitele Workers AI-ra (címkézés, összefoglalás, embedding), a drága érvelés marad a frontier-modellnélalacsony — mérhető minőségi összevetéssel
3.AI Search tenantonkénti tudásbázissal, ha van dokumentum-alapú funkciódközepes — adatszeparációt tervezni kell
4.Agents SDK, ha többlépéses, hosszú folyamat jönközepes — DO-modellt érteni kell (7. modul)
Amiért NE gyere ide: ha saját modellt tanítanál vagy finomhangolnál (ez nem a platform profilja); ha egy konkrét frontier-modell képességére épül a terméked, és a nyílt modellek nem érnek fel hozzá (akkor a Gateway a nyereség, nem az inference); ha nagy, GPU-igényes batch-feldolgozásod van (az máshova való — 10. modul: mi maradhat AWS-en). És a szokásos figyelmeztetés: az AI-modellek katalógusa és árazása gyorsan változik — döntés előtt a friss katalógust és árlistát nézd, ne egy fél éves blogposztot.

15.8Ellenőrizd magad

  1. Miért az AI Gateway a javasolt első lépés, és mit kell hozzá átírni a kódodban?
    Válasz

    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.

  2. Mikor válaszd a Workers AI-t külső szolgáltató helyett?
    Válasz

    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.

  3. Mi a különbség az AI Search és a Vectorize között, és melyiket mikor?
    Válasz

    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.

  4. Hogyan oldanád meg a tenant-izolációt egy dokumentum-alapú AI-funkciónál?
    Válasz

    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.

  5. Mikor kell Agents SDK, és miért nem elég egy sima Worker?
    Válasz

    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.

Előző14. modul — Alchemy: Infrastructure as TypeScript Következő 15b. modul — AI Gateway és AI Search a gyakorlatban