[{"data":1,"prerenderedAt":771},["ShallowReactive",2],{"blog-replicate-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":23,"sources":30,"cover":61,"og":62,"expertise":63,"locales":64,"lang":67,"title":68,"description":69,"coverAlt":70,"metaTitle":71,"takeaways":72,"faq":78,"toc":91,"blocks":116,"others":498},"replicate","2026-05-22",10,"web",[9,10,11,12,13],"Model hosting","Serverless GPU","Diffusion","Async jobs","Webhooks",[15,16,17,18,19,20,21,22],"replicate api","replicate vs fal.ai","serverless gpu inference pricing","replicate webhooks","replicate cold start","replicate vs baseten","how to run an open source model in production","replicate prediction api",[24,27],{"name":25,"url":26},"Replicate","https:\u002F\u002Freplicate.com\u002Fdocs",{"name":28,"url":29},"Serverless computing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServerless_computing",[31,34,37,40,43,46,49,52,55,58],{"title":32,"url":33},"Replicate pricing","https:\u002F\u002Freplicate.com\u002Fpricing",{"title":35,"url":36},"Replicate docs: About predictions","https:\u002F\u002Freplicate.com\u002Fdocs\u002Ftopics\u002Fpredictions",{"title":38,"url":39},"Replicate docs: Create a prediction","https:\u002F\u002Freplicate.com\u002Fdocs\u002Ftopics\u002Fpredictions\u002Fcreate-a-prediction",{"title":41,"url":42},"Replicate docs: Prediction lifecycle","https:\u002F\u002Freplicate.com\u002Fdocs\u002Ftopics\u002Fpredictions\u002Flifecycle",{"title":44,"url":45},"Replicate docs: Rate limits","https:\u002F\u002Freplicate.com\u002Fdocs\u002Ftopics\u002Fpredictions\u002Frate-limits",{"title":47,"url":48},"Replicate docs: Data retention","https:\u002F\u002Freplicate.com\u002Fdocs\u002Ftopics\u002Fpredictions\u002Fdata-retention",{"title":50,"url":51},"Replicate docs: Verify webhooks","https:\u002F\u002Freplicate.com\u002Fdocs\u002Ftopics\u002Fwebhooks\u002Fverify-webhook",{"title":53,"url":54},"Replicate docs: Official models","https:\u002F\u002Freplicate.com\u002Fdocs\u002Ftopics\u002Fmodels\u002Fofficial-models",{"title":56,"url":57},"fal.ai pricing","https:\u002F\u002Ffal.ai\u002Fpricing",{"title":59,"url":60},"Baseten pricing","https:\u002F\u002Fwww.baseten.co\u002Fpricing\u002F","\u002Fimages\u002Fblog\u002Freplicate\u002Fcover.webp","\u002Fimages\u002Fblog\u002Freplicate\u002Fog.jpg","ai-engineer",[65,66,67],"en","de","hu","Replicate teszt: modell-API másodpercenkénti árazással, az élekkel együtt","A Replicate több ezer nyílt modellt tesz egyetlen predikciós API mögé, és a számítási idő másodpercével számol. Teszt a cold bootokról, verziódriftről és az egy órás törlésről.","Csúszda széles tálca felett, három kis négyzet különböző magasságban, kör az időre.","Replicate teszt: modellhosting másodpercenként · Balázs Csorba",[73,74,75,76,77],"A Replicate a nyilvános katalógus modelljeit hardveridő-másodpercben méri, és nem fizet, amíg egy megosztott modell áll. Ez olcsó az ingadozó terhelésre, drága mindenre, ahol a késleltetés számít.","Minden futás egy predikciós objektum fix állapotokkal, és a canceled és az aborted közötti különbség dönti el, fizetsz-e a lefutott számításért.","Az API-n létrehozott predikciók egy óra után törlődnek, a bemenetekkel és kimenetekkel együtt, így minden, amire szükség van, előtte ki kell másolni.","Csak a hivatalos modelleknek stabil az input-sémájuk. A közösségi modelleket a szerzőik tartják karban, ezekhez rögzített verzió és teszt kell.","A deployment rögzít egy verziót hardverre és példánytartományra. Ez megszünteti a cold bootokat, és helyettük fix óradíj marad.",[79,82,85,88],{"q":80,"a":81},"Valójában miért fizet a Replicate?","A nyilvános katalógus modelljeiért a futtatott hardver másodpercenkénti díját, ami egy kis CPU-nál 0,000025 $ és egy H100-nál 0,001525 $. A hivatalos modellek a kivételek: kimeneti képenként, videó másodpercenként vagy tokenenként számolnak. A privát modellek dedikált hardveren futnak, így az indítási és az üresjárati időért is fizetsz.",{"q":83,"a":84},"Olcsóbb-e a Replicate, mint GPU-t bérelni?","Az ingadozó, kis terhelésű munkáknál igen, mert csak a futás idejéért fizetsz, és a kapacitás megoszlik a felhasználók között. Néhány százalékos, egyenletes terhelés felett fordítva jár a kép: egy melegen tartott T4 példány 0,81 $ óránként, ami egy harmincnapos, soha nem üresjárati hónapban 583 $. Onnantól a RunPod vagy a Lambda fenntartott példánya a kedvezőbb szerződés.",{"q":86,"a":87},"Miért tart percekig a Replicate predikció, mielőtt elindul?","Ez cold boot. A Replicate lekapcsolja a nem használt modelleket, az újraindítás pedig több gigabájt súly betöltésével jár, ami a dokumentáció szerint több percet is tarthat. A hivatalos modellek melegen maradnak, a deployment pedig min_instances érték 1 mellett megszünteti a várakozást mindenk másnál.",{"q":89,"a":90},"Megtartja a Replicate a bemeneteket és a kimeneteket?","API-predikcióknál nem. A bemeneti paramétereket, a kimeneti értékeket, a kimeneti fájlokat és a logokat egy órával a létrehozás után törli, a dokumentáció szerint saját másolatot kell tartani. A webes felületről indított predikciók viszont korlátlan ideig megmaradnak, ami számít, ha ugyanazt a modellt mindkét úton használod.",[92,95,98,101,104,107,110,113],{"id":93,"title":94},"what-it-is","Mi a Replicate valójában",{"id":96,"title":97},"how-it-works","Hogyan fut egy predikció",{"id":99,"title":100},"getting-started","Első lépések",{"id":102,"title":103},"pricing","Mennyibe kerül",{"id":105,"title":106},"security-and-data","Adatmegőrzés, tokenek és webhookok",{"id":108,"title":109},"where-it-shingles","Hol fáj",{"id":111,"title":112},"verdict","Verdiktrum",{"id":114,"title":115},"sources","Források",[117,121,133,136,139,163,164,171,177,206,209,210,217,219,222,224,242,243,246,315,318,321,325,328,342,343,346,377,387,388,391,435,442,445,446,449,461,465,466],{"type":118,"content":119},"paragraph",[120],"A Replicate mennyezetes inferenciaplatform, amely több ezer nyílt súlyú és proprietáris modellt fog össze egyetlen predikciós API mögött, és csak azokra a másodpercekre számol, amíg egy gép tényleg futtatja a kérésed. Az álláspont egyszerű: annak a csapatnak, amely ma délután ki akarja próbálni egy új kép- vagy videomodellt anélkül, hogy GPU-t kellene beállítania, ez a legrövidebb út a piacon. Azoknak a terméknek, amelynek késleltetési kerete és kiszámítható számlája van, a másodpercenkénti árazás rossz szerződés, és a platform csak akkor védhető, ha a verzió rögzített, és a modell deploymenten fut.",{"type":118,"content":122},[123,124,128,129,132],"Valahol a saját GPU és a modellbeszállító között helyezkedik el. Az egyik oldalon versenytársa a ",{"tag":125,"href":57,"children":126},"a",[127],"fal.ai"," és a ",{"tag":125,"href":60,"children":130},[131],"Baseten",", amelyek inferenciát adnak el katalógus helyett; a másikon a GPU-közvetítőtől bérelt gép és a saját konténer. Amit nem vált fel, az a tokenenként számolt LLM-API. A Replicate szívesen szolgálja ki egy Llama modellt egy H100-on, de senki nem áraz egy chat-végpontot másodpercenkénti GPU-időre.",{"type":134,"level":135,"id":93,"text":94},"heading",2,{"type":118,"content":137},[138],"Három dolog oszt egy fiókot és egy API-t. Először a szerzőik által közzétett modellek nyilvános katalógusa: finomhangolások, közösségi implementációk, kutatási kód. Másodszor a hivatalos modellek halmaza, amelyeket maga a Replicate tart karban, a dokumentáció szerint több mint százat, amelyek mindig melegen állnak, kimeneti egységenként áraznak, és stabil input-sémájuk van. Harmadszor azok a privát modellek, amelyeket magad csomagolsz Cog-gal, és dedikált hardveren futtatod, ahol az példány teljes életidejéért fizetsz, nem az elvégzett munkáért.",{"type":140,"ordered":141,"items":142},"list",false,[143,145,147,149,159,161],[144],"Minden futás egy predikciós objektum, benne bemenetek, kimenetek, állapot, időzítési metrikák és cancel URL, bármit is csinál a modell.",[146],"Másodpercenkénti árazás a közzétett díjakkal: 0,000025 $ egy kis CPU-ra, 0,000225 $ egy T4-re, 0,001400 $ egy 80 GB A100-ra, 0,001525 $ egy H100-ra.",[148],"A hivatalos modellek kimenet szerint számolnak: flux-1.1-pro 0,04 $ képpenként, ideogram-v3-quality 0,09 $, deepseek-r1 3,75 $ millió input tokenre.",[150,154,155,158],{"tag":151,"children":152},"code",[153],"Aszinkron"," az alapértelmezés; szinkron a ",{"tag":151,"children":156},[157],"Prefer: wait"," headerrel lesz, ami 60 másodpercig tartja nyitva a kérést.",[160],"Előleg, nem előfizetés. A kredit egy évig érvényes a vásárlástól, és nem visszatéríthető.",[162],"Apache-2.0 kliens Node.jshez, Pythonhoz, Swifthez és Go-hoz, plusz a mcp.replicate.com hosztolt MCP-szervere, ami követi a HTTP API-t.",{"type":134,"level":135,"id":96,"text":97},{"type":118,"content":165},[166,167,170],"Egy predikció létrehozása azonnal visszaad egy objektumot ",{"tag":151,"children":168},[169],"starting"," állapottal, és ez az objektum marad a munkaegység a futás idejére. Három dönti el, majd meddig vársz: hogy a modell meleg-e, mennyi ideig fut maga a modell, és hogy pollolsz, nyitva tartod a HTTP kapcsolatot, vagy egy webhookra vársz.",{"type":172,"src":173,"alt":174,"wide":175,"caption":176},"image","\u002Fimages\u002Fblog\u002Freplicate\u002Fdiagram-7.webp","A Replicate predikciós életciklusa Egy predikció létrejön, a starting állapotból processingbe lép. A processing három végállapot egyikében ér véget: succeeded, canceled ha a határidő a futás közben lejárt, vagy failed. Ha a határidő a kezdés előtt jár le, a predikció aborted állapotban végződik, ami nem számítódik.",true,"Egy predikció létrejön, elindul, fut, majd négy végállapot egyikében ér véget. A költség szempontjából a különbség a canceled és az aborted között döntő: az előbbi a futás idejéig számít, az utóbbi semmit.",{"type":118,"content":178},[179,180,182,183,186,187,190,191,194,195,194,198,201,202,205],"Az állapotok kevesek, és a működési információt hordozzák. A ",{"tag":151,"children":181},[169]," normálisan jóval egy másodpercnél rövidebb; ha tovább tart, az cold boot, és több gigabájt súly betöltése több percet is vehet. A ",{"tag":151,"children":184},[185],"processing"," a modell saját ",{"tag":151,"children":188},[189],"predict()"," metódusa. Utána a ",{"tag":151,"children":192},[193],"succeeded",", ",{"tag":151,"children":196},[197],"failed",{"tag":151,"children":199},[200],"canceled"," vagy ",{"tag":151,"children":203},[204],"aborted"," állapot zárja a futást, és az utóbbi kettő közötti különbség az, hogy a gép elindult-e egyáltalán.",{"type":118,"content":207},[208],"A predikciók 30 perc után timeoutba ütköznek, és a predikcióhoz megadott határidő lehetővé teszi, hogy az alkalmazás hamarabb feladja. A számlázási szabály pontosan követi ezt a kettősséget: a kezdés előtt megszakított predikció nem számítódik, az utána megszakított a futott másodpercekért. Ez valóban jó tervezés, és egyben az egyetlen ok, hogy a határidőt bátran szigorúan lehet állítani.",{"type":134,"level":135,"id":99,"text":100},{"type":118,"content":211},[212,213,216],"A Node.js kliens az életciklust a ",{"tag":151,"children":214},[215],"run()"," hívásba zsugorítja. Egy olyan modellnél, amely másodpercek alatt végez, ez a teljes integráció, mást nem is kell írni.",{"type":151,"code":218},"import Replicate from \"replicate\";\nimport { writeFile } from \"node:fs\u002Fpromises\";\n\n\u002F\u002F Reads REPLICATE_API_TOKEN from the environment.\nconst replicate = new Replicate();\n\nconst [image] = await replicate.run(\"black-forest-labs\u002Fflux-schnell\", {\n  input: {\n    prompt: \"An astronaut riding a rainbow unicorn, cinematic lighting\",\n  },\n});\n\nawait writeFile(\"output.png\", image);\nconsole.log(\"saved output.png\");",{"type":118,"content":220},[221],"A hosszabb modellekhez az aszinkron út kell, és az eredményről csak egy webhook értesít hitelesen. Két részlet szokott hibát okozni. Az aláírás a nyers kérés törzsét fedi le, ezért az ellenőrzésnek minden JSON-feldolgozás előtt kell futnia. A kliens pedig a HMAC kiszámítása előtt visszaalakítja a bájttörzset sztringgé, ami csendben minden aláírásellenőrzést törne.",{"type":151,"code":223},"import express from \"express\";\nimport Replicate from \"replicate\";\nimport { createHmac, timingSafeEqual } from \"node:crypto\";\n\nconst replicate = new Replicate();\nconst app = express();\n\n\u002F\u002F Verify first, parse second: the signature covers the raw body bytes.\napp.post(\"\u002Fwebhook\", express.raw({ type: \"application\u002Fjson\" }), (req, res) => {\n  const key = process.env.REPLICATE_WEBHOOK_KEY.replace(\"whsec_\", \"\");\n  const signed = `${req.headers[\"webhook-id\"]}.${req.headers[\"webhook-timestamp\"]}.${req.body}`;\n  const expected = createHmac(\"sha256\", key).update(signed).digest(\"base64\");\n  const seen = String(req.headers[\"webhook-signature\"]).split(\" \").map((p) => p.split(\",\")[1]);\n  const valid = seen.some((sig) => {\n    const a = Buffer.from(sig), b = Buffer.from(expected);\n    return a.length === b.length && timingSafeEqual(a, b);\n  });\n  if (!valid) return res.status(401).end();\n\n  const prediction = JSON.parse(String(req.body));\n  res.sendStatus(204); \u002F\u002F Replicate retries terminal webhooks on 4xx and 5xx.\n  console.log(prediction.id, prediction.status);\n});\n\napp.post(\"\u002Fimage\", async (req, res) => {\n  const prediction = await replicate.predictions.create({\n    model: \"black-forest-labs\u002Fflux-schnell\",\n    input: { prompt: req.body.prompt },\n    webhook: \"https:\u002F\u002Fexample.com\u002Fwebhook\",\n    webhook_events_filter: [\"completed\"],\n  });\n  res.json({ id: prediction.id });\n});",{"type":225,"variant":226,"title":227,"body":228},"callout","note","A nyitva tartott kapcsolat a legolcsóbb és a legrosszabb integráció",[229],[230,232,233,236,237,201,239,241],{"tag":151,"children":231},[157]," alapértelmezés szerint 60 másodpercig tartja nyitva a kérést, és a header értéket fogad, tehát a ",{"tag":151,"children":234},[235],"Prefer: wait=5"," rövidebb keretet ad. Utána a válasz ",{"tag":151,"children":238},[169],{"tag":151,"children":240},[185]," állapottal érkezik, és úgyis pollolni kell.",{"type":134,"level":135,"id":102,"text":103},{"type":118,"content":244},[245],"A nyilvános katalógus másodpercenként méri a számítási időt, és az ár a hardverhez tartozik, nem a modellhez. A közzétett táblázat óradíjat is számít ki minden arányhoz, ami az összehasonlításhoz jó, de nem ezt számítják. A megosztott kapacitáson az indítási és az üresjárati idő ingyenes, csak a feldolgozás számít.",{"type":247,"head":248,"rows":257},"table",[249,251,253,255],[250],"Hardver",[252],"Másodperc",[254],"Óra",[256],"Memória",[258,269,280,289,298,307],[259,263,265,267],[260],{"tag":151,"children":261},[262],"cpu-small",[264],"0,000025 $",[266],"0,09 $",[268],"2 GB RAM, 1 vCPU",[270,274,276,278],[271],{"tag":151,"children":272},[273],"cpu",[275],"0,000100 $",[277],"0,36 $",[279],"8 GB RAM, 4 vCPU",[281,283,285,287],[282],"Nvidia T4",[284],"0,000225 $",[286],"0,81 $",[288],"16 GB VRAM",[290,292,294,296],[291],"Nvidia L40S",[293],"0,000975 $",[295],"3,51 $",[297],"48 GB VRAM",[299,301,303,305],[300],"Nvidia A100 80 GB",[302],"0,001400 $",[304],"5,04 $",[306],"80 GB VRAM",[308,310,312,314],[309],"Nvidia H100",[311],"0,001525 $",[313],"5,49 $",[306],{"type":118,"content":316},[317],"A hivatalos modellek megtörik ezt a mintát, és innen lesz kiszámítható a számla. A flux-1.1-pro 0,04 $ kimeneti képenként, a flux-schnell 3,00 $ ezer képenként, az ideogram-v3-quality 0,09 $, a deepseek-r1 pedig tokenenként. Minden privát modell visszafordítja ezt: dedikált hardveren fut, és az indítási, az üresjárati és az aktív időért egyaránt fizetsz, tehát egy példány akkor is pénzbe kerül, ha egész délután senki nem hívja.",{"type":118,"content":319},[320],"Előre fizetsz. A hitelt előre vásárolod, a használat levon belőle, egy évig érvényes, és nem visszatéríthető. Ha az egyenleg nulla, a futó infrastruktúrát lekapcsolják, és új munka nem indul. Az a predikció, amely túllépi a hitelet, a hónap végén a megadott fizetési eszközből számítanak le. Van automatikus feltöltés, a dokumentált minimum 5 $ küszöb és 15 $ feltöltés, és ez a legolcsóbb védelem a megfojtott kérések sora ellen.",{"type":134,"level":322,"id":323,"text":324},3,"deployments","Deploymentek és cold bootok",{"type":118,"content":326},[327],"Egy deployment egy modellverziót rögzít egy hardvertípushoz és egy példánytartományhoz, és egyszerre válaszol a cold boot és az üresjárati költség kérdésére. Az ár nyílt: egy melegen tartott T4 0,81 $ óránként, vagyis 583 $ egy harmincnapos hónapban, amely sosem üresjárat, szemben a nullával ugyanerre a modellre, ha napi száz hívás fut rajta megosztott kapacitáson. A deployment itt megszűnik rugalmas lenni, és a belső költségtétel lesz.",{"type":140,"ordered":141,"items":329},[330,332,338,340],[331],"Rögzítsd a tesztelt verziót. Egy új modellverzió így nem változtathatja meg a viselkedést terhelés alatt.",[333,334,337],"Állítsd ",{"tag":151,"children":335},[336],"min_instances"," értékét 1-re, és a cold boot, a többperces súlybetöltéssel együtt, megszűnik.",[339],"A dedikált hardver nem jelent várakozó sor más felhasználóktól, de minden üresjárati órát fizetni kell.",[341],"Ugyanez a hasadás választja el a hivatalos modelleket, amelyeket a Replicate tart karban és melegen tart, a közösségi modellektől, amelyeket a szerzőik tartanak, és amelyek hidegen indulhatnak.",{"type":134,"level":135,"id":105,"text":106},{"type":118,"content":344},[345],"Az API-n átmenő minden alapértelmezés szerint illékony. Az API-n létrehozott predikcióknál a dokumentáció szerint a bemeneti paramétereket, a kimeneti értékeket, a kimeneti fájlokat és a logokat egy óra után eltávolítják, és saját másolatot kell tartani. A webes felületen létrehozott predikciók viszont korlátlan ideig megmaradnak. Ez az aszimmetria a dokumentáció legmeglepőbb működési ténye, mert ugyanaz a modell két nagyon különböző megőrzési szabály alá kerülhet attól függően, melyik felületet használták.",{"type":140,"ordered":141,"items":347},[348,354,356,369,375],[349,350,353],"Az API-tokenek 40 karakteres, ",{"tag":151,"children":351},[352],"r8_"," előtagú stringek, bearer tokenként mennek, környezetenként nevezhetők, és egyenként visszavonhatók.",[355],"A Replicate átnézi a nyilvános repókat a kiszivárgott tokenek után, és az kompromittáltakat automatikusan letiltja, magyarázó e-maillel. Kényelmes, de egyben olyan út is, amelyen egy téves riasztás megállítja a produkciót.",[357,358,194,361,364,365,368],"A webhookok hordoznak ",{"tag":151,"children":359},[360],"webhook-id",{"tag":151,"children":362},[363],"webhook-timestamp"," és ",{"tag":151,"children":366},[367],"webhook-signature"," mezőt; a hitelesített tartalom a pontokkal összefűzött három, HMAC-SHA256 aláírással.",[370,371,374],"Az aláírási kulcs a ",{"tag":151,"children":372},[373],"GET \u002Fv1\u002Fwebhooks\u002Fdefault\u002Fsecret"," végpontjáról jön, és a dokumentáció cache-elést javasol neki kiszolgálásonkénti lekérés helyett.",[376],"A limitek 600 predikciólétrehozás percenként és 3000 kérés percenként minden más végponton, 429-es választesttel, amely megnevezi az újraengedélyezési ablakot.",{"type":225,"variant":378,"title":379,"body":380},"warn","Először a webhook-kezelő legyen idempotens",[381],[382,383,386],"A terminális webhookokat exponenciális visszacsúszással ismétli, az utolsó próbálkozás körülbelül egy perccel a befejezés után, és a dokumentáció szerint ugyanaz a webhook többször is érkezhet, a sorrend pedig nem garantált. Az a kezelő, amely exactly-once-ra épít, vagy elveszít, vagy dupláz munkát. Kulcsolj a ",{"tag":151,"children":384},[385],"prediction.id"," mezőre, és mindent hagyj figyelmen kívül, ami végállapot után érkezik.",{"type":134,"level":135,"id":108,"text":109},{"type":118,"content":389},[390],"A katalógus a termék, és a katalógus a kockázat. Egy közösségi modell egy idegen által közzétett konténer: az input-séma verziók között megváltozhat, a szerzője eltűnhet, és maga a Replicate dokumentációja szerint a közösségi modelleknél eltérő lehet a stabilitás, a dokumentáció és a támogatás szintje. Csak a hivatalos modelleknek van stabil API-juk, és amit a vevő lát, annál a rögzített verzió és egy teszt a minimum.",{"type":247,"head":392,"rows":398},[393,395,396,397],[394],"Dimenzió",[25],[127],[131],[399,408,417,426],[400,402,404,406],[401],"Számlázási egység",[403],"Számítási másodperc; hivatalos modellek kimenet szerint",[405],"Másodperc, kép vagy 1000 token szerint",[407],"1 millió token vagy GPU-óra szerint",[409,411,413,415],[410],"Katalógus",[412],"Több ezer közösségi és hivatalos modell",[414],"Kis, kurált optimalizált modellkészlet",[416],"Főként azok a modellek, amiket te deployolsz",[418,420,422,424],[419],"Saját modell",[421],"Cog-konténer, nyilvános vagy privát",[423],"Deploymentek a fal GPU-flottáján",[425],"Dedikált deploymentek; VPC és saját hosztolás a legfelső szinten",[427,429,431,433],[428],"Serverless GPU-arány",[430],"Nincs bérleti pool, csak másodperces díjak",[432],"H100 2,49 $ óránként saját deploymenten",[434],"Deploymentenként kérendő",{"type":118,"content":436},[437,438,441],"A második probléma, hogy a számla soha nem az a számla, amit a pénzügy vár. Egy 0,04 $ a képpenkénti és egy 5,49 $ óránkénti modell is egy oda nem figyelő ciklus mögé kerülhet, és az egyetlen futásszintű adat, amit az API visszaad, az egy adott predikció ",{"tag":151,"children":439},[440],"metrics"," objektuma, amit alapból senki nem aggregál.",{"type":118,"content":443},[444],"Harmadszor, a klienskönyvtárak egyenetlenek. A Node.js kliens 1.4.0-nál, a Python kliens 1.0.7-nél jár, a 2.0 sorozat pedig beta helyett kiadásra vár. Egy Python szolgáltatásnak közvetlenül a HTTP API-t érdemes hívnia várakozás helyett, és ezt az OpenAPI séma meg a llms.txt végpont kellemetlen egyszerűvé teszi.",{"type":134,"level":135,"id":111,"text":112},{"type":118,"content":447},[448],"A Replicate a legjobb ár-érték egyetlen konkrét problémára: nyílt modellt futtatni GPU nélkül. Minden másra rosszul illeszkedik, és ennek oka strukturális, nem érettségi. A másodpercenkénti árazás a szolgáltató hardverkihasználását optimalizálja, és a te számlád ennek az optimalizálásnak a zajterme.",{"type":140,"ordered":175,"items":450},[451,453,455,457,459],[452],"Csapatok, amelyek egy új kép-, videó- vagy beszédmodellt prototipizálnak, és erre a hétre választ akarnak.",[454],"Csapatok, amelyek hajlandók rögzíteni egy verziót, stabilan tartani az input-sémát, és az egészet egy merev költségkeretbe zárni.",[456],"Mindenki, aki modellnagyobbonságot akar egy platform helyett, és elfogadja, hogy a katalógus nagy része karbantartás nélkül marad.",[458],"Ne válaszd interaktív végponthoz, ahol a farok-késleltetés termékfeltétel, és ne egyenletes, néhány százalékos kihasználás feletti terheléshez, ahol egy fenntartott GPU egyszerűen olcsóbb.",[460],"Ne válaszd, ha a bemeneti fájlok védett személyes adatot tartalmaznak, és az egyórás megőrzési ablak nem felel meg a saját előírásaidnak.",{"type":225,"variant":226,"body":462},[463],[464],"A katalógus szupermarket, a deployment pedig gépbérlet. Annak eldöntése, hogy melyikre építesz, a munka nagyobb része, és az API nem fogja meghozzni helyetted ezt a döntést.",{"type":134,"level":135,"id":114,"text":115},{"type":140,"ordered":175,"items":467},[468,471,474,477,480,483,486,489,492,495],[469],{"tag":125,"href":33,"children":470},[32],[472],{"tag":125,"href":36,"children":473},[35],[475],{"tag":125,"href":39,"children":476},[38],[478],{"tag":125,"href":42,"children":479},[41],[481],{"tag":125,"href":45,"children":482},[44],[484],{"tag":125,"href":48,"children":485},[47],[487],{"tag":125,"href":51,"children":488},[50],[490],{"tag":125,"href":54,"children":491},[53],[493],{"tag":125,"href":57,"children":494},[56],[496],{"tag":125,"href":60,"children":497},[59],[499,573,629,703],{"slug":500,"published":501,"minutes":6,"category":7,"tags":502,"keywords":508,"about":520,"sources":529,"cover":566,"og":567,"expertise":568,"locales":569,"lang":67,"title":570,"description":571,"coverAlt":572},"schema-org-structured-data-b2b-shop","2026-10-17",[503,504,505,506,507],"Schema.org","Structured data","B2B e-commerce","Technical SEO","Nuxt",[509,510,511,512,513,514,515,516,517,518,519],"schema.org b2b shop","product structured data b2b","merchant listing structured data","product snippet vs merchant listing","unitpricespecification referencequantity","productgroup variants structured data","organization schema vatid","b2b prices behind login seo","json-ld nuxt schema org","merchant return policy structured data","mpn gtin structured data",[521,523,526],{"name":503,"url":522},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSchema.org",{"name":524,"url":525},"JSON-LD","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJSON-LD",{"name":527,"url":528},"Business-to-business","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBusiness-to-business",[530,533,536,539,542,545,548,551,554,557,560,563],{"title":531,"url":532},"Google Search Central: Introduction to Product structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct",{"title":534,"url":535},"Google Search Central: Merchant listing (Product, Offer) structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fmerchant-listing",{"title":537,"url":538},"Google Search Central: Product snippet structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-snippet",{"title":540,"url":541},"Google Search Central: Product variant structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-variants",{"title":543,"url":544},"Google Search Central: Organization structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Forganization",{"title":546,"url":547},"Google Search Central: Merchant return policy structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Freturn-policy",{"title":549,"url":550},"Google Search Central: General structured data guidelines","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fsd-policies",{"title":552,"url":553},"Google Search Central: Generate structured data with JavaScript","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fgenerate-structured-data-with-javascript",{"title":555,"url":556},"Schema.org: Offer","https:\u002F\u002Fschema.org\u002FOffer",{"title":558,"url":559},"Schema.org: UnitPriceSpecification","https:\u002F\u002Fschema.org\u002FUnitPriceSpecification",{"title":561,"url":562},"Unhead: Product schema (defineProduct)","https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fschema-org\u002Fapi\u002Fschema\u002Fproduct",{"title":564,"url":565},"Nuxt SEO: Schema.org identity setup","https:\u002F\u002Fnuxtseo.com\u002Fdocs\u002Fschema-org\u002Fguides\u002Fsetup-identity","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fog.jpg","b2b-ecommerce-developer",[65,66,67],"Schema.org strukturált adatok B2B webshopokhoz: bejelentkezés mögötti árak, egységek és változatok","Termék-markup B2B shopokhoz: snippet vagy kereskedői lista, melyik ár, cikkszámok, egységárak, változatok, Organization és SSR Nuxtban.","Terméktéglalap vékony kerettel, alsó kis mezőjét alacsony fal takarja el.",{"slug":574,"published":501,"minutes":575,"category":7,"tags":576,"keywords":581,"about":593,"sources":601,"cover":623,"og":624,"expertise":568,"locales":625,"lang":67,"title":626,"description":627,"coverAlt":628},"ai-assistant-b2b-shop-customer-support",9,[505,577,578,579,580],"AI assistant","Customer support","LLM agents","EU AI Act",[582,583,584,585,586,587,588,589,590,591,592],"ai assistant b2b shop","ai customer support b2b ecommerce","llm chatbot order status","ai agent customer service tools","chatbot liability air canada","klarna ai assistant results","human handoff chatbot design","eu ai act chatbot disclosure","owasp excessive agency","ai support resolution rate","b2b customer portal chatbot",[594,597,600],{"name":595,"url":596},"Customer service","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCustomer_service",{"name":598,"url":599},"Chatbot","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FChatbot",{"name":527,"url":528},[602,605,608,611,614,617,620],{"title":603,"url":604},"Klarna: AI assistant handles two-thirds of customer service chats in its first month (press release, 2024)","https:\u002F\u002Fwww.klarna.com\u002Finternational\u002Fpress\u002Fklarna-ai-assistant-handles-two-thirds-of-customer-service-chats-in-its-first-month\u002F",{"title":606,"url":607},"Entrepreneur: Klarna is hiring customer service agents again, according to its CEO (May 2025)","https:\u002F\u002Fwww.entrepreneur.com\u002Fbusiness-news\u002Fklarna-ceo-reverses-course-by-hiring-more-humans-not-ai\u002F491396",{"title":609,"url":610},"ABA Business Law Today: BC tribunal confirms companies remain liable for information provided by AI chatbot","https:\u002F\u002Fwww.americanbar.org\u002Fgroups\u002Fbusiness_law\u002Fresources\u002Fbusiness-law-today\u002F2024-february\u002Fbc-tribunal-confirms-companies-remain-liable-information-provided-ai-chatbot\u002F",{"title":612,"url":613},"OWASP GenAI Security Project: LLM06:2025 Excessive Agency","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm062025-excessive-agency\u002F",{"title":615,"url":616},"OWASP GenAI Security Project: LLM05:2025 Improper Output Handling","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm052025-improper-output-handling\u002F",{"title":618,"url":619},"EU AI Act, Article 50: Transparency obligations","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F50\u002F",{"title":621,"url":622},"Intercom: Fin pricing and billable outcomes","https:\u002F\u002Ffin.ai\u002Fpricing","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fog.jpg",[65,66,67],"AI-asszisztens a B2B webshop ügyfélszolgálatához: eszközök, jogosultságok és átadás embernek","Hogyan építs AI ügyfélszolgálati asszisztenst B2B shophoz: mit automatizálj, eszközök ügyfélkontextusban, átadás embernek, AI Act és mérőszámok.","Magas fal keskeny réssel: nyíl halad át rajta a három négyzetből álló bekerített mezőbe, egy másik lefelé, egy tálca felé mutat.",{"slug":630,"published":501,"minutes":631,"category":7,"tags":632,"keywords":637,"about":649,"sources":659,"cover":696,"og":697,"expertise":698,"locales":699,"lang":67,"title":700,"description":701,"coverAlt":702},"vue-ai-chat-ui-streaming-accessibility",11,[633,507,634,635,636],"Vue","Accessibility","Streaming","AI chat",[638,639,640,641,642,643,644,645,646,647,648],"vue ai chat ui","nuxt llm streaming","sse vs fetch streaming","aria-live streaming text","accessible chat interface","abort fetch stream vue","dompurify markdown llm","role log chat","reduced motion chat ui","wcag 2.2 chat","screen reader streaming",[650,653,656],{"name":651,"url":652},"Web accessibility","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWeb_accessibility",{"name":654,"url":655},"Server-sent events","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServer-sent_events",{"name":657,"url":658},"Vue.js","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVue.js",[660,663,666,669,672,675,678,681,684,687,690,693],{"title":661,"url":662},"MDN: Using server-sent events","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FServer-sent_events\u002FUsing_server-sent_events",{"title":664,"url":665},"MDN: AbortController","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FAbortController",{"title":667,"url":668},"MDN: ReadableStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FReadableStream",{"title":670,"url":671},"MDN: TextDecoderStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FTextDecoderStream",{"title":673,"url":674},"MDN: ARIA log role","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAccessibility\u002FARIA\u002FReference\u002FRoles\u002Flog_role",{"title":676,"url":677},"W3C: Understanding SC 4.1.3 Status Messages","https:\u002F\u002Fwww.w3.org\u002FWAI\u002FWCAG22\u002FUnderstanding\u002Fstatus-messages.html",{"title":679,"url":680},"W3C WAI: What's new in WCAG 2.2","https:\u002F\u002Fwww.w3.org\u002FWAI\u002Fstandards-guidelines\u002Fwcag\u002Fnew-in-22\u002F",{"title":682,"url":683},"MDN: prefers-reduced-motion","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002F@media\u002Fprefers-reduced-motion",{"title":685,"url":686},"DOMPurify README","https:\u002F\u002Fgithub.com\u002Fcure53\u002FDOMPurify",{"title":688,"url":689},"markdown-it README","https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it",{"title":691,"url":692},"AI SDK docs: useChat","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-ui\u002Fchatbot",{"title":694,"url":695},"Vue docs: nextTick","https:\u002F\u002Fvuejs.org\u002Fapi\u002Fgeneral.html#nexttick","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fog.jpg","vue-nuxt-developer",[65,66,67],"AI-csevegő UI Vue-ban és Nuxtban: akadálymentes streaming","AI-csevegő Vue-ban vagy Nuxtban: fetch-stream, megszakítás és újrapróbálás, biztonságos markdown, aria-live bejelentések, billentyűzet és reduced motion.","Üzenetkártya villogó kurzorral, pontozott vonal hullámokká nyílik, mellette pipa.",{"slug":704,"published":501,"minutes":575,"category":7,"tags":705,"keywords":710,"about":722,"sources":732,"cover":765,"og":766,"expertise":698,"locales":767,"lang":67,"title":768,"description":769,"coverAlt":770},"llm-translation-pipeline-i18n",[706,707,708,633,709],"Translation","i18n","LLM","Localization",[711,712,713,714,715,716,717,718,719,720,721],"llm translation pipeline","icu messageformat placeholders","vue i18n llm translation","translation memory llm","glossary enforcement translation","german informal sie du","hungarian translation quality llm","structured output json translation","machine translation post-editing","locale file validation","cldr plural categories",[723,726,729],{"name":724,"url":725},"Internationalization and localization","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInternationalization_and_localization",{"name":727,"url":728},"ICU MessageFormat","https:\u002F\u002Funicode-org.github.io\u002Ficu\u002Fuserguide\u002Fformat_parse\u002Fmessages\u002F",{"name":730,"url":731},"Vue I18n","https:\u002F\u002Fvue-i18n.intlify.dev\u002F",[733,735,738,741,744,747,750,753,756,759,762],{"title":734,"url":728},"Unicode ICU User Guide: Formatting Messages",{"title":736,"url":737},"Vue I18n: Message Format Syntax","https:\u002F\u002Fvue-i18n.intlify.dev\u002Fguide\u002Fessentials\u002Fsyntax",{"title":739,"url":740},"Nuxt i18n: Getting started","https:\u002F\u002Fi18n.nuxtjs.org\u002Fdocs\u002Fgetting-started",{"title":742,"url":743},"Unicode CLDR: Plural rules","https:\u002F\u002Fcldr.unicode.org\u002Findex\u002Fcldr-spec\u002Fplural-rules",{"title":745,"url":746},"OpenAI: Structured outputs","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fstructured-outputs",{"title":748,"url":749},"DeepL API: Glossaries","https:\u002F\u002Fdevelopers.deepl.com\u002Fdocs\u002Fapi-reference\u002Fglossaries",{"title":751,"url":752},"W3C: Localization vs. internationalization","https:\u002F\u002Fwww.w3.org\u002FInternational\u002Fquestions\u002Fqa-i18n",{"title":754,"url":755},"GNU gettext manual","https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgettext\u002Fmanual\u002Fgettext.html",{"title":757,"url":758},"RFC 5646: Tags for Identifying Languages","https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc5646",{"title":760,"url":761},"Rat für deutsche Rechtschreibung","https:\u002F\u002Fwww.rechtschreibrat.com\u002F",{"title":763,"url":764},"Microsoft Writing Style Guide","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fstyle-guide\u002Fwelcome\u002F","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fog.jpg",[65,66,67],"LLM-fordítási pipeline i18n-hez: glosszárium, helyőrzők és review","Termék- és weboldalszövegek fordítása LLM-mel úgy, hogy a helyőrzők, a többes szám és a hangnem épen maradjon: glosszárium, ICU üzenetek, QA-ellenőrzések.","Három forráskártya, egy lefordított kártya glosszárium-szalaggal, majd ellenőrzött tábla.",1792261159951]