SDK dokumentáció

Fejlessz az EchoAI-jal

Ágyazz be intelligens chat asszisztenst a weboldaladba néhány sor kóddal.

Kinek szól ez az oldal?
Ez a fejlesztői referencia — JavaScript SDK, minden opció, data-attribútum, programozott vezérlés és esemény egy helyen. Ha kódolás nélkül szeretnéd kitenni az asszisztenst (lebegő gomb, WordPress, Framer), kezdd a Beágyazás a weboldalra oldalon.

Ezen az oldalon

Példák

Gyors kezdés

Két perc alatt üzembe helyezed az asszisztensed ezzel a két lépéssel.

1
SDK script hozzáadása

Illeszd be az EchoAI SDK scriptet a HTML fájlodba, közvetlenül a záró </body> tag elé.

HTML
<script src="https://cdn.echoaichat.com/sdk/echo-sdk.js"></script>
2
Widget inicializálása

Hozz létre egy új EchoSDK példányt az asszisztens-azonosítóddal.

JavaScript
const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762'
});
Kész is!
Az asszisztensed üzemkész. A widget a #echo-chat azonosítójú elemben jelenik meg. Az asszisztens-azonosítót az asszisztens Beágyazás oldalán találod.

Telepítés

Teljes HTML példa a gyors induláshoz.

HTML
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My Website</title>
</head>
<body>
  <!-- Your website content -->

  <!-- EchoAI Chat Container -->
  <div id="echo-chat" style="height: 500px;"></div>

  <!-- EchoAI SDK -->
  <script src="https://cdn.echoaichat.com/sdk/echo-sdk.js"></script>
  <script>
    const echoWidget = new EchoSDK({
      container: '#echo-chat',
      assistantIdentifier: 'dovjmm372762',
      height: '100%'
    });
  </script>
</body>
</html>
JavaScript nélkül is megy
Ha nem akarsz JavaScriptet írni, a widget teljesen HTML data-attribútumokkal is beállítható — az SDK automatikusan elindul.

Élő előnézet

Állítsd be a widget opcióit alább, és valós időben látod a változásokat. A generált kód automatikusan frissül.

Megjelenő szövegek
EchoAI widget betöltése…
JavaScript
Élő demó
Ez a widget egy valódi EchoAI asszisztenshez csatlakozik. Változtasd meg az opciókat, és az előnézet automatikusan frissül.

Alapbeállítások

A konstruktor (new EchoSDK({ ... })) összes legfelső szintű opciója.

Opció Típus Alapérték Leírás
assistantIdentifier Required string — Az asszisztens egyedi azonosítója a vezérlőpultról. Beágyazni csak publikus asszisztenst lehet.
container string | HTMLElement — CSS-szelektor vagy DOM-elem, ahova a chat kerül. Beágyazott módhoz kötelező; lebegő gomb módban nem kell (a chat a <body>-ra kerül).
mode 'full' | 'preview' full Asztali nézetben a preview üdvözlő képernyőt + indító kérdéseket + „Chat indítása” gombot mutat. Mobilon mindig preview. Lásd Preview mód.
theme string pink Színtéma: pink, purple, blue, green, amber. Érvénytelen / hiányzó érték → pink.
height string | number 480px / 80vh A widget magassága (pl. „500px", „100%", 500). Megadás nélkül asztalon 480px, mobilon 80vh. A % / auto 80vh-ra esik vissza, hogy a lista görgessen ne nőjön.
autoFocus boolean true Betöltéskor a beviteli mezőre fókuszál. Alapértelmezett: true.
userContext string — További kontextus a felhasználóról (max. 1000 karakter, efölött hibát dob). Lásd Felhasználói kontextus.
urlContextOptions object — Az aktuális oldal URL-jének átadása az AI-nak. Lásd URL kontextus.
starterQuestions NEW Array — Az alapértelmezett indító kérdések felülírása (max. 5). Lásd Indító kérdések.
textConfig object — A felület szövegeinek testreszabása. Lásd Szövegek testreszabása.
floatingButton object — Lebegő gomb mód bekapcsolása és beállítása. Lásd Lebegő gomb.
header object — { enabled: boolean } — a chat fejlécének láthatósága. Beágyazott módban alapból rejtett; lebegő módban mindig látszik.
onError function — Hiba esetén lefutó callback: (error: Error) => void.
Fejléc példa
A fejléc alapból csak lebegő gomb módban látszik. Beágyazott módban így kapcsolod be:
JavaScript
const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  header: {
    enabled: true
  }
});

Szövegek testreszabása

A felület szövegeit a textConfig opcióval szabhatod testre.

JavaScript
const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  textConfig: {
    inputPlaceholder: 'Ask me anything...',
    sourcesLabel: 'Knowledge Sources',
    searchingText: 'Searching...',
    toolsText: 'Processing...',
    loadingText: 'Thinking...',
    startButtonLabel: 'Start chat'
  }
});
Tulajdonság Típus Leírás
inputPlaceholder string A beviteli mező helykitöltő szövege
sourcesLabel string A Tudásforrások szekció címkéje
searchingText string Keresés közben megjelenő szöveg
toolsText string Eszközök feldolgozása közben megjelenő szöveg
loadingText string A válasz betöltése közben megjelenő szöveg
startButtonLabel string A preview mód „Chat indítása” gombjának felirata (alapértelmezett: „Start chat”)

Lebegő gomb

Jelenítsd meg a chatet lebegő gombként, amely egy felugró ablakot nyit. Ha bekapcsolod, a container nem kell — a chat a <body>-ra kerül.

JavaScript
const echoWidget = new EchoSDK({
  assistantIdentifier: 'dovjmm372762',
  floatingButton: {
    enabled: true,
    position: 'bottom_right',
    tooltip: 'Chat with us!',
    width: '400px',
    height: '600px'
  }
});
Tulajdonság Típus Leírás
enabled boolean A lebegő gomb mód bekapcsolása
position string bottom_right (alapértelmezett) | bottom_left | top_right | top_left
icon string Egyéni ikon URL-je. Ha üresen hagyod, a gomb az asszisztens feltöltött profilképét használja.
tooltip string A gombra mutatáskor megjelenő tooltip szövege
badgeCount number A gombon megjelenő piros számjelvény (pl. olvasatlan üzenetek). Az első chatnyitás után elrejtjük.
width / height string | number A felugró ablak méretei (alapértelmezett: 400 × 630)

URL kontextus

Tudasd az asszisztenssel, hogy a látogató éppen melyik oldalon van. Így az AI az oldalhoz illő válaszokat adhat — az árazás oldalon például proaktívan reagál az árazási kérdésekre.

JavaScript
const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  urlContextOptions: {
    autoDetect: true,           // alapból false (lásd a megjegyzést)
    customUrl: 'https://pelda.hu/arazas'
  }
});
Tulajdonság Típus Alapérték Leírás
autoDetect boolean false Automatikusan a window.location URL-jét használja (lekérdezés és horgony nélkül). Jelenleg alapból kikapcsolva.
customUrl string — Konkrét URL átadása az automatikus felismerés helyett. Megadás esetén ezt használja, az autoDetect beállítástól függetlenül.
Az autoDetect jelenleg false
Egy átmeneti frontend-hiba miatt az autoDetect jelenleg alapból false, akkor is, ha nem adsz meg urlContextOptions-t. Ha URL-kontextust szeretnél, állítsd kifejezetten true-ra, vagy adj meg customUrl-t. (A hiba javítása után az alapérték visszaáll true-ra.)

Felhasználói kontextus

Adj át adatokat az aktuális felhasználóról vagy munkamenetről az asszisztensnek. Az AI háttérinformációként megkapja ezt a kontextust, így személyre szabott válaszokat adhat anélkül, hogy a felhasználónak újra meg kellene adnia ezeket az adatokat.

Hogyan működik
Az AI ismert adatként kapja meg a kontextust, és közvetlenül ebből válaszol — anélkül, hogy a tudásbázisban keresgélne. Ha például átadod a felhasználó csomagját, az AI azonnal megválaszolja a „Milyen csomagom van?" kérdést a kontextusból.

Egyszerű szöveg

JavaScript
const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  userContext: 'Company size: 50-100 employees, Industry: Healthcare, Plan: Pro'
});

JSON formátum (ajánlott)

Strukturált adatokhoz használd a JSON.stringify()-t. Így egyértelműen címkézett mezőket kap az AI.

JavaScript
// Structured context with JSON (recommended)
const user = await fetchCurrentUser();

const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  userContext: JSON.stringify({
    userId: user.id,
    membershipTier: 'gold',
    companySize: '50-100 employees',
    accountAge: '2 years',
    cartItems: 3,
    rewardPoints: 1250
  })
});

Dinamikus kontextus

Építsd fel a kontextust az alkalmazásod állapotából, az inicializáláskor.

JavaScript
// Dynamic context based on application state
function buildContext() {
  const user = getCurrentUser();
  const cart = getCartState();

  return JSON.stringify({
    name: user.firstName,
    plan: user.subscription.plan,
    cartTotal: cart.total,
    itemCount: cart.items.length,
    preferredLanguage: user.locale
  });
}

const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  userContext: buildContext()
});

Korlátok és szabályok

Szempont Részlet
Maximális hossz 1000 karakter — efölött hibát dob
Típus Csak string (egyszerű szöveg vagy JSON)
Hatókör Beszélgetésenként — a beszélgetés létrehozásakor állítódik be. Futás közbeni módosításhoz használd a setUserContext() + resetThread() párost (lásd Programozott vezérlés).
Thread-kulcs Eltérő kontextus eltérő beszélgetést kap — a böngésző a echo:threadId:<asszisztens>:<kontextus-hash> kulcson tárolja.
Validáció Kliens- (SDK) és szerveroldalon (API) is ellenőrizzük

Bevált gyakorlatok

Ezt tedd
  • Teljes nevek helyett használj azonosítókat (userId: "user_123")
  • Adj át nem érzékeny metaadatokat: csomag, cégméret, preferenciák
  • Strukturált adatokhoz használj JSON formátumot
  • Csak olyan adatot adj át, amely javítja az AI válaszait
Ezt ne
  • Jelszó, TAJ-szám vagy bankkártyaadat átadása
  • Különösen érzékeny személyes adatok tárolása
  • Olyan adat átadása, amelyet a felhasználó nem szeretne megosztani az AI-val
  • API-kulcsok vagy hozzáférési adatok átadása

Data-attribútumok (JavaScript nélkül)

Az SDK teljesen HTML data-echo-* attribútumokkal is beállítható, egyetlen sor JavaScript írása nélkül. Az SDK automatikusan elindul, amint talál egy data-echo-container attribútumú elemet, és a példányt a window.echoInstance-en érheted el.

HTML
<div
  data-echo-container
  data-echo-assistant-identifier="dovjmm372762"
  data-echo-height="500"
  data-echo-theme="pink"
></div>
<script src="https://cdn.echoaichat.com/sdk/echo-sdk.js"></script>
Attribútum Megfelelő opció Megjegyzés
data-echo-container Required — Jelenlétével indítja el az auto-init folyamatot. Ez az elem lesz a chat konténere (lebegő mód kivételével).
data-echo-assistant-identifier Required assistantIdentifier Az asszisztens egyedi azonosítója.
data-echo-title title Cím metaadat.
data-echo-description description Leírás metaadat.
data-echo-auto-focus autoFocus Csak akkor fókuszál, ha az értéke pontosan "true". Hiányában false (eltér a JS opció true alapértékétől).
data-echo-height height A widget magassága (pl. "500", "100%").
data-echo-theme theme pink | purple | blue | green | amber.
data-echo-text-input-placeholder textConfig.inputPlaceholder Beviteli mező helykitöltője.
data-echo-text-sources-label textConfig.sourcesLabel Tudásforrások címke.
data-echo-text-searching textConfig.searchingText Keresés szövege.
data-echo-text-tools textConfig.toolsText Eszközök szövege.
data-echo-text-loading textConfig.loadingText Betöltés szövege.
data-echo-floating-enabled floatingButton.enabled Lebegő gomb mód ("true" esetén).
data-echo-floating-position floatingButton.position A gomb pozíciója.
data-echo-floating-icon floatingButton.icon Egyéni gombikon URL-je.
data-echo-floating-tooltip floatingButton.tooltip Tooltip szövege.
data-echo-floating-badge floatingButton.badgeCount Számjelvény a gombon (egész szám).
data-echo-floating-width floatingButton.width A felugró ablak szélessége.
data-echo-floating-height floatingButton.height A felugró ablak magassága.
data-echo-header-enabled header.enabled Fejléc láthatósága. Csak akkor rejti el, ha az értéke "false".
data-echo-user-context userContext Felhasználói kontextus (max. 1000 karakter).
data-echo-url-context-auto-detect urlContextOptions.autoDetect Az URL automatikus felismerése ("false" kapcsolja ki).
data-echo-url-context-custom-url urlContextOptions.customUrl Konkrét URL átadása.
data-echo-starter-questions starterQuestions JSON-tömb, pl. '[{"question":"..."}]'. Érvénytelen JSON esetén figyelmen kívül hagyjuk.
Mikor melyiket
A data-attribútumos módszer no-code beágyazáshoz ideális (lásd a Beágyazás a weboldalra oldalt). Ha futás közben vezérelnéd a chatet (kontextus-frissítés, thread-reset), használd a programozott API-t.

Programozott vezérlés

Az auto-init példány a window.echoInstance objektumon érhető el. Saját kezűleg létrehozott példányokon (new EchoSDK(...)) ugyanezek a metódusok hívhatók.

JavaScript
// Az auto-init példány a window.echoInstance objektumon érhető el
const echo = window.echoInstance;

// Beszélgetés visszaállítása (új thread indul)
await echo.resetThread();

// Visszaállítás frissített kontextussal
await echo.resetThread({ userContext: 'Pro user, magyar nyelv' });

// Kontextus frissítése reset nélkül
echo.setUserContext('Új kosártartalom: 5 termék');
const ctx = echo.getUserContext();

// Opciók frissítése futás közben (újrarendereli a chatet)
echo.update({ theme: 'blue', autoFocus: true });
Metódus Visszatérés Leírás
resetThread(options?) Promise<boolean> A beszélgetés visszaállítása — új thread indul. Opcionális { userContext } az új beszélgetés kontextusához.
setUserContext(context) void A felhasználói kontextus frissítése (max. 1000 karakter, efölött hibát dob). A következő thread veszi át; gyakran resetThread() előtt hívják.
getUserContext() string | undefined Az aktuális felhasználói kontextus lekérése.
update(options) void Opciók frissítése futás közben (pl. theme, autoFocus, textConfig) — újrarendereli a chatet.
mount(container) boolean A chat (újra)csatolása egy CSS-szelektorhoz vagy DOM-elemhez.
unmount() void A chat teljes eltávolítása — a lebegő gomb és a felugró panel is megszűnik.
Kontextus-csere helyes sorrendje
Ha a beszélgetés közben változik a felhasználó adata, előbb hívd a setUserContext()-et, majd a resetThread()-et — így az új thread már az új kontextussal indul. Vagy egy lépésben: resetThread({ userContext: '...' }).

Saját példány kezelése

JavaScript
// Saját kezűleg létrehozott példány
const echo = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762'
});

// Áthelyezés másik konténerbe
echo.mount('#another-container');

// Teljes eltávolítás (lebegő gomb + chat is eltűnik)
echo.unmount();

Események

Az SDK window-szintű egyéni eseményeket (echo:*) bocsát ki, amelyekre window.addEventListener-rel iratkozhatsz fel.

JavaScript
// Hibaesemény figyelése
window.addEventListener('echo:error', (e) => {
  console.error('Echo hiba:', e.detail.error);
});

// Új thread létrejöttekor (resetThread után) lefutó esemény
window.addEventListener('echo:thread-reset', (e) => {
  console.log('Új beszélgetés azonosító:', e.detail.threadId);
});
Esemény Mikor detail
echo:error Hiba történik az auto-init példányban (a onError callback mellett is kibocsátja) { error: Error }
echo:thread-reset Új beszélgetés jött létre (sikeres resetThread() után) { threadId: string }
Belső események
Az SDK néhány további eseményt belső koordinációra használ (mobil kibontás/összecsukás, billentyűzet-állapot, viewport-átméretezés, thread-reset kérés) — ezek a kliens belső működéséhez tartoznak, és integrációban nem szükséges rájuk építened.

Hibaelhárítás

Tünet Ok / megoldás
Nem jelenik meg a chat Ellenőrizd, hogy jó-e az assistantIdentifier, hogy az asszisztens publikus típusú-e, és hogy a container elem létezik-e a DOM-ban a script lefutásakor.
A widget egyre nő (nem görget) Adj meg fix height-et (pl. "500px"). A % / auto érték 80vh-ra esik vissza, ha a szülő magassága nem meghatározott — így a lista görget, nem nő végtelenül.
„Eltörnek a stílusok” A chat Shadow DOM-ban fut, teljesen elszigetelt stílussal: az oldalad megjelenése nem hat rá, és a chat sem változtatja meg az oldalad kinézetét. Itt nincs teendőd.
Nem tölt be a betűtípus A chat magával hozza a saját betűtípusát (Inter, a Google Fontsról a Shadow DOM-ba töltve). Ha a hálózat ezt nem engedi betölteni, automatikusan a rendszer betűtípusára vált — ez nem hiba.
Nem marad meg a beszélgetés az oldalak között A beszélgetést a látogató böngészője localStorage-ban jegyzi meg, az asszisztenshez (és a kontextushoz) kötve: echo:threadId:<asszisztens>[:<kontextus-hash>]. Használj ugyanazt az assistantIdentifier-t (és ha van, ugyanazt a userContext-et) minden oldalon. Eltérő kontextus külön beszélgetést kap.
Az URL kontextus nem érvényesül Az autoDetect jelenleg alapból false — állítsd kifejezetten true-ra, vagy adj meg customUrl-t (lásd URL kontextus).
A felhasználói kontextus hibát dob A userContext max. 1000 karakter lehet. Hosszabb érték esetén az SDK hibát dob — rövidítsd, vagy adj át kevesebb mezőt.

Indító kérdések

Írd felül az alapértelmezett indító kérdéseket, és szabd testre a chat kezdeti élményét.

Mik azok az indító kérdések?
Az indító kérdések a chat megnyitásakor jelennek meg, gyors beszélgetésindítóként. Az SDK-ból felülírhatod őket, így minden oldalhoz külön kérdéseket adhatsz.

Alaphasználat

JavaScript
const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  starterQuestions: [
    { question: 'What are your pricing plans?' },
    { question: 'How do I get started?' },
    { question: 'Can I see a demo?' }
  ]
});

Hogyan működik

  • Legfeljebb 5 kérdés — a többit figyelmen kívül hagyjuk
  • Kérdésenként max. 200 karakter — a hosszabb szöveget levágjuk
  • Üres tömb [] — minden indító kérdést elrejt
  • undefined — a vezérlőpulton beállított kérdéseket használja

Oldalspecifikus példa

JavaScript
// Dynamic questions based on current page
function getStarterQuestions() {
  const path = window.location.pathname;

  if (path.includes('/pricing')) {
    return [
      { question: 'Compare pricing plans' },
      { question: 'Do you offer discounts?' },
      { question: "What's included in each plan?" }
    ];
  }

  if (path.includes('/docs')) {
    return [
      { question: 'How do I install the SDK?' },
      { question: 'Show me code examples' }
    ];
  }

  // Use dashboard defaults
  return undefined;
}

const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  starterQuestions: getStarterQuestions()
});
Jó tudni
Az SDK-ban megadott kérdések felülírják a vezérlőpult beállításait. A vezérlőpulton végzett módosítások nem érintik a felülírt oldalakat.

Kódpéldák

Gyakori integrációs minták különböző felhasználási esetekhez.

Beágyazott widget

JavaScript
const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  height: '600px',
  autoFocus: true,
  textConfig: {
    inputPlaceholder: 'Ask me anything...',
    sourcesLabel: 'References'
  }
});

Felhasználói kontextussal

JavaScript
// Personalize based on logged-in user
const user = getCurrentUser();

const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  userContext: `Name: ${user.name}, Plan: ${user.plan}`,
  starterQuestions: [
    { question: 'How do I upgrade my plan?' },
    { question: "What's new in my account?" }
  ]
});

Teljes konfiguráció

JavaScript
const echoWidget = new EchoSDK({
  container: '#echo-chat',
  assistantIdentifier: 'dovjmm372762',
  height: '100%',
  autoFocus: true,
  theme: 'pink',
  mode: 'preview',

  textConfig: {
    inputPlaceholder: 'How can I help you today?',
    sourcesLabel: 'Knowledge Sources',
    searchingText: 'Searching...',
    toolsText: 'Processing...',
    loadingText: 'Generating response...',
    startButtonLabel: 'Start chat'
  },

  header: {
    enabled: true
  },

  userContext: 'Pro user, prefers detailed answers',

  urlContextOptions: {
    autoDetect: true
  },

  starterQuestions: [
    { question: "What's new this week?" },
    { question: 'Show me advanced features' },
    { question: 'API integration guide' }
  ],

  onError: (error) => {
    console.error('Echo SDK error:', error);
  }
});
Kapcsolódó