Přejít na hlavní obsah
SDK pro chatbot v Reactu

Vytvořte si vlastní chatovací UI v Reactu

Propojte komponenty React s ChattyBox pomocí @openstaticfish/chattybox. Váš tým řídí vykreslování a stav, zatímco spravovaná infrastruktura zajišťuje odpovědi založené na zdrojích, citace a seskupování konverzací.

Prochází stránky publikovaných dokumentůOdpovědi citované zdrojemVloží s jedním skriptemNevyžaduje se migrace dokumentůNení vyžadována kreditní kartaVáš obsah zůstává váš
Zeptejte se ChattyBox
x
Kde mám začít, když potřebuji spolehlivou odpověď z tohoto webu?
Začněte přidáním URL veřejného webu do ChattyBox. Vyhledává indexovaný obsah pro vedení odpovědí a může zobrazit odkazy na zdrojové stránky ke kontrole návštěvníky. Před spuštěním otestujte odpovědi i náhradní chování.
iZdroje3^
Platforma React průvodce
chattybox.ai
Analytika
chattybox.ai
Domov
chattybox.ai
Zeptejte se...
Běží na ChattyBox
Vytvořeno pro Produktové týmy používající React

Spusťte chatbota s citacemi zdrojů bez přestavby svého webového zásobníku

ChattyBox prochází váš stávající web, dokumentaci, centrum nápovědy, CMS nebo znalostní bázi a poté vloží chatbota, který odpovídá na základě vašeho publikovaného obsahu, nikoli obecné paměti modelu.

Vytvořte vlastní komponenty pro zprávy, citace, načítání, záložní odpovědi a chyby.
Uchovávejte ID konverzací ve stavu Reactu vyhrazeném jednotlivým návštěvníkům pro navazující otázky.
Používejte veřejné API klíče v prohlížeči s volitelným omezením na přesné originy pro dodatečnou ochranu.
Nemusíte udržovat vlastní crawler, vektorové úložiště, vyhledávací službu ani generovací pipeline.
1Krok pracovního postupu

Nainstalujte JavaScript SDK do své aplikace React.

2Krok pracovního postupu

Vytvořte jednoho klienta Chattybox mimo cestu vykreslování komponenty.

3Krok pracovního postupu

Odesílejte zprávy z obsluhy události a aktualizujte stav UI pomocí odpovědi.

4Krok pracovního postupu

Vykreslete odkazy na zdroje a ošetřete strukturovaná selhání ChattyboxError.

Spuštění ve třech krocích

Vložte svou adresu URL Platforma React, otestujte citované odpovědi a nainstalujte widget.

Vytvořit chatbot v Reactu
Integrace s Reactem

Začleňte chat založený na zdrojích do svého stávajícího systému komponent

Namísto přizpůsobování se pevnému obalu widgetu použijte vzory pro stav, přístupnost, stylování a design systém, které vaše aplikace už využívá.

Cesta rozhodnutí

Pomocí těchto kontrolních bodů se můžete rozhodnout, zda má ChattyBox sedět vedle vaší platformy dokumentů, nahradit samostatného asistenta nebo zůstat izolovaný pro testování.

01

Vlastní komponenty

Sestavte zprávy, karty citací, výzvy, prázdné stavy a ovládací prvky ze svých vlastních komponent React.

02

Stav podle vašich pravidel

Použijte lokální stav nebo svou stávající stavovou vrstvu a současně udržujte konverzace jednotlivých návštěvníků oddělené.

03

Přístupné odpovědi

Ovládejte ve své aplikaci fokus, živé oblasti, chování klávesnice a oznamování chyb.

04

Spravovaný backend

Integrace v prohlížeči zůstává malá, zatímco ChattyBox zajišťuje indexování obsahu, vyhledávání a odpovědi s citacemi.

Instalační cesta

Propojte komponentu React s ChattyBoxem

Vytvořte klienta jednou, volejte ho z obsluhy události a uchovávejte ID konverzace každého návštěvníka ve stavu komponenty nebo aplikace.

  1. 1Přidejte @openstaticfish/chattybox do aplikace React.
  2. 2Inicializujte klienta pomocí veřejných proměnných prostředí z Vite nebo používaného frameworku.
  3. 3Uložte vrácenou zprávu, zdroje a ID konverzace do stavu vyhrazeného návštěvníkovi.
Vytvořit chatbot v Reactu
Chat.tsx
tsx
import { useState, type FormEvent } from 'react';
import { Chattybox, ChattyboxError, type ChatResponse } from '@openstaticfish/chattybox';

// Vite browser example. Other frameworks use different public environment APIs.
const chattybox = new Chattybox({
  apiKey: import.meta.env.VITE_CHATTYBOX_API_KEY,
  baseUrl: import.meta.env.VITE_CHATTYBOX_API_URL,
});

export function Chat() {
  const [question, setQuestion] = useState('');
  const [answer, setAnswer] = useState<ChatResponse | null>(null);
  const [pending, setPending] = useState(false);
  const [error, setError] = useState('');

  async function ask(event: FormEvent<HTMLFormElement>) {
    event.preventDefault();
    const message = question.trim();
    if (pending || !message || message.length > 2000) return;
    setPending(true);
    setError('');
    try {
      setAnswer(await chattybox.sendMessage({
        message,
        // Groups stored messages; previous turns are not sent to the model.
        conversationId: answer?.conversationId,
      }));
      setQuestion('');
    } catch (failure) {
      setError(failure instanceof ChattyboxError
        ? failure.status + ': ' + failure.message
        : 'Chat could not be completed.');
    } finally {
      setPending(false);
    }
  }

  const sources = answer?.sources.filter((source) => {
    try { return ['https:', 'http:'].includes(new URL(source).protocol); }
    catch { return false; }
  }) ?? [];

  return (
    <section aria-label="Chat">
      <form onSubmit={ask}>
        <label>Question
          <input value={question} maxLength={2000} disabled={pending}
            onChange={(event) => setQuestion(event.target.value)} />
        </label>
        <button type="submit" disabled={pending || !question.trim()}>
          {pending ? 'Sending...' : 'Send'}
        </button>
      </form>
      {error && <p role="alert">{error}</p>}
      <div aria-live="polite" aria-busy={pending}>
        <p style={{ whiteSpace: 'pre-wrap' }}>{answer?.message}</p>
        {sources.length > 0 && <ul aria-label="Sources">
          {sources.map((source, index) => <li key={index}>
            <a href={source} target="_blank" rel="noopener noreferrer">{source}</a>
          </li>)}
        </ul>}
      </div>
    </section>
  );
}

// Render <Chat /> in your app. This shows the latest answer, not a saved transcript.
// No automatic retries: see the SDK retry-safety guide before adding retries.
Časté dotazy

Běžné otázky

1

Mohu s ChattyBoxem vytvořit vlastní chatbot v Reactu?

Ano. JavaScript SDK vrací zprávy, ID konverzací a zdrojové URL, takže vaše aplikace React může vykreslit zcela vlastní rozhraní.

2

Poskytuje ChattyBox komponentu React?

Balíček neexportuje komponentu React ani hooky. Použijte headless metody s vlastními komponentami nebo zavolejte mountWidget() z trvalého rozvržení v prohlížeči a načtěte udržovaný plovoucí widget.

3

Kde mám v Reactu vytvořit klienta Chattybox?

Vytvořte ho jednou mimo cestu vykreslování komponenty nebo ve stabilním provideru aplikace, nikoli znovu při každém vykreslení.

4

Mohu místo toho použít hostovaný widget v Reactu?

Ano. Pokud chcete udržované rozhraní namísto vlastního vykreslování v Reactu, použijte průvodce instalací hostovaného widgetu.

Začněte zdarma

Není vyžadována kreditní karta. Váš obsah se nepoužívá k trénování modelů.

Vytvořte si chatbota zdarma

Tarif Free. Bez karty.

Používáme volitelné nástroje pro analytiku a správu tagů, abychom porozuměli používání webu. Zvolte, zda povolíte Ahrefs Web Analytics, PostHog a Google Tag Manager. Vypnutí analytiky tuto stránku znovu načte, aby se změna správně projevila. Základní funkce webu a monitorování chyb nejsou touto volbou ovlivněny. Přečtěte si naše zásady ochrany soukromí.