Zum Hauptinhalt springen
React-Chatbot-SDK

Entwickeln Sie Ihre eigene React-Chatbot-Oberfläche

Verbinden Sie React-Komponenten über @openstaticfish/chattybox mit ChattyBox. Ihr Team steuert Darstellung und Zustand; die verwaltete Infrastruktur übernimmt quellenbezogene Antworten, Quellenangaben und Gesprächsgruppierung.

Crawlt veröffentlichte DokumentseitenQuellenzitierte AntwortenEinbettung mit einem SkriptKeine Dokumentenmigration erforderlichKeine Kreditkarte erforderlichIhre Inhalte bleiben Ihre Inhalte
ChattyBox fragen
x
Wo sollte ich anfangen, wenn ich eine verlässliche Antwort von dieser Website brauche?
Fügen Sie zunächst Ihre öffentliche Website-URL zu ChattyBox hinzu. Es nutzt abgerufene indexierte Inhalte als Grundlage und kann Quellenlinks zur Prüfung anzeigen. Testen Sie Antworten und Fallbacks vor dem Start.
iQuellen3^
React-Integration Leitfaden
chattybox.ai
Analysen
chattybox.ai
Startseite
chattybox.ai
Eine Frage stellen...
Bereitgestellt von ChattyBox
Entwickelt für React-Produktteams

Starten Sie einen quellenbelegten Chatbot, ohne Ihren Website-Stack neu aufzubauen

ChattyBox crawlt Ihre bestehende Website, Dokumentation, Ihr Help Center, CMS oder Ihre Wissensdatenbank und bettet anschließend einen Chatbot ein, der aus Ihren eigenen veröffentlichten Inhalten statt aus dem allgemeinen Modellgedächtnis antwortet.

Erstellen Sie eigene Komponenten für Nachrichten, Quellenangaben, Ladezustände, Fallbacks und Fehler.
Speichern Sie Konversations-IDs für Folgefragen im besucherspezifischen React-Status.
Nutzen Sie öffentliche Browser-API-Schlüssel mit optionalen exakten Origin-Beschränkungen zur zusätzlichen Absicherung.
Betreiben Sie keinen eigenen Crawler, Vektorspeicher, Suchdienst oder Generierungsprozess.
1Workflow-Schritt

Installieren Sie das JavaScript-SDK in Ihrer React-Anwendung.

2Workflow-Schritt

Erstellen Sie einen Chattybox-Client außerhalb des Komponenten-Renderpfads.

3Workflow-Schritt

Senden Sie Nachrichten in einem Event-Handler und aktualisieren Sie den UI-Status mit der Antwort.

4Workflow-Schritt

Zeigen Sie Quelllinks an und behandeln Sie strukturierte ChattyboxError-Fehler.

Dreistufiger Start

Fügen Sie Ihre React-Integration-URL ein, testen Sie die zitierten Antworten und installieren Sie dann das Widget.

React-Chatbot entwickeln
React-Integration

Integrieren Sie fundierten Chat in Ihr Komponentensystem

Nutzen Sie die vorhandenen Muster Ihrer Anwendung für Status, Barrierefreiheit, Styling und Designsystem, statt sich an eine feste Widget-Hülle anzupassen.

Entscheidungsweg

Verwenden Sie diese Prüfpunkte, um zu entscheiden, ob ChattyBox neben Ihrer Dokumentenplattform stehen, einen separaten Assistenten ersetzen oder zum Testen isoliert bleiben soll.

01

Eigene Komponenten

Erstellen Sie Nachrichten, Quellenkarten, Vorschläge, Leerzustände und Steuerelemente aus eigenen React-Komponenten.

02

Status nach Ihren Regeln

Nutzen Sie lokalen Status oder Ihre vorhandene Statusschicht und halten Sie Konversationen zwischen Besuchern getrennt.

03

Barrierefreie Antworten

Steuern Sie Fokus, Live-Regionen, Tastaturverhalten und Fehlerankündigungen in Ihrer Anwendung.

04

Verwaltetes Backend

Halten Sie die Browser-Integration klein, während ChattyBox Inhaltsindexierung, Suche und Antworten mit Quellenangaben übernimmt.

Installationspfad

React-Komponente mit ChattyBox verbinden

Erstellen Sie den Client einmal, rufen Sie ihn in einem Event-Handler auf und speichern Sie die Konversations-ID jedes Besuchers im Komponenten- oder Anwendungsstatus.

  1. 1Fügen Sie @openstaticfish/chattybox zur React-Anwendung hinzu.
  2. 2Initialisieren Sie den Client mit öffentlichen Umgebungsvariablen von Vite oder Ihrem Framework.
  3. 3Speichern Sie Nachricht, Quellen und Konversations-ID im besucherspezifischen Status.
React-Chatbot entwickeln
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.
Häufige Fragen

Häufige Fragen

1

Kann ich mit ChattyBox einen eigenen React-Chatbot entwickeln?

Ja. Das JavaScript-SDK gibt Nachrichten, Konversations-IDs und Quell-URLs zurück, sodass Ihre React-Anwendung eine vollständig eigene Oberfläche darstellen kann.

2

Bietet ChattyBox eine React-Komponente an?

Es werden keine React-Komponenten oder Hooks exportiert. Nutzen Sie Headless-Methoden mit eigenen Komponenten oder rufen Sie mountWidget() aus einem persistenten Browser-Layout auf, um das gepflegte schwebende Widget zu laden.

3

Wo sollte ich den Chattybox-Client in React erstellen?

Erstellen Sie ihn einmal außerhalb des Komponenten-Renderpfads oder in einem stabilen Anwendungs-Provider, nicht bei jedem Rendern neu.

4

Kann ich stattdessen das gehostete Widget in React verwenden?

Ja. Nutzen Sie die Installationsanleitung für das gehostete Widget, wenn Sie eine gepflegte Oberfläche statt eigener React-Darstellung wünschen.

Kostenlos starten

Keine Kreditkarte erforderlich. Ihre Inhalte werden nicht für Modelltraining verwendet.

Erstellen Sie einen kostenlosen Chatbot

Kostenloser Tarif. Keine Karte nötig.

Wir verwenden optionale Analyse- und Tag-Management-Tools, um zu verstehen, wie die Website genutzt wird. Entscheiden Sie, ob Sie Ahrefs Web Analytics, PostHog und Google Tag Manager erlauben möchten. Wenn Sie die Analyse deaktivieren, wird diese Seite neu geladen, damit die Änderung sauber wirksam wird. Die grundlegenden Funktionen der Website und die Fehlerüberwachung werden von dieser Auswahl nicht gesteuert. Datenschutzerklärung lesen.