Modulo npm che fa da wrapper alle API di backend e engine. Permette di effettuare le chiamate e fornisce i metodi disponibili, con parametri e risposte tipizzati. Utilizzabile sia lato web che lato node/server.
Architettura API
L’API Memori consiste in due componenti principali:
API Engine ()
Gestisce sessioni e dialoghi;
Gestisce funzionalità NLP;
Elabora funzionalità conversazionali.
API Backend ()
Gestisce utenti e asset;
Gestisce notifiche;
Controlla amministrazione sistema.
Inizializzazione Client
import memoriApiClient from "@memori.ai/memori-api-client";
// Inizializza con endpoint predefiniti
const memori = memoriApiClient(
"https://backend.memori.ai", // URL API
"https://engine.memori.ai" // URL Engine
);
// Ottieni stato corrente
const state = getMemoriState();
const sessionID = getMemoriState().sessionID;
// Per widget multipli
const specificState = getMemoriState("widget-integration-id");
// Lettura manuale dello stato dal DOM
const dialogState = JSON.parse(document.querySelector("div[data-memori-engine-state]") ? .dataset ? .memoriEngineState ? ?"{}");
Eventi Listener
MemoriNewDialogState
Puoi ascoltare ogni messaggio usando l’evento MemoriNewDialogState e valutare il contenuto per attivare una reazione
// Ascolta i cambiamenti di stato
document.addEventListener("MemoriNewDialogState", (e) = >{
const {
emission,
context,
sessionID
} = e.detail;
// Registra analytics
logConversazione({
sessionId: sessionID,
message: emission,
timestamp: new Date(),
context: context,
});
// Gestisce risposte specifiche
if (emission.includes("aiuto")) {
mostraPannelloAiuto();
}
});
// Gestisce fine parlato
document.addEventListener("MemoriEndSpeak", () = >{
pulisciElementiPersonalizzati();
verificaFlussoConversazione();
});
Gestione Invio Messaggi
// Messaggio base
typeMessage("Ciao!");
// Messaggio avanzato con opzioni
typeMessage("Mostra catalogo prodotti", true, // attendi messaggio precedente
false, // mostra in chat
"Caricamento catalogo..." // testo di caricamento
);
// Non mostrare il messaggio nella chat
typeMessageHidden("analizza_sentimento", true);