Kaip galime padėti?

Trumpai papasakokite, apie ką klausiate - atsakysime el. paštu.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Į pradžios puslapį

Smart Answer: web sitenizin aramasında YZ yanıtı

Smart Answer yerleştirme: suche.js betiği, sayfadaki kutu, sunucuda oluşturulan arama sayfaları için herkese açık HTTP arayüzü, Server-Sent Events yanıt akışı, CSS değişkenleriyle stil ve sohbete aktarma.

Smart Answer, web sitenizin arama sonuçlarının üstünde veya altında ziyaretçinin sorusuna kısa yanıt gösterir; akış hâlinde, bilgi tabanınızdan kaynaklarla ve sonraki soru için alanla. Smart Answer ayrı bir hizmettir; sohbet asistanınızla aynı bilgi tabanını kullanır. Hesabınızda Proje → Site içi arama için Smart Answer altında açılır ve biçimlendirilir.

suche.js ile yerleştirme

Sohbet yükleyicisi sayfada zaten varsa tek satır yeterlidir:

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

Sohbet widget’ı olmadan site anahtarını iletin:

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

Betik sayfanızın arama alanlarına bağlanır (hangileri olduğunu hesabınızda CSS seçicisiyle belirlersiniz), gönderimi veya yazmaya ara verilmesini bekler ve yanıtı yapılandırılan yerde bir kutuda gösterir (hedef öğenin öncesinde, sonrasında veya içinde). Varsayılan olarak yalnızca soru gibi görünen girişleri yanıtlar.

Script etiketindeki öznitelikler:

Betik çerez yerleştirmez, verileri yalnızca sessionStorage içinde saklar. CSP için script-src https://cdn.reactive.chat ve connect-src https://ws.reactive.chat gerekir (Güvenlik ve CSP).

Sohbete aktarma

Ziyaretçi kutuda takip sorusu sorarsa Takip sorusu ayarına bağlı olarak sohbet widget’ında devam eder (ReactiveChat('continueConversation', id, text) veya ReactiveChat('startConversation', text)) ya da aynı kutuda yanıtlanır. Sayfada sohbet widget’ı yoksa takip sorusu her zaman kutuda kalır.

Stil

Kutu (.rc-ai) kendi CSS koduyla gelir ve sayfanızın stil sıfırlamalarına karşı korunur. En düşük seçicilikte değişkenlerle düzenleyebilirsiniz:

.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;
}

Tek tek parçaları hesabınızdaki Özel CSS alanında .rc-ai .rc-ai__teil { … } ile değiştirirsiniz; örneğin .rc-ai .rc-ai__hinweis { display: none; }. Koruyucu katman, sayfanızdaki #id veya !important içeren kurallara karşı korumaz.

HTTP arayüzü

Sunucuda oluşturulan arama sayfaları veya kendi arayüzleriniz için kimlik doğrulamasız ve çerezsiz, herkese açık arayüzün adresi: https://ws.reactive.chat/api/suche/SITE_KEY.

Tüm uç noktalar için ortak:

GET /api/suche/SITE_KEY?locale=de – kutunun yapılandırması, CSS kodu ve boş şablonu (Cache-Control: public, max-age=60):

POST /api/suche/SITE_KEY – soru için kutunun hazır HTML kodu; gövde en fazla 4 KB:

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 – yanıtın kendisi Server-Sent Events akışı olarak; gövde en fazla 8 KB:

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

Yanıt 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…"}}

fertig veya fehler sonrasında akış biter. Başlamadan önceki hatalar da tam olarak bir fehler içeren akış olarak gelir (HTTP 404, 429, 400, 413, 503 veya 200). 45 saniye sonra metin yoksa veya 90 saniye sonra bitiş yoksa fehler zeit gelir. Bağlantıyı kapatırsanız yanıt iptal edilir. Yol üzerindeki proxy akışı arabelleğe almadan iletmelidir.

// 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]));
  }
}

Sonraki: Gizlilik entegrasyonu

Paskutinį kartą atnaujinta: