SDK JavaScript
L'SDK JavaScript è il percorso consigliato per le nuove integrazioni guidate dagli sviluppatori. Crea la tua esperienza di chat mentre ChattyBox gestisce recupero, citazioni, conversazioni e scalabilità. Se vuoi un'interfaccia pronta all'uso senza aggiungere codice all'applicazione, utilizza invece il widget ospitato, che dispone di supporto completo.
Prima di iniziare
- Crea un progetto e indicizza i contenuti.
- Prova domande rappresentative nella dashboard.
- Apri la scheda Incorpora del progetto.
- Crea o seleziona una chiave API pubblica del widget e configurane le origini consentite.
- Copia l'URL API del widget mostrato insieme allo snippet di incorporamento.
Le chiavi API pubbliche del widget sono progettate per essere incluse nel codice del browser. Identificano un progetto, ma non sono credenziali di amministrazione. Limita le chiavi del browser ai domini che devono essere autorizzati a chiamare il chatbot.
Installazione
bun add @openstaticfish/chattybox
Il pacchetto è un client ESM per le applicazioni Node.js e browser attuali che forniscono fetch.
Inviare un messaggio
import { Chattybox } from '@openstaticfish/chattybox';
const chattybox = new Chattybox({
apiKey: import.meta.env.PUBLIC_CHATTYBOX_API_KEY,
baseUrl: import.meta.env.PUBLIC_CHATTYBOX_API_URL,
});
const answer = await chattybox.sendMessage({
message: 'How do I get started?',
});
console.log(answer.message);
console.log(answer.sources);
Imposta PUBLIC_CHATTYBOX_API_URL sull'URL API esatto del widget riportato nella scheda Incorpora. L'SDK accetta sia la radice del deployment sia un URL che termina con /chat.
La risposta contiene:
| Campo | Tipo | Descrizione |
|---|---|---|
message | string | La risposta generata. |
conversationId | string | L'identificatore usato per continuare la conversazione. |
sources | string[] | Gli URL delle fonti recuperate per la risposta. |
Continuare una conversazione
Conserva l'ID conversazione restituito nello stato dell'interfaccia e invialo con il messaggio successivo:
const followUp = await chattybox.sendMessage({
message: 'Can you explain the second step?',
conversationId: answer.conversationId,
});
Non riutilizzare lo stesso ID conversazione per visitatori distinti e non correlati. Crea una nuova conversazione omettendo conversationId dal loro primo messaggio.
Gestire gli errori
import { Chattybox, ChattyboxError } from '@openstaticfish/chattybox';
try {
await chattybox.sendMessage({ message: 'Where is the API reference?' });
} catch (error) {
if (error instanceof ChattyboxError) {
console.error(error.status, error.code, error.message);
}
}
ChattyboxError.status contiene lo stato HTTP. code è presente quando l'API restituisce un codice di errore strutturato.
Compatibilità avanzata con il widget
L'SDK espone anche getWidgetConfig() e getWidgetTranslations(locale). Questi metodi supportano i client che vogliono riprodurre le impostazioni del progetto e le etichette localizzate del widget ospitato. Un'interfaccia completamente personalizzata può ignorarli.
Passaggi successivi
- Preferisci un'interfaccia gestita che non richieda sviluppo? Installa
widget.js. - Personalizza l'interfaccia ospitata in Personalizzazione del widget ospitato.
- Prima del lancio, verifica le restrizioni di origine, le risposte di fallback, le citazioni e il comportamento sui dispositivi mobili con la checklist di lancio.