Siirry pääsisältöön
Next.js-chatbot-SDK

Lisää mukautettu AI-chatbot Next.js-sovellukseen

Käytä @openstaticfish/chattybox-pakettia rajatussa asiakasrajapinnassa, kun muu App Router -sovellus säilyy palvelinrenderöitynä. ChattyBox hoitaa tiedonhaun, lähdeviitteet, keskustelut ja skaalauksen.

Indeksoi julkaistut asiakirjasivutLähdeviittauksiaUpota yhdellä skriptilläAsiakirjojen siirtoa ei vaaditaLuottokorttia ei vaaditaSisältösi pysyy sinun
Kysy ChattyBoxilta
Mistä minun kannattaa aloittaa, jos tarvitsen luotettavan vastauksen tältä sivustolta?
Aloita lisäämällä julkisen sivustosi URL ChattyBoxiin. Se hakee indeksoitua sisältöä vastausten tueksi ja voi näyttää lähdesivulinkkejä kävijöiden tarkistettavaksi. Testaa vastaukset ja varavastaukset ennen julkaisua.
iLähteet3^
Next.js-alusta opas
chattybox.ai
Analytiikka
chattybox.ai
Etusivu
chattybox.ai

Havainnollistava keskustelu — ei live-chat.

Palvelun tarjoaa ChattyBox

Lanseeraa lähdeviitteillä varustettu chatbot rakentamatta sivustosi pinoa uudelleen

ChattyBox indeksoi nykyisen verkkosivustosi, dokumentaatiosi, ohjekeskuksesi, CMS:si tai tietämyskantasi ja upottaa sitten chatbotin, joka vastaa omasta julkaistusta sisällöstäsi eikä mallin yleisen muistin perusteella.

Pidä interaktiivinen chat-näkymä pienessä use client -rajapinnassa.
Tuo selaimeen NEXT_PUBLIC-muuttujilla vain julkinen, origineihin rajattu widget-avain.
Esitä lähdeviitteelliset vastaukset nykyisellä Next.js-design systemilläsi ja sovelluskuorellasi.
Anna ChattyBoxin hallita haravointi, tiedonhaku, vektoritallennus, vastausten luonti ja skaalaus.
Työnkulun vaihe

Asenna @openstaticfish/chattybox Next.js-sovellukseen.

Työnkulun vaihe

Lisää julkinen widgetin API-avain ja API-URL-osoite NEXT_PUBLIC-ympäristömuuttujina.

Työnkulun vaihe

Luo asiakaskomponentti chatin tilalle ja selainvuorovaikutukselle.

Työnkulun vaihe

Tuo asiakaskomponentti palvelinkomponenttina toimivalle sivulle tai asetteluun.

Kolmivaiheinen käynnistys

Liitä Next.js-alusta URL-osoite, testaa lainatut vastaukset ja asenna sitten widget.

Rakenna Next.js-chatbot
App Router -integraatio

Lisää interaktiivisuus luopumatta palvelinrenderöinnistä

Pidä SDK asiakasrajalla, jossa chat-vuorovaikutus tapahtuu, ja säilytä palvelinkomponentit muualla sovelluksessa.

Päätöksen polku

Käytä näitä tarkistuspisteitä päättääksesi, pitäisikö ChattyBox istua dokumenttialustan viereen, vaihtaa erillinen avustaja vai pysyä erillään testausta varten.

01

Pieni asiakasrajapinta

Merkitse use client -direktiivillä vain interaktiivinen chat-moduuli koko sivun tai asettelun siirtämisen sijaan selaimeen.

02

Selkeä julkisten avainten käyttö

Käytä selaimessa turvallista projektiavainta sallituilla origineilla; älä koskaan paljasta hallintatunnuksia NEXT_PUBLIC-muuttujissa.

03

Mukautettu tuotekäyttöliittymä

Esitä viestit ja lähdeviitteet omassa navigaatiossasi, käyttäjäalueellasi, dokumentaatiokuoressasi tai tukityönkulussasi.

04

Ei omaa RAG-palvelua

Älä lisää route handlereita vain hallitun selain-API:n välityspalvelimeksi, ellei tuotteellasi ole konkreettista palvelinpuolen tarvetta.

Asennuspolku

Luo Next.js App Router -chat-asiakas

SDK käyttää fetchiä ja selaimessa näkyviä projektitunnuksia, joten alusta se asiakasmoduulissa. Älä sijoita salaisuuksia tai hallinta-API:en tunnuksia NEXT_PUBLIC-muuttujiin.

  1. 1Asenna npm-paketti ja määritä origineihin rajattu julkinen avain.
  2. 2Luo use client -komponentti, joka hallitsee viestien ja keskustelun tilaa.
  3. 3Esitä komponentti palvelinrenderöidyllä sivulla muuttamatta koko reittiä asiakaskomponentiksi.
Rakenna Next.js-chatbot
app/components/chat.tsx
tsx
'use client';

import { useState, type FormEvent } from 'react';
import { Chattybox, ChattyboxError, type ChatResponse } from '@openstaticfish/chattybox';

const chattybox = new Chattybox({
  apiKey: process.env.NEXT_PUBLIC_CHATTYBOX_API_KEY!,
  baseUrl: process.env.NEXT_PUBLIC_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,
        // Same ID includes up to 12 recent saved messages, not the full transcript.
        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>
  );
}

// Import and render <Chat /> from your page or layout. This shows the latest answer, not a saved transcript.
// No automatic retries: see the SDK retry-safety guide before adding retries.
UKK

Yleisiä kysymyksiä

1

Toimiiko ChattyBox SDK Next.js App Routerin kanssa?

Kyllä. Käytä sitä asiakaskomponentissa interaktiiviseen chat-tilaan ja esitä komponentti App Router -sivulta tai -asettelusta.

2

Tarvitsenko Next.js route handlerin ChattyBoxia varten?

Et tavalliseen selainintegraatioon. Julkiset widget-avaimet on suunniteltu asiakaskäyttöön, ja ne voidaan rajata hyväksyttyihin origineihin.

3

Ovatko NEXT_PUBLIC ChattyBox -avaimet salaisuuksia?

Julkinen widget-avain tunnistaa projektin, mutta se ei ole hallintatunnus. Rajaa se tuotanto- ja esikatseluorigineihisi äläkä koskaan paljasta hallinnollisia salaisuuksia.

4

Voinko käyttää hostattua ChattyBox-widgetiä Next.js:n kanssa?

Kyllä. Hostatun widgetin asennusopas näyttää next/script-ratkaisun, kun haluat ylläpidetyn käyttöliittymän mukautetun SDK-käyttöliittymän sijaan.

Aloita ilmaiseksi

Luottokorttia ei vaadita

Luo ilmainen chatbot

Ilmainen taso. Ei korttia.