Ga naar de hoofdinhoud
SDK voor React-chatbots

Bouw je eigen React-chatbotinterface

Verbind React-componenten met ChattyBox via @openstaticfish/chattybox. Uw team beheert weergave en status; de beheerde infrastructuur verzorgt brongebonden antwoorden, bronverwijzingen en gespreksgroepering.

Crawlt gepubliceerde documentpagina'sBronvermelde antwoordenIngesloten met één scriptGeen documentmigratie vereistGeen creditcard vereistJe content blijft van jou
Vraag ChattyBox
x
Waar moet ik beginnen als ik een betrouwbaar antwoord van deze site nodig heb?
Voeg eerst uw openbare website-URL toe aan ChattyBox. Het haalt geïndexeerde inhoud op om antwoorden te sturen en kan bronlinks tonen ter controle. Test antwoorden en terugvalantwoorden vóór de lancering.
iBronnen3^
React-integratie gids
chattybox.ai
Analyse
chattybox.ai
Startpagina
chattybox.ai
Stel een vraag...
Aangedreven door ChattyBox
Gebouwd voor React productteams

Start een chatbot met bronvermeldingen zonder uw website-stack opnieuw op te bouwen

ChattyBox crawlt uw bestaande website, documentatie, helpcentrum, CMS of kennisbank en sluit vervolgens een chatbot in die antwoord geeft op basis van uw eigen gepubliceerde inhoud in plaats van het generieke modelgeheugen.

Maak aangepaste bericht-, citatie-, laad-, fallback- en foutcomponenten.
Houd gespreks-ID's in de op bezoekers gerichte status React voor vervolgvragen.
Gebruik openbare browser-API-sleutels, met optionele exacte originbeperkingen voor extra beveiliging.
Vermijd het onderhouden van uw eigen crawler, vectoropslag, ophaalservice of generatiepijplijn.
1Workflowstap

Installeer JavaScript SDK in uw React-applicatie.

2Workflowstap

Maak één Chattybox-client buiten het renderpad van de component.

3Workflowstap

Verzend berichten vanaf een gebeurtenishandler en update de status UI met het antwoord.

4Workflowstap

Geef bronlinks weer en handel gestructureerde ChattyboxError-fouten af.

Lancering in drie stappen

Plak uw React-integratie URL, test de geciteerde antwoorden en installeer vervolgens de widget.

Bouw een React chatbot
React-integratie

Voeg geaarde chat toe aan uw bestaande componentsysteem

Gebruik de status-, toegankelijkheids-, stijl- en ontwerpsysteempatronen die uw toepassing al volgt in plaats van zich aan te passen aan een vaste widgetshell.

Beslissingspad

Gebruik deze controlepunten om te beslissen of ChattyBox naast uw documentplatform moet worden geplaatst, een afzonderlijke assistent moet vervangen of geïsoleerd moet blijven om te testen.

01

Eigendom van componenten

Stel berichten, citatiekaarten, aanwijzingen, lege statussen en bedieningselementen samen vanuit uw eigen React-componenten.

02

Geef aan wat uw voorwaarden zijn

Gebruik de lokale staat of uw bestaande staatslaag terwijl u gesprekken tussen bezoekers geïsoleerd houdt.

03

Toegankelijke reacties

Beheer de focus, liveregio's, toetsenbordgedrag en foutaankondigingen binnen uw toepassing.

04

Beheerde backend

Houd de browserintegratie klein, terwijl ChattyBox de inhoudsindexering, het ophalen en geciteerde antwoorden afhandelt.

Installatiepad

Sluit een React-component aan op ChattyBox

Maak de client één keer aan, roep deze aan vanuit een gebeurtenishandler en bewaar de gespreks-ID van elke bezoeker in de component- of applicatiestatus.

  1. 1Voeg @openstaticfish/chattybox toe aan de React-applicatie.
  2. 2Initialiseer de client met Vite of door het raamwerk geleverde openbare omgevingsvariabelen.
  3. 3Sla het geretourneerde bericht, de bronnen en de gespreks-ID op in de bezoekersstatus.
Bouw een React chatbot
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.
Veelgestelde vragen

Veelgestelde vragen

1

Kan ik een aangepaste React chatbot bouwen met ChattyBox?

Ja. De JavaScript SDK retourneert berichten, gespreks-ID's en bron-URLs, zodat uw React-toepassing een volledig aangepaste interface kan weergeven.

2

Biedt ChattyBox een React-component?

Er worden geen React-componenten of hooks geëxporteerd. Gebruik de headless-methoden met uw eigen componenten, of roep mountWidget() aan vanuit een blijvende browserlay-out om de onderhouden zwevende widget te laden.

3

Waar moet ik de Chattybox-client maken in React?

Maak het eenmalig buiten het renderpad van de component of in een stabiele applicatieprovider, in plaats van voor elke render een nieuwe client te bouwen.

4

Kan ik in plaats daarvan de gehoste widget in React gebruiken?

Ja. Gebruik de gehoste widget-installatiegids als u een onderhouden interface wilt in plaats van aangepaste React-weergave.

Gratis starten

Geen creditcard vereist. Je content wordt niet gebruikt voor modeltraining.

Maak een gratis chatbot

Gratis niveau. Geen kaart nodig.

We gebruiken optionele analysetools en tools voor tagbeheer om te begrijpen hoe de site wordt gebruikt. Kies of je Ahrefs Web Analytics, PostHog en Google Tag Manager wilt toestaan. Als je analytics uitschakelt, wordt deze pagina opnieuw geladen zodat de wijziging netjes van kracht wordt. Essentiële sitefunctionaliteit en foutmonitoring vallen niet onder deze keuze. Lees ons privacybeleid.