Technikai
AI Live Test
Az AI Live Test 4 nagy LLM-et hív meg párhuzamosan (Promise.allSettled) és kérdezi tőlük: ha keresés-szimulációt futtatnál erre az iparágra, megjelenne-e ez a brand a top 5 találatban? A kód a src/lib/ai-live-test.ts fájlban él.
A 4 platform
| Platform | Modell | Endpoint | Timeout | Költség |
|---|---|---|---|---|
| Perplexity | sonar | api.perplexity.ai/chat/completions | 20s | ~$0.01/scan |
| ChatGPT | gpt-4o-mini | api.openai.com/v1/chat/completions | 15s | ~$0.002/scan |
| Gemini | gemini-2.5-flash | generativelanguage.googleapis.com | 15s | ~$0.001/scan |
| Claude | claude-sonnet-4-20250514 | api.anthropic.com/v1/messages | 15s | ~$0.002/scan |
Egy átlagos scan ~$0.015 közvetlen API-költséget jelent. 100-as napi free-tier ingyenes limittel ez ~$45/hó az API-ra a free user-ekért — ez fedezhető a paid tier-ek bevételéből.
V12 — Magyar prompt-tisztítás
A 2026.05-ös V12 frissítés óta a SYSTEM_PROMPT JSON-kulcsai is magyarul vannak — korábban a system message magyar volt, de a kulcsok angolok (industry, citationStrength stb.). Ez minőség-javítás: a model „benne marad” a magyar nyelvi térben, jobb minőségű magyar válaszokat ad.
{
"ipariag": "<iparág magyarul>",
"szimulaltKerdes": "<konkrét keresőkifejezés>",
"top5Talalat": ["<domain1>", ..., "<domain5>"],
"brandPozicio": <1-5 vagy null>,
"idez": <true/false>,
"idezetiErosseg": <0-10 a pozíció alapján>,
"idezesIndoka": "<2-3 mondat>",
"versenyEloeny": "<1 mondat>",
"aiKeresoKifejezesek": ["<5 további kifejezés>"],
"javaslatok": ["<3 konkrét javaslat>"]
}V4 — Live citation testing
A V4 frissítés a SYSTEM_PROMPT-ot átalakította absztrakt szimulációból konkrét keresés-prompttá. A model nem azt kérdezi, hogy „mit gondolsz a brand-ről”, hanem:
“Képzeld el, hogy egy felhasználó az iparág releváns kifejezésére keres. Generálj egy konkrét magyar keresőkifejezést, sorold fel a top 5 weboldalt amit idéznél, és ellenőrizd, hogy a megadott brand domain szerepel-e közöttük.”
A citationStrength a pozíció alapján számolódik:
- 1. helyen: 10 pont
- 2. helyen: 8 pont
- 3. helyen: 6 pont
- 4. helyen: 4 pont
- 5. helyen: 2 pont
- Nem szerepel a top 5-ben: 0 pont
Fontos: ez csak a Perplexity Sonar esetén tényleges keresés (native web search). A többi platformon (GPT-4o-mini, Gemini, Claude) ez továbbra is szimuláció — a model a tudásbázisa alapján találgat. A teljes Citation Share-mérés további API-kulcsokat igényel: V2 Bing, V3 Brave (lásd changelog).
V1 — Multi-sample (probabilisztikus szórás kompenzáció)
Az LLM-ek probabilisztikusak: ugyanazt a promptot különböző válaszokkal honorálják. A temperature: 0.3 csökkenti a szórást, de nem szünteti meg. Egy 7/10 citationStrength másnap lehet 4 vagy 9.
A V1 multi-sample megoldás: minden platformra N (alapértelmezetten 3) hívást futtatunk párhuzamosan, a citationStrength-et átlagoljuk, a wouldCite-ot többségi szavazással döntjük el. Az indoklás mező mostantól tartalmazza a „X mintából átlagolva, Y/Z igen-szavazat” infót.
// A scan-flow a runGeoAudit(url, { aiSamples }) opción keresztül vezérli:
// anonim scan → aiSamples: 1 (single-sample)
// bejelentkezett scan → aiSamples: 3 (multi-sample, átlagolva)
// dashboard rescan/add → aiSamples: 3
// kompetitor-benchmark → aiSamples: 1 (N+1 scan × 60s timeout védelem)
const result = await runGeoAudit(url, { aiSamples: 3 });2026.06 óta élesben: bejelentkezett userek minden scanje automatikusan 3 mintával fut (~3x API-költség, ~$0.03/scan), anonim scanek 1 mintával. Az indoklás mezőben látszik: „X mintából átlagolva, Y/Z igen-szavazat”.
Hibakezelés
Promise.allSettled: egy platform fail-je nem öli meg a többit.- Ha az API kulcs hiányzik (env változó nincs),
errorResult-ot ad vissza „API kulcs nincs beállítva” üzenettel — kivéve Claude-nál, aholsimulateClaude()heurisztikusan számol egy strength-et. - Ha a model invalid JSON-t ad,
parseAIResponsevisszaad egy „Válasz feldolgozási hiba” error-t, de a többi platform eredménye mehet tovább. - Backwards compat: a parseAIResponse a magyar kulcsok mellett az angol kulcsokat is elfogadja (
?? parsed.simulatedQuery) — a régi cache-elt válaszok is parse-olhatóak.