Comment vous aider ?

Décrivez brièvement votre demande : nous vous répondrons par e-mail.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Vers la page d’accueil

Smart Answer : réponse IA dans la recherche de votre site

Intégrez Smart Answer : script suche.js, encadré dans le balisage, interface HTTP publique pour les pages de recherche rendues côté serveur, flux de réponse Server-Sent Events, variables CSS et transfert au chat.

Smart Answer affiche une courte réponse à la question du visiteur au-dessus ou au-dessous des résultats de recherche de votre site, transmise en continu, avec des sources issues de votre base de connaissances et un champ pour la question suivante. Smart Answer est un service distinct ; il utilise la même base de connaissances que votre assistant de chat. Vous l’activez et définissez son apparence dans votre compte sous Projet → Smart Answer pour la recherche sur le site.

Intégration avec suche.js

Si le chargeur du chat figure déjà sur la page, une ligne suffit :

<script src="https://cdn.reactive.chat/suche.js" async></script>

Sans le widget de chat, transmettez la clé de site :

<script src="https://cdn.reactive.chat/suche.js" data-site-key="SITE_KEY" async></script>

Le script se rattache aux champs de recherche de votre page (vous les définissez dans votre compte avec un sélecteur CSS), attend l’envoi ou une pause dans la saisie, puis affiche la réponse dans un encadré à l’emplacement configuré (avant, après ou à l’intérieur d’un élément cible). Par défaut, il répond uniquement aux saisies qui ressemblent à une question.

Attributs de la balise script :

Le script ne définit aucun cookie et ne stocke des données que dans sessionStorage. Pour la CSP, il nécessite script-src https://cdn.reactive.chat et connect-src https://ws.reactive.chat (Sécurité et CSP).

Transfert au chat

Si le visiteur pose une question de suivi dans l’encadré, selon le réglage Question de suivi, la conversation se poursuit dans le widget de chat (ReactiveChat('continueConversation', id, text) ou ReactiveChat('startConversation', text)) ou reçoit une réponse dans le même encadré. Sans widget de chat sur la page, la question de suivi reste toujours dans l’encadré.

Mise en forme

L’encadré (.rc-ai) fournit son propre CSS et est protégé contre les réinitialisations de style de votre page. Vous pouvez l’adapter via des variables de spécificité minimale :

.rc-ai {
  --rc-ai-akzent: #0a7cff;
  --rc-ai-hg: var(--karte, #fff);
  --rc-ai-text: #1d1d1f;
  --rc-ai-rand: #e3e3e8;
  --rc-ai-radius: 10px;
  --rc-ai-schrift: inherit;
  --rc-ai-abstand: 20px;
  --rc-ai-schriftgroesse: 16px;
  --rc-ai-zeilenhoehe: 1.6;
}

Vous modifiez les éléments individuels avec .rc-ai .rc-ai__teil { … } dans le champ CSS personnalisé de votre compte, par ex. .rc-ai .rc-ai__hinweis { display: none; }. La couche de protection ne protège pas contre les règles de votre page utilisant #id ou !important.

Interface HTTP

Pour les pages de recherche rendues côté serveur ou vos propres interfaces, une interface publique sans authentification ni cookies est disponible sous https://ws.reactive.chat/api/suche/SITE_KEY.

Points communs à tous les points de terminaison :

GET /api/suche/SITE_KEY?locale=de – configuration, CSS et modèle vide de l’encadré (Cache-Control: public, max-age=60) :

POST /api/suche/SITE_KEY – HTML complet de l’encadré pour une question, corps de 4 KB maximum :

curl -s -X POST "https://ws.reactive.chat/api/suche/SITE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"How long does shipping take?","locale":"en"}'

POST /api/suche/SITE_KEY/antwort – la réponse elle-même sous forme de flux Server-Sent Events, corps de 8 KB maximum :

{"q":"How long does shipping take?","locale":"en",
 "visitor_id":"v_…",
 "ctx":{"url":"https://shop.example/search","title":"Search"},
 "folge":false,
 "vorher":[{"q":"…","a":"…"}]}

Réponse text/event-stream :

event: status
data: {"stufe":"denkt"}

event: text
data: {"text":"Shipping usually takes"}

event: fertig
data: {"text":"Shipping usually takes 2–3 working days.","quellen":[{"titel":"Shipping","url":"https://shop.example/shipping"}],"fortsetzung":{"art":"faden","id":"01J…"}}

Après fertig ou fehler, le flux se termine. Les erreurs avant le démarrage arrivent aussi sous forme de flux avec exactement un fehler (HTTP 404, 429, 400, 413, 503 ou 200). Sans texte après 45 secondes ou sans fin après 90 secondes, fehler zeit est envoyé. Si vous fermez la connexion, la réponse est interrompue. Un proxy sur le trajet doit transmettre le flux sans mise en tampon.

// read the stream in the browser (EventSource cannot POST)
const r = await fetch('https://ws.reactive.chat/api/suche/SITE_KEY/antwort', {
  method: 'POST', headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ q: frage, locale: 'en' }), credentials: 'omit'
});
const leser = r.body.getReader(); const dec = new TextDecoder(); let puffer = '';
for (;;) {
  const { value, done } = await leser.read(); if (done) break;
  puffer += dec.decode(value, { stream: true });
  let i; while ((i = puffer.indexOf('\n\n')) >= 0) {
    const block = puffer.slice(0, i); puffer = puffer.slice(i + 2);
    const ev = /^event: (.*)$/m.exec(block), da = /^data: (.*)$/m.exec(block);
    if (ev && da) zeige(ev[1], JSON.parse(da[1]));
  }
}

Suite : Intégration de la confidentialité

Dernière mise à jour: