[{"data":1,"prerenderedAt":608},["ShallowReactive",2],{"blog-ai-assistant-b2b-shop-customer-support-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":26,"sources":36,"cover":58,"og":59,"expertise":60,"locales":61,"lang":64,"title":65,"description":66,"coverAlt":67,"metaTitle":68,"takeaways":69,"faq":75,"toc":91,"blocks":119,"others":366},"ai-assistant-b2b-shop-customer-support","2026-10-17",9,"web",[9,10,11,12,13],"B2B e-commerce","AI assistant","Customer support","LLM agents","EU AI Act",[15,16,17,18,19,20,21,22,23,24,25],"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",[27,30,33],{"name":28,"url":29},"Customer service","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCustomer_service",{"name":31,"url":32},"Chatbot","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FChatbot",{"name":34,"url":35},"Business-to-business","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBusiness-to-business",[37,40,43,46,49,52,55],{"title":38,"url":39},"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":41,"url":42},"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":44,"url":45},"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":47,"url":48},"OWASP GenAI Security Project: LLM06:2025 Excessive Agency","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm062025-excessive-agency\u002F",{"title":50,"url":51},"OWASP GenAI Security Project: LLM05:2025 Improper Output Handling","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm052025-improper-output-handling\u002F",{"title":53,"url":54},"EU AI Act, Article 50: Transparency obligations","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F50\u002F",{"title":56,"url":57},"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","b2b-ecommerce-developer",[62,63,64],"en","de","hu","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.","AI-asszisztens B2B shop ügyfélszolgálathoz · Balázs Csorba",[70,71,72,73,74],"A B2B ügyfélszolgálati kérdések többsége lekérdezés a már meglévő rendszerekben: rendelési állapot, szállítási idő, számlák, tanúsítványok és pótalkatrészek.","Az asszisztens a weboldalad része, jogilag és hírnév szempontjából is; egy bíróság az Air Canadát tette felelőssé azért, amit a chatbotja mondott.","Minden eszköz a bejelentkezett ügyfél kontextusában fusson, az ügyfél-azonosító a sessionből jöjjön, soha ne a modell argumentumaiból.","Előbb csak olvasás, később megerősítéssel írási műveletek, az árak, ajánlatok és vállalások pedig maradjanak az embereknél.","Az emberhez vezető látható út a tervezés része, és az EU AI Act 2026. augusztus 2-től előírja, hogy közöld a felhasználóval: AI-jal beszél.",[76,79,82,85,88],{"q":77,"a":78},"Mit automatizálhat biztonságosan egy AI-asszisztens egy B2B shopban?","A meglévő rendszerekben egyértelmű választ adó lekérdezéseket: rendelési és szállítási állapot, számla- és jóváírásmásolatok, termékdokumentumok, például adatlapok és megfelelőségi nyilatkozatok, valamint a saját dokumentációd által megválaszolt kérdések. Az írási műveletek, például az újrarendelés vagy a visszaküldési kérelem később jöhetnek, kifejezett megerősítéssel.",{"q":80,"a":81},"Ki felel, ha az ügyfélszolgálati chatbot téves információt ad?","Általában a cég. A Moffatt kontra Air Canada ügyben egy kanadai testület elutasította azt az érvet, hogy a chatbot önálló entitás, és a légitársaságot tette felelőssé a weboldalán lévő összes információért, akár statikus oldalról, akár chatbotból származik. Körülbelül 650 kanadai dollárt ítélt meg kamattal és díjakkal.",{"q":83,"a":84},"Hogyan akadályozom meg, hogy az asszisztens más ügyfél rendeléseit mutassa?","Ne a modell döntse el, kinek az adatát olvassa. Az eszközök a szerveren, a hitelesített sessionből veszik az ügyfél- és cégazonosítót, és a backend API ugyanezt a hatókört kényszeríti ki. Az OWASP a túlzott ágencia elleni védekezésként említi a bővítmények felhasználói kontextusban történő futtatását.",{"q":86,"a":87},"Vonatkozik az EU AI Act egy webshop ügyfélszolgálati chatbotjára?","Az 50. cikk 2026. augusztus 2-től alkalmazandó: a szolgáltatóknak úgy kell kialakítaniuk az emberekkel közvetlenül kapcsolatba lépő AI-rendszereket, hogy az érintettek tudomást szerezzenek arról, hogy AI-jal kommunikálnak, kivéve, ha ez nyilvánvaló. A gyakorlatban: jelöld egyértelműen az asszisztenst a chatablakban.",{"q":89,"a":90},"Hogyan mérjem az asszisztenst?","A megoldott beszélgetéseket, a néhány napon belüli ismételt megkereséseket, az átadási arányt és az átadások minőségét mérd, ne csak a tehermentesítést. A szolgáltatók eltérően definiálják a megoldást; az Intercom például akkor számláz egy eredményt, ha az utolsó válasz után nem kérnek további segítséget.",[92,95,98,101,104,107,110,113,116],{"id":93,"title":94},"what-customers-ask","Mit kérdeznek valójában a B2B ügyfelek az ügyfélszolgálattól",{"id":96,"title":97},"lessons-from-consumer-support","Két tanulság a fogyasztói ügyfélszolgálatból",{"id":99,"title":100},"architecture","Architektúra: visszakeresés, eszközök és átadási útvonal",{"id":102,"title":103},"tools-in-customer-context","Az ügyfél kontextusában futó eszközök",{"id":105,"title":106},"what-stays-human","Mi marad az embereknél",{"id":108,"title":109},"handoff","Az átadás megtervezése",{"id":111,"title":112},"transparency-and-gdpr","Átláthatóság, AI Act és adatvédelem",{"id":114,"title":115},"measuring-success","Annak mérése, hogy segít-e",{"id":117,"title":118},"sources","Források",[120,124,127,130,133,185,188,189,192,195,202,203,206,215,224,225,228,231,234,242,243,251,264,267,268,271,274,275,283,291,292,295,332,340,341],{"type":121,"content":122},"paragraph",[123],"Egy B2B shop ügyfélszolgálata másképp néz ki, mint a fogyasztói. Beszerzők, technikusok és könyvelők írnak, akik pontosan tudják, mit akarnak: a 4711-es rendelés szállítási idejét, a múlt havi számla másolatát, egy alkatrész megfelelőségi nyilatkozatát, egy kifutott cikk utódját. A válaszok többsége már megvan az ERP-ben, a PIM-ben vagy egy dokumentumtárban; az időt a megtalálásuk és leírásuk viszi el.",{"type":121,"content":125},[126],"Ezért a B2B ügyfélszolgálat jó terep egy LLM-asszisztensnek, és egyben olyan hely, ahol a hibák drágák: egy rossz szállítási dátum leállít egy gyártósort, egy rossz ár vitás üggyé válik. Ez a bejegyzés leírja, hogyan tervezném meg egy ilyen asszisztenst egy B2B shophoz: milyen kéréseket vállaljon, hogyan kapják meg az eszközök a jogosultságaikat, hol maradnak bent az emberek a folyamatban, és miből látszik, hogy működik-e.",{"type":128,"level":129,"id":93,"text":94},"heading",2,{"type":121,"content":131},[132],"Mielőtt modellt vagy szolgáltatót választanál, sorolj be néhány száz valódi jegyet kéréstípusokba. Az általam fejlesztett B2B shopokban ugyanazok a kategóriák térnek vissza, és főleg abban különböznek, hol van a válasz, és mibe kerül egy rossz válasz.",{"type":134,"head":135,"rows":142},"table",[136,138,140],[137],"Kéréstípus",[139],"Hol van a válasz",[141],"Az asszisztens szerepe",[143,150,157,164,171,178],[144,146,148],[145],"Rendelési és szállítási állapot",[147],"ERP, csomagkövetés",[149],"Közvetlen válasz, csak olvasás",[151,153,155],[152],"Számla-, jóváírás-, szállítólevél-másolat",[154],"ERP vagy dokumentumarchívum",[156],"Közvetlen válasz letöltési linkkel",[158,160,162],[159],"Adatlapok, tanúsítványok, nyilatkozatok",[161],"PIM, DAM",[163],"Közvetlen válasz a dokumentumból",[165,167,169],[166],"Kompatibilitás, utódcikkek",[168],"PIM-kapcsolatok, műszaki dokumentáció",[170],"Javaslat forrással, szakértő felajánlása",[172,174,176],[173],"Visszaküldés és reklamáció",[175],"ÁSZF, ERP, minőségügy",[177],"Adatgyűjtés, ügy létrehozása, átadás",[179,181,183],[180],"Árak, ajánlatok, fizetési feltételek",[182],"Értékesítés, szerződések",[184],"Átadás; soha ne vállaljon",{"type":121,"content":186},[187],"Az első három sor olyan lekérdezés, amelynek egyetlen helyes válasza van egy általad irányított rendszerben. Itt hálálja meg magát az asszisztens. Az utolsó sor az, ahol soha nem szabad rögtönöznie.",{"type":128,"level":129,"id":96,"text":97},{"type":121,"content":190},[191],"A legismertebb számok a Klarnától származnak. 2024 februárjában a cég azt közölte, hogy AI-asszisztense az első hónapban 2,3 millió beszélgetést kezelt, az ügyfélszolgálati chatek kétharmadát, 700 teljes munkaidős ügyintéző munkájának megfelelően, 25%-kal kevesebb ismételt megkereséssel, és az ügyek 11 helyett 2 percen belül megoldódtak. 2025 májusában a vezérigazgató a Bloombergnek azt mondta, hogy a Klarna ismét embereket vesz fel az ügyfélszolgálatra, mert az olcsóbb AI-szolgáltatás gyengébb minőséget hozott, és az ügyfeleknek mindig tudniuk kell, hogy ha akarnak, emberrel is beszélhetnek.",{"type":121,"content":193},[194],"A második tanulság jogi. A Moffatt kontra Air Canada ügyben egy brit columbiai testület egy olyan chatbottal foglalkozott, amely azt mondta egy ügyfélnek, hogy utólag is igényelhet gyászeseti viteldíjat, ami ellentmondott a légitársaság egy másik oldalának. Az Air Canada azzal érvelt, hogy a chatbot önálló jogi személy, amely maga felel a tetteiért. A testület ezt elutasította, a légitársaságot tette felelőssé a weboldalán lévő összes információért, akár statikus oldalról, akár chatbotból származik, megállapította, hogy nem tett meg minden észszerű lépést a chatbot pontosságáért, és körülbelül 650 kanadai dollárt ítélt meg kamattal és díjakkal. Ez egy kis értékű ügyekben hozott döntés, nem precedens Ausztriában vagy Németországban, de az érvelés olyan, amilyet bármely bíróságtól várnék.",{"type":196,"variant":197,"title":198,"body":199},"callout","note","Az asszisztens a cég nevében beszél",[200],[201],"Úgy tervezd meg, mint egy új ügyfélszolgálati munkatársat, aki gyors, de nincs döntési jogköre: utánanézhet dolgoknak és elmagyarázhatja őket, de nem ígérhet olyan szállítási dátumot, amelyet az ERP nem mutat, nem adhat kedvezményt, és nem értelmezhet szerződést.",{"type":128,"level":129,"id":99,"text":100},{"type":121,"content":204},[205],"Egy B2B ügyfélszolgálati asszisztensnek háromféle képessége van, és ezek szétválasztása teszi biztonságossá. Visszakeresés a nyilvános tudásban: termékdokumentáció, GYIK, általános szerződési feltételek, szállítási szabályok. Eszközök a fiókadatokon: rendelések, szállítások, számlák, mind a bejelentkezett cégre korlátozva. És egy átadási eszköz, amely összefoglalóval ügyet hoz létre a jegykezelő rendszerben vagy a CRM-ben, hogy az átvevőnek ne nulláról kelljen kezdenie.",{"type":207,"attrs":208,"inner":212,"caption":213},"diagram",{"viewBox":209,"role":210,"aria-labelledby":211},"0 0 720 180","img","b2bsup-arch-t b2bsup-arch-d","\u003Ctitle id=\"b2bsup-arch-t\">B2B ügyfélszolgálati asszisztens architektúrája\u003C\u002Ftitle>\u003Cdesc id=\"b2bsup-arch-d\">A chat egy sessiont kezelő szerverútvonalon fut át; a modell visszakeresést, korlátozott fiókeszközöket és átadási eszközt használ.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"b2bsup-arch-ah\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\u003Cpath d=\"M0 0L10 5L0 10z\" class=\"d-head\" \u002F>\u003C\u002Fmarker>\u003C\u002Fdefs>\u003Crect x=\"20\" y=\"52\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"79\" y=\"86\" text-anchor=\"middle\" class=\"d-text\">Vásárló\u003C\u002Ftext>\u003Ctext x=\"79\" y=\"108\" text-anchor=\"middle\" class=\"d-small\">bejelentkezve\u003C\u002Ftext>\u003Cpath d=\"M138 90H158\" class=\"d-line\" marker-end=\"url(#b2bsup-arch-ah)\" \u002F>\u003Crect x=\"160\" y=\"52\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"220\" y=\"86\" text-anchor=\"middle\" class=\"d-text\">Szerverútvonal\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"108\" text-anchor=\"middle\" class=\"d-small\">session, korlátok\u003C\u002Ftext>\u003Cpath d=\"M279 90H299\" class=\"d-line\" marker-end=\"url(#b2bsup-arch-ah)\" \u002F>\u003Crect x=\"301\" y=\"52\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-fill-accent\" \u002F>\u003Ctext x=\"360\" y=\"86\" text-anchor=\"middle\" class=\"d-text\">Modell\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"108\" text-anchor=\"middle\" class=\"d-small\">tervez, válaszol\u003C\u002Ftext>\u003Cpath d=\"M419 90H439\" class=\"d-line\" marker-end=\"url(#b2bsup-arch-ah)\" \u002F>\u003Crect x=\"441\" y=\"52\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"500\" y=\"86\" text-anchor=\"middle\" class=\"d-text\">Eszközök\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"108\" text-anchor=\"middle\" class=\"d-small\">dok., rendelés, számla\u003C\u002Ftext>\u003Cpath d=\"M560 90H580\" class=\"d-line\" marker-end=\"url(#b2bsup-arch-ah)\" \u002F>\u003Crect x=\"582\" y=\"52\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"641\" y=\"86\" text-anchor=\"middle\" class=\"d-text\">Átadás\u003C\u002Ftext>\u003Ctext x=\"641\" y=\"108\" text-anchor=\"middle\" class=\"d-small\">ügy + összefoglaló\u003C\u002Ftext>",[214],"A session, nem a modell dönti el, kinek az adatait olvashatják az eszközök.",{"type":121,"content":216},[217,218,223],"A visszakeresési oldalra a szokásos RAG-mérnökség érvényes: chunkolás, hibrid keresés a cikkszámokhoz és újrarangsorolás, ahogy az ",{"tag":219,"to":220,"children":221},"link","\u002Fblog\u002Frag-pipeline-chunking-hybrid-search-reranking",[222],"éles RAG pipeline"," cikkben. Egy B2B-specifikus pont: az ÁSZF, a szállítási szabályok és a jótállási feltételek változnak, és az az asszisztens, amely a tavalyi visszaküldési határidőt idézi, kicsiben az Air Canada-eset. A dokumentumokat érvényességi dátummal és egyetlen aktuális verzióval indexeld, és az asszisztens hivatkozzon arra a dokumentumra, amelyből válaszolt.",{"type":128,"level":129,"id":102,"text":103},{"type":121,"content":226},[227],"Az OWASP LLM06:2025 Excessive Agency három kiváltó okot nevez meg: túlzott funkcionalitást, túlzott jogosultságot és túlzott autonómiát. A javasolt védekezések úgy hangzanak, mint egy ügyfélszolgálati asszisztens tervezési specifikációja: csak a szükséges eszközöket kínáld fel, minden eszköz legyen szűk, a bővítmények a felhasználó kontextusában, minimális jogosultsággal fussanak, a nagy hatású műveletekhez kelljen jóváhagyás, és a jogosultságot a downstream rendszerek kényszerítsék ki, ne a modellre bízd, mi engedélyezett.",{"type":121,"content":229},[230],"Kódban a szabály egyszerű: a modell átadhat rendelésszámot, ügyfélszámot soha. A szerver a sessionből veszi a cégazonosítót, a backend API pedig újra ellenőrzi. Egy termékértékelésbe csempészett utasítás nem veheti rá az asszisztenst, hogy más számláit olvassa, mert egyik eszköz sem fogad el ilyen paramétert.",{"type":232,"code":233},"code","\u002F\u002F server\u002Fapi\u002Fassistant.post.ts (Nuxt, AI SDK style tools)\nimport { z } from 'zod'\nimport { tool } from 'ai'\n\nexport default defineEventHandler(async (event) => {\n  const { user } = await requireUserSession(event)        \u002F\u002F 401 if not logged in\n  const companyId = user.companyId                          \u002F\u002F from the session, never from the model\n\n  const tools = {\n    getOrderStatus: tool({\n      description: 'Status, delivery date and tracking for one order of the current customer.',\n      inputSchema: z.object({ orderNumber: z.string().regex(\u002F^[0-9]{6,10}$\u002F) }),\n      execute: async ({ orderNumber }) => {\n        const order = await erp.getOrder(orderNumber, { companyId })   \u002F\u002F ERP enforces the scope too\n        if (!order) return { found: false }\n        return { found: true, status: order.status, confirmedDelivery: order.confirmedDate ?? null, tracking: order.trackingUrl ?? null }\n      },\n    }),\n    handOffToSupport: tool({\n      description: 'Create a support case with a summary when the request needs a person.',\n      inputSchema: z.object({ topic: z.enum(['price', 'complaint', 'return', 'technical', 'other']), summary: z.string().max(1500) }),\n      execute: async ({ topic, summary }) => crm.createCase({ companyId, userId: user.id, topic, summary }),\n    }),\n  }\n  \u002F\u002F ... streamText({ model, system, messages, tools, stopWhen: stepCountIs(5) })\n})\n",{"type":121,"content":235},[236,237,241],"Figyeld meg, mit ad vissza a rendelési eszköz: visszaigazolt szállítási dátumot vagy nullt. Ha az ERP-ben nincs visszaigazolt dátum, az asszisztens ezt mondja, ahelyett hogy becsülne. Ez az egy tervezési döntés megelőzi a B2B ügyfélszolgálati hibák legkárosabb osztályát. A tágabb identitáskérdésekről, a szolgáltatásfiókokról és a tokenek hatóköréről az ",{"tag":219,"to":238,"children":239},"\u002Fblog\u002Fai-agent-identity-least-privilege",[240],"AI-ágensek identitások"," cikkben írtam.",{"type":128,"level":129,"id":105,"text":106},{"type":121,"content":244},[245,246,250],"A bevezetés jogosultságok sorozata, nem egyetlen indulás. Csak olvasással kezdek: állapot, dokumentumok, számlák. Az írási műveletek, például egy korábbi rendelés megismétlése vagy visszaküldési kérelem nyitása ezután jönnek, és csak a felületen megjelenő kifejezett megerősítési lépéssel, amely pontosan mutatja, mi kerül beküldésre, a ",{"tag":219,"to":247,"children":248},"\u002Fblog\u002Fhuman-in-the-loop-ai-agents",[249],"human-in-the-loop jóváhagyási pontok"," mintája szerint. Néhány dolog soha nem kerül az asszisztenshez:",{"type":252,"items":253},"list",[254,256,258,260,262],[255],"A közzétett árlistán kívüli árak, kedvezmények és ajánlatok.",[257],"Az ERP által vissza nem igazolt szállítási vállalások.",[259],"Szerződések, jótállás vagy felelősség értelmezése.",[261],"Helyettesítő alkatrész műszaki jóváhagyása biztonságkritikus alkalmazáshoz.",[263],"Bármi, ami egy elégedetlen kulcsügyfelet érint; ügyfélszint szerint irányíts, ne csak téma szerint.",{"type":121,"content":265},[266],"Ezekben az esetekben az asszisztens dolga a tények összegyűjtése, vagyis a rendelésszám, a cikk, a mennyiség és hogy mi romlott el, majd az átadás összefoglalóval. Ez is értékes munka, és ezt veszik észre az ügyfelek, amikor a visszahívó munkatárs már ismeri az ügyet.",{"type":128,"level":129,"id":108,"text":109},{"type":121,"content":269},[270],"A Klarna vezérigazgatója egyértelműen megfogalmazta a követelményt: az ügyfeleknek tudniuk kell, hogy ha akarnak, mindig beszélhetnek emberrel. Egy B2B shopban ez a chatben folyamatosan látható „beszélni szeretnék egy munkatárssal” lehetőséget jelent, nem csak három sikertelen válasz után, valamint világos tájékoztatást az ügyfélszolgálati időről. Átadáskor az ügy tartalmazza a beszélgetést, a felhasznált eszközeredményeket és az asszisztens saját összefoglalóját, gépi generálásúként jelölve, hogy az ügyintéző ellenőrizze, ne vakon megbízzon benne.",{"type":121,"content":272},[273],"Két automatikus átadási kiváltó ok jól működik: a kérés a „marad az embereknél” lista valamelyik témájába esik, vagy az asszisztensnek nincs eszközeredménye vagy forrása a válaszához. A második a fontos. Az az asszisztens, amely azt mondja: „Nem találtam visszaigazolt szállítási dátumot, továbbítottam a rendelési csapatunknak”, hasznos; amelyik találgat, az felelősségi kockázat.",{"type":128,"level":129,"id":111,"text":112},{"type":121,"content":276},[277,278,282],"Az EU AI Act 50. cikke 2026. augusztus 2-től alkalmazandó. Első bekezdése előírja a szolgáltatóknak, hogy az emberekkel közvetlenül kapcsolatba lépő AI-rendszereket úgy alakítsák ki, hogy az érintettek tudomást szerezzenek arról, hogy AI-rendszerrel kommunikálnak, kivéve, ha ez egy észszerűen tájékozott, figyelmes és körültekintő személy számára nyilvánvaló. Egy névvel ellátott munkatárssal folytatott élő chatnek kinéző widget pontosan az az eset, amikor nem nyilvánvaló, ezért jelöld. Az ",{"tag":219,"to":279,"children":280},"\u002Fblog\u002Feu-ai-act-article-50-developer-checklist",[281],"50. cikkes ellenőrzőlistám"," a megvalósítás részleteit tárgyalja.",{"type":121,"content":284},[285,286,290],"A B2B nem jelenti azt, hogy nincs személyes adat. Az ügyfeleidnél dolgozó emberek kapcsolattartói nevei, e-mail-címei és szállítási címei a GDPR szerint személyes adatok, és a beszélgetésnapló tartalmazni fogja őket. Döntsd el az átiratok megőrzési idejét, azt, hogy mi jut el a modellszolgáltatóhoz és milyen adatfeldolgozási feltételekkel, valamint hogy kell-e adatvédelmi hatásvizsgálat; a ",{"tag":219,"to":287,"children":288},"\u002Fblog\u002Fdpia-llm-feature-worked-example",[289],"kidolgozott DPIA-példa"," éppen egy ügyfélszolgálati asszisztenst vesz esetként.",{"type":128,"level":129,"id":114,"text":115},{"type":121,"content":293},[294],"A tehermentesítési arány, vagyis azoknak a chateknek az aránya, amelyek soha nem jutnak el emberhez, az a szám, amelyet a szolgáltatók szeretnek, és amely elrejti a kudarcokat: az az ügyfél, aki feladja, szintén nem jut el emberhez. A szolgáltatók ráadásul a maguk módján definiálják a megoldást. Az Intercom, amely a Fin ágensét eredményenként 0,99 dollárért árazza, akkor számol megoldást, ha Fin utolsó válasza után nem kérnek további segítséget, és beszélgetésenként egy eredményt számláz. Ez észszerű számlázási szabály, de gyenge minőségi mutató, ezért mérj magad.",{"type":134,"head":296,"rows":303},[297,299,301],[298],"Mérőszám",[300],"Mit mutat",[302],"Hogyan gyűjtsd",[304,311,318,325],[305,307,309],[306],"Ellenőrzött megoldási arány",[308],"Helyes és teljes válaszok",[310],"Véletlen minta heti emberi átnézése",[312,314,316],[313],"Ismételt megkeresés 7 napon belül",[315],"Valójában meg nem oldott problémák",[317],"Chat- és jegyadatok összekapcsolása ügyfelenként",[319,321,323],[320],"Átadási arány és átadási minőség",[322],"Feldolgozásra készen érkeznek-e az ügyek",[324],"Az ügyintézők értékelik az összefoglalót a jegyben",[326,328,330],[327],"Megalapozatlan válaszok",[329],"Eszközeredmény vagy forrás nélküli válaszok",[331],"Automatikus ellenőrzés a trace-ben",{"type":121,"content":333},[334,335,339],"Az átnézett beszélgetésekből készíts eval-készletet, és futtasd minden prompt- vagy modellváltás előtt, ahogy az ",{"tag":219,"to":336,"children":337},"\u002Fblog\u002Fllm-evals-for-product-features",[338],"LLM evalok termékfunkciókhoz"," cikkben leírtam. És mielőtt az ügyfelek bármit látnának, néhány hétig futtasd az asszisztenst belső eszközként a saját ügyfélszolgálati csapatod számára, amely elküldi vagy elveti a válaszvázlatokat. Így címkézett adatod lesz, a csapat megtanulja, hol hibázik, és az első ügyfeleknek szóló változat ismert korlátokkal indul, nem reményekkel.",{"type":128,"level":129,"id":117,"text":118},{"type":252,"ordered":342,"items":343},true,[344,348,351,354,357,360,363],[345],{"tag":346,"href":39,"children":347},"a",[38],[349],{"tag":346,"href":42,"children":350},[41],[352],{"tag":346,"href":45,"children":353},[44],[355],{"tag":346,"href":48,"children":356},[47],[358],{"tag":346,"href":51,"children":359},[50],[361],{"tag":346,"href":54,"children":362},[53],[364],{"tag":346,"href":57,"children":365},[56],[367,437,489,557],{"slug":368,"published":5,"minutes":369,"category":7,"tags":370,"keywords":375,"about":387,"sources":394,"cover":431,"og":432,"expertise":60,"locales":433,"lang":64,"title":434,"description":435,"coverAlt":436},"schema-org-structured-data-b2b-shop",10,[371,372,9,373,374],"Schema.org","Structured data","Technical SEO","Nuxt",[376,377,378,379,380,381,382,383,384,385,386],"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",[388,390,393],{"name":371,"url":389},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSchema.org",{"name":391,"url":392},"JSON-LD","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJSON-LD",{"name":34,"url":35},[395,398,401,404,407,410,413,416,419,422,425,428],{"title":396,"url":397},"Google Search Central: Introduction to Product structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct",{"title":399,"url":400},"Google Search Central: Merchant listing (Product, Offer) structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fmerchant-listing",{"title":402,"url":403},"Google Search Central: Product snippet structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-snippet",{"title":405,"url":406},"Google Search Central: Product variant structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-variants",{"title":408,"url":409},"Google Search Central: Organization structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Forganization",{"title":411,"url":412},"Google Search Central: Merchant return policy structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Freturn-policy",{"title":414,"url":415},"Google Search Central: General structured data guidelines","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fsd-policies",{"title":417,"url":418},"Google Search Central: Generate structured data with JavaScript","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fgenerate-structured-data-with-javascript",{"title":420,"url":421},"Schema.org: Offer","https:\u002F\u002Fschema.org\u002FOffer",{"title":423,"url":424},"Schema.org: UnitPriceSpecification","https:\u002F\u002Fschema.org\u002FUnitPriceSpecification",{"title":426,"url":427},"Unhead: Product schema (defineProduct)","https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fschema-org\u002Fapi\u002Fschema\u002Fproduct",{"title":429,"url":430},"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",[62,63,64],"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":438,"published":439,"minutes":440,"category":7,"tags":441,"keywords":446,"about":457,"sources":466,"cover":482,"og":483,"expertise":484,"locales":485,"lang":64,"title":486,"description":487,"coverAlt":488},"nuxt-i18n-multilingual-seo-hreflang","2026-10-16",8,[374,442,443,444,445],"i18n","SEO","hreflang","Multilingual",[447,448,449,450,451,452,453,454,455,456],"nuxt i18n seo","nuxt hreflang","useLocaleHead","nuxt i18n canonical","hreflang x-default","prefix_except_default","multilingual seo nuxt","nuxt i18n sitemap hreflang","hreflang self-referencing","nuxt i18n baseUrl",[458,460,463],{"name":374,"url":459},"https:\u002F\u002Fnuxt.com\u002F",{"name":461,"url":462},"Hreflang","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHreflang",{"name":464,"url":465},"Internationalization and localization","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInternationalization_and_localization",[467,470,473,476,479],{"title":468,"url":469},"Nuxt i18n docs: SEO (useLocaleHead)","https:\u002F\u002Fi18n.nuxtjs.org\u002Fdocs\u002Fguide\u002Fseo",{"title":471,"url":472},"Nuxt i18n docs: Routing strategies","https:\u002F\u002Fi18n.nuxtjs.org\u002Fdocs\u002Fguide",{"title":474,"url":475},"Google Search Central: Tell Google about localized versions of your page","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fspecialty\u002Finternational\u002Flocalized-versions",{"title":477,"url":478},"Google Search Central: Managing multi-regional and multilingual sites","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fspecialty\u002Finternational\u002Fmanaging-multi-regional-sites",{"title":480,"url":481},"Google Search Central: How to specify a canonical URL","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fcrawling-indexing\u002Fconsolidate-duplicate-urls","\u002Fimages\u002Fblog\u002Fnuxt-i18n-multilingual-seo-hreflang\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fnuxt-i18n-multilingual-seo-hreflang\u002Fog.jpg","vue-nuxt-developer",[62,63,64],"Többnyelvű SEO Nuxt i18n-nel: URL-stratégia, hreflang, canonical és sitemap","Így állítsd be a Nuxt i18n modult, hogy a keresők minden nyelvet indexeljenek: útvonal-stratégia, useLocaleHead, hreflang, részleges fordítás, sitemap.","Nagy lapot három vízszintes kapcsolat köt össze három kisebb lap oszlopával.",{"slug":490,"published":439,"minutes":491,"category":7,"tags":492,"keywords":497,"about":510,"sources":517,"cover":551,"og":552,"expertise":484,"locales":553,"lang":64,"title":554,"description":555,"coverAlt":556},"llm-endpoint-abuse-denial-of-wallet",14,[374,493,494,495,496],"LLM security","Rate limiting","OWASP","Cost control",[498,499,500,501,502,503,504,505,506,507,508,509],"denial of wallet llm","owasp llm10 unbounded consumption","rate limit llm api nuxt","nuxt security rate limiter","protect openai api key frontend","llm token budget per user","limit llm cost per user","nitro api rate limiting","cloudflare turnstile nuxt","anthropic spend limit","openai hard spend limit","llm prompt size limit",[511,513,516],{"name":494,"url":512},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRate_limiting",{"name":514,"url":515},"Denial-of-service attack","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDenial-of-service_attack",{"name":374,"url":459},[518,521,524,527,530,533,536,539,542,545,548],{"title":519,"url":520},"OWASP GenAI Security Project: LLM10:2025 Unbounded Consumption","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm102025-unbounded-consumption\u002F",{"title":522,"url":523},"Nuxt Security: Rate Limiter middleware","https:\u002F\u002Fnuxt-security.vercel.app\u002Fmiddleware\u002Frate-limiter",{"title":525,"url":526},"Nuxt Security: Request Size Limiter middleware","https:\u002F\u002Fnuxt-security.vercel.app\u002Fmiddleware\u002Frequest-size-limiter",{"title":528,"url":529},"nuxt-auth-utils: README (GitHub)","https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils",{"title":531,"url":532},"h3: request utilities (getRequestIP, readValidatedBody)","https:\u002F\u002Fh3.dev\u002Futils\u002Frequest",{"title":534,"url":535},"Upstash: Ratelimiting algorithms","https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis\u002Fsdks\u002Fratelimit-ts\u002Falgorithms",{"title":537,"url":538},"Cloudflare Turnstile: Validate the token","https:\u002F\u002Fdevelopers.cloudflare.com\u002Fturnstile\u002Fget-started\u002Fserver-side-validation\u002F",{"title":540,"url":541},"Claude Platform Docs: Rate limits and spend limits","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fapi\u002Frate-limits",{"title":543,"url":544},"Claude Platform Docs: Token counting","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Ftoken-counting",{"title":546,"url":547},"OpenAI API Docs: Spend limits","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fspend-limits",{"title":549,"url":550},"OpenAI API Docs: Rate limits","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Frate-limits","\u002Fimages\u002Fblog\u002Fllm-endpoint-abuse-denial-of-wallet\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-endpoint-abuse-denial-of-wallet\u002Fog.jpg",[62,63,64],"Denial of wallet: nyilvános LLM-végpontok védelme egy Nuxt-alkalmazásban","Visszaélés és elszabaduló költség megállítása egy nyilvános Nuxt LLM-útvonalon: auth, rate limit, promptkorlát, tokenkeret, Turnstile és költéskorlát.","Apró pontok torlódnak egy fal keskeny résénél, csak kettő jut át, felette korlátsín.",{"slug":558,"published":559,"minutes":6,"category":7,"tags":560,"keywords":564,"about":572,"sources":579,"cover":601,"og":602,"expertise":603,"locales":604,"lang":64,"title":605,"description":606,"coverAlt":607},"llms-txt-vs-markdown-content-negotiation","2026-10-07",[561,562,563,374],"llms.txt","Content negotiation","AI agents",[561,565,566,567,568,569,570,571],"markdown for agents","content negotiation","AI crawlers","generative engine optimization","Accept text\u002Fmarkdown header","llms-full.txt","agent-ready website",[573,576],{"name":574,"url":575},"Markdown","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown",{"name":577,"url":578},"Hypertext Transfer Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHypertext_Transfer_Protocol",[580,583,586,589,592,595,598],{"title":581,"url":582},"llmstxt.org: The \u002Fllms.txt file (proposal, version 2)","https:\u002F\u002Fllmstxt.org\u002F",{"title":584,"url":585},"llmstxt.org: Changes from v1 to v2","https:\u002F\u002Fllmstxt.org\u002Fchanges.html",{"title":587,"url":588},"Cloudflare changelog: Markdown for Agents (12 February 2026)","https:\u002F\u002Fdevelopers.cloudflare.com\u002Fchangelog\u002Fpost\u002F2026-02-12-markdown-for-agents\u002F",{"title":590,"url":591},"Cloudflare docs: Markdown for Agents","https:\u002F\u002Fdevelopers.cloudflare.com\u002Ffundamentals\u002Freference\u002Fmarkdown-for-agents\u002F",{"title":593,"url":594},"Ahrefs: 137K sites analyzed, 97% of llms.txt files never get read (June 2026)","https:\u002F\u002Fahrefs.com\u002Fblog\u002Fllmstxt-study\u002F",{"title":596,"url":597},"Checkly: The current state of content negotiation for AI agents (February 2026)","https:\u002F\u002Fwww.checklyhq.com\u002Fblog\u002Fstate-of-ai-agent-content-negotation\u002F",{"title":599,"url":600},"Suganthan: tracking Cloudflare Markdown for Agents on one site","https:\u002F\u002Fsuganthan.com\u002Fblog\u002Fcloudflare-markdown-for-agents\u002F","\u002Fimages\u002Fblog\u002Fllms-txt-vs-markdown-content-negotiation\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllms-txt-vs-markdown-content-negotiation\u002Fog.jpg","ai-engineer",[62,63,64],"llms.txt vagy Markdown content negotiation: mit töltenek le valójában az ügynökök","Az llms.txt javaslat, a Markdown content negotiation fejléc. Mit töltenek le a MI-ügynökök, mit mutatnak a naplók, és hogyan működik mindez Nuxttal és nginxszel.","Két ajtó egymás mellett, négyzet és kör alakú kilinccsel, a közeledő négyzet jobbra fordul.",1792222774371]