Saltar al contenido principal
Reaccionar SDK de chatbot

Construye el tuyo propio Reaccionar la interfaz de usuario del chatbot

Conecta componentes React a ChattyBox con @openstaticfish/chattybox. Tu equipo controla el renderizado y el estado, mientras la infraestructura gestionada se ocupa de respuestas basadas en fuentes, citas y agrupación de conversaciones.

Rastrea páginas de documentos publicadosRespuestas citadas en la fuenteIncrustado con un scriptNo se requiere migración de documentosNo se requiere tarjeta de créditoTu contenido sigue siendo tuyo
Preguntar a ChattyBox
x
¿Por dónde debería empezar si necesito una respuesta fiable de este sitio?
Empieza añadiendo la URL pública de tu sitio a ChattyBox. Recupera contenido indexado para orientar las respuestas y puede mostrar enlaces a páginas fuente para que los visitantes las revisen. Prueba las respuestas y los mensajes de respaldo antes del lanzamiento.
iFuentes3^
Reaccionar guía
chattybox.ai
Analítica
chattybox.ai
Inicio
chattybox.ai
Haz una pregunta...
Con tecnología de ChattyBox
Construido para Reaccionar equipos de productos

Lance un chatbot con citas de fuentes sin reconstruir su pila web

ChattyBox rastrea su sitio web, documentación, centro de ayuda, CMS o base de conocimientos existentes y luego inserta un chatbot que responde a partir de su propio contenido publicado, en lugar de la memoria genérica del modelo.

Cree componentes personalizados de mensajes, citas, carga, respaldo y error.
Mantenga los ID de conversación en el estado React de ámbito de visitante para preguntas de seguimiento.
Usa claves API públicas de navegador, con restricciones opcionales de origen exacto como protección adicional.
Evite mantener su propio rastreador, almacén de vectores, servicio de recuperación o canal de generación.
1Paso del flujo de trabajo

Instale el SDK de JavaScript en su aplicación React.

2Paso del flujo de trabajo

Cree un cliente Chattybox fuera de la ruta de procesamiento del componente.

3Paso del flujo de trabajo

Envíe mensajes desde un controlador de eventos y actualice el estado de la interfaz de usuario con la respuesta.

4Paso del flujo de trabajo

Represente enlaces de origen y maneje fallas estructuradas de ChattyboxError.

Lanzamiento en tres pasos

Pegue su URL Reaccionar, pruebe las respuestas citadas y luego instale el widget.

Construye un chatbot de reacción
Reaccionar integración

Integre el chat conectado a su sistema de componentes existente

Utilice los patrones de estado, accesibilidad, estilo y sistema de diseño que su aplicación ya sigue en lugar de adaptarse a un shell de widget fijo.

Camino de decisión

Utilice estos puntos de control para decidir si ChattyBox debe sentarse junto a su plataforma de documentos, reemplazar a un asistente independiente o permanecer aislado para realizar pruebas.

01

Propiedad de los componentes

Redacte mensajes, tarjetas de citas, mensajes, estados vacíos y controles desde sus propios componentes de React.

02

Estado en sus términos

Utilice el estado local o su capa de estado existente mientras mantiene las conversaciones aisladas entre los visitantes.

03

Respuestas accesibles

Controle el foco, las regiones activas, el comportamiento del teclado y los anuncios de errores dentro de su aplicación.

04

backend administrado

Mantenga pequeña la integración del navegador mientras ChattyBox maneja la indexación de contenido, la recuperación y las respuestas citadas.

Ruta de instalación

Conecte un componente de React a ChattyBox

Cree el cliente una vez, llámelo desde un controlador de eventos y mantenga el ID de conversación de cada visitante en el estado de componente o aplicación.

  1. 1Agregue @openstaticfish/chattybox a la aplicación React.
  2. 2Inicialice el cliente con Vite o variables de entorno públicas proporcionadas por el marco.
  3. 3Almacene el mensaje devuelto, las fuentes y el ID de la conversación en estado de ámbito de visitante.
Construye un chatbot de reacción
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.
Preguntas frecuentes

Preguntas comunes

1

¿Puedo crear un chatbot React personalizado con ChattyBox?

Sí. El SDK de JavaScript devuelve mensajes, ID de conversación y URL de origen para que su aplicación React pueda representar una interfaz completamente personalizada.

2

¿ChattyBox proporciona un componente React?

No se exportan componentes ni hooks de React. Usa los métodos sin interfaz con tus componentes, o llama a mountWidget() desde un diseño persistente del navegador para cargar el widget flotante mantenido.

3

¿Dónde debo crear el cliente Chattybox en React?

Créelo una vez fuera de la ruta de renderizado del componente o en un proveedor de aplicaciones estable en lugar de construir un nuevo cliente para cada renderizado.

4

¿Puedo usar el widget alojado en React?

Sí. Utilice la guía de instalación del widget alojado cuando desee una interfaz mantenida en lugar de una representación personalizada de React.

Empieza gratis

No se requiere tarjeta de crédito. Tu contenido no se usa para entrenar modelos.

Crear chatbot gratis

Plan Free. Sin tarjeta.

Utilizamos herramientas opcionales de analítica y gestión de etiquetas para comprender el uso del sitio. Elige si quieres permitir Ahrefs Web Analytics, PostHog y Google Tag Manager. Al desactivar la analítica, esta página se recargará para que el cambio se aplique correctamente. Las funciones esenciales del sitio y la monitorización de errores no dependen de esta opción. Lee nuestra política de privacidad.