AIsuru Docs
AIsuru
AIsuru
  • 0. Introduzione ad AIsuru
    • Cos'è AIsuru
    • Per chi è AIsuru?
    • Panoramica delle funzionalità principali
    • Che differenza c'è con ChatGPT?
    • Requisiti di sistema
  • 1. Primi passi
    • Creazione di un account
    • Navigazione dell'interfaccia utente
    • Creazione del primo Agente
      • Come creare un Agente
      • Importazione rapida di un documento
      • Condivisione
    • Video riassuntivo
    • Gestione account
  • 2. Istruzione dell'Agente e gestione dei contenuti
    • Come istruire un Agente: panoramica dei metodi
    • Istruiscimi: insegna nuove informazioni all'Agente chiacchierando
    • Contenuti
      • Cosa sono i contenuti e perché sono importanti
      • Creazione manuale dei contenuti
      • Validazione e correzione dei contenuti
      • Modifica e aggiornamento dei contenuti
    • Importazione di documenti
      • Come funziona l'importazione di documenti
      • Importare documenti testuali
      • Gestione delle immagini nei documenti
    • Dizionario
    • Istruzione: sezione avanzata
      • Personalizzazione dei contenuti
        • Come attribuire contenuti a persone o ruoli specifici
        • Personalizzare le risposte in base a data e luogo dell'utente
        • Gestione dei suggerimenti
        • Contesto: argomenti ed etichette
        • Gestione dei testi preformattati (snippet di codice)
        • Utilizzo del timeout
      • Importazione avanzata di documenti
        • Creare una gerarchia dei documenti
        • Importare un documento non supportato
      • Messaggio di benvenuto
      • Risposte predefinite
      • Formattazione dei messaggi: HTML e formule matematiche
      • Metodi avanzati di istruzione
  • 3. Modelli linguistici e IA generativa
    • Attiva l'IA generativa e cambia il modello
    • Istruzioni IA
      • Istruzioni IA: cosa sono e come modificarle
      • Come scrivere istruzioni efficaci
      • Esempi di istruzioni efficaci
    • Provider e modelli di IA generativa
    • IA generativa: sezione avanzata
      • Altre impostazioni dell'IA generativa
      • Crea e gestisci le configurazioni dei modelli
      • Cosa fare in caso di problemi
  • 4. Condivisione e pubblicazione
    • Crea e gestisci i layout di condivisione
    • Codice di embed
    • Condividi i tuoi Agenti
      • Condividi un link al tuo Agente
      • Incorpora l'Agente sul tuo sito web
      • Scarica una pagina HTML con il tuo Agente
      • Integra l'Agente con il tuo blog WordPress
      • Inserisci l'Agente all'interno di totem e dispositivi fisici
      • Aggiungi l'Agente al tuo spazio virtuale (VR e AR)
      • Integrazione con WhatsApp Business
    • Visibilità in homepage
    • Condivisione: sezione avanzata
      • Domanda iniziale
      • Personalizzazione avanzata dell'interfaccia utente
      • Analisi del codice di embed
      • Modificare il nome dell'Agente
  • 5. Funzionalità avanzate
    • Backup dell'Agente
    • Trasferimento e cancellazione dell'Agente
    • Integrazioni
      • Funzioni
        • Cosa sono le funzioni
        • Funzioni di AIsuru
        • Funzioni avanzate
          • Come configurare una funzione personalizzata
          • Funzioni avanzate: best practice e casi d'uso
            • Caso d'uso - Aggiornamento automatico: il tuo Agente sempre connesso al web
            • Caso d'uso - Prendere dati live da un servizio esterno
          • Problemi comuni con le funzioni avanzate
          • Cache delle funzioni
      • Intenti dinamici
        • Cosa sono e come configurare gli intenti dinamici
        • Come usare gli slot
        • Tunneling: esempio di una live chat su AIsuru
      • Intenti dinamici o funzioni, cosa usare?
      • Copia gli intenti dinamici, gli slot e le funzioni da un altro Agente
    • Gestione degli utenti
      • Differenza tra autori e persone
      • Invito e gestione degli autori
      • Creazione e gestione delle persone
    • Fine-tuning
      • Cos'è il fine-tuning e a cosa serve
      • Come fare fine-tuning in maniera semplice con AIsuru
      • Come sfruttare modelli fine-tuned su AIsuru
    • Interfacce web: come creare esperienze interattive
  • 6. Consumi e Analytics
    • Consumi
      • Come funzionano i consumi?
      • Monitora i tuoi consumi
      • Come ricaricare i crediti
    • Analisi e ottimizzazione dell'Agente
      • Statistiche
      • Storico delle conversazioni
      • Velocità di risposta
      • Preferenze notifiche
  • 7. Estensioni
    • Gruppo di esperti
      • Cosa sono i gruppi di esperti
      • Creare un gruppo di esperti
      • Come aggiungere Agenti al gruppo e descriverli
      • Come sfruttare i contenuti nel gruppo di esperti
      • Gruppo di esperti: best practice e casi d'uso
    • Pensiero Profondo
      • Cosa è Pensiero Profondo
      • Attivazione e configurazione
      • Gestione delle memorie
      • Best practices e casi d'uso
      • Analytics
        • Ricerca interessi degli utenti
        • Ricerca di segmenti di pubblico in linguaggio naturale
    • Spazi Virtuali (VR e MR)
      • Cosa è uno spazio virtuale
      • Creazione di uno spazio virtuale
      • Aggiungere Agenti agli spazi virtuali
      • Aggiungere oggetti agli spazi virtuali
      • Entrare in uno spazio virtuale
      • Casi d'uso
    • Open Badge
  • 8. Platform as a Service (PaaS)
    • Vantaggi della PaaS
    • Come attivare e configurare la PaaS
    • Come collegare la PaaS al tuo dominio
    • Gestione degli utenti nella PaaS
    • Come controllare i consumi della piattaforma
    • Personalizzazione dell'ambiente PaaS
    • Sicurezza e privacy
    • Supporto e manutenzione
  • 9. Documentazione Frontend
    • ⚛️ Componente React
    • 🌐 Web Component
    • 🎨 Stile e Personalizzazione
    • 🔌 Client API
  • 10. Risorse aggiuntive
    • Glossario dei termini
    • Link utili e supporto
    • API Engine
      • ChatLogs
      • ContextVars
      • CorrelationPairs
      • CustomDictionary
      • Dialog
      • EventLogs
      • ExpertReferences
      • Functions
      • Intents
      • LocalizationKeys
      • Media
      • Memories
      • NLP
      • People
      • Search
      • Session
      • Stats
      • Topics
      • UnansweredQuestions
      • User
      • WebHooks
      • Models
Powered by GitBook
On this page
  • Panoramica
  • Architettura API
  • Inizializzazione Client
  • Funzionalità Core
  • Funzionalità Avanzate
  • Eventi Listener
  • Esempio Completo di Integrazione API
  1. 9. Documentazione Frontend

🔌 Client API

Previous🎨 Stile e PersonalizzazioneNext10. Risorse aggiuntive

Last updated 3 months ago

Panoramica

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:

  1. API Engine ()

    1. Gestisce sessioni e dialoghi;

    2. Gestisce funzionalità NLP;

    3. Elabora funzionalità conversazionali.

  2. API Backend ()

    1. Gestisce utenti e asset;

    2. Gestisce notifiche;

    3. 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
);

Funzionalità Core

Gestione Sessione

// Inizializza sessione base
const {
  sessionID,
  currentState
} = await memori.initSession({
  memoriID: "tuo-memori-id",
  birthdate: "1900-01-01T00:00:00.000Z",
});
// Inizializza sessione con contesto
const sessionWithContext = await memori.initSession({
  memoriID: "tuo-memori-id",
  birthdate: "1900-01-01T00:00:00.000Z",
  context: {
    location: "Milano",
    userType: "premium",
    customVariable: "valore",
  },
});

Eventi di Dialogo

// Invia messaggio di testo
const {
  currentState: dialogState
} = await memori.postTextEnteredEvent({
  sessionId: sessionID,
  text: "Ciao Memori!",
});
// Cambia contesto data
await memori.postDateChangedEvent({
  sessionId: sessionID,
  date: "2024-12-13",
});
// Cambia contesto luogo
await memori.postPlaceChangedEvent({
  sessionId: sessionID,
  place: "Roma",
});

Funzionalità Avanzate

Gestione dello Stato Globale

// 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);

Esempio Completo di Integrazione API

import memoriApiClient from "@memori.ai/memori-api-client";

async function conversazioneMemori() {
  // Inizializza client
  const memori = memoriApiClient("https://backend.memori.ai", "https://engine.memori.ai");

  try {
    // Avvia sessione
    const {
      sessionID,
      currentState
    } = await memori.initSession({
      memoriID: "tuo-memori-id",
      birthdate: "1900-01-01T00:00:00.000Z",
      context: {
        location: "Milano",
        userType: "premium",
      },
    });

    // Invia messaggio iniziale
    const {
      currentState: primaRisposta
    } = await memori.postTextEnteredEvent({
      sessionId: sessionID,
      text: "Ciao! Parlami di te.",
    });
    console.log("Memori dice:", primaRisposta.emission);

    // Aggiorna contesto
    await memori.postPlaceChangedEvent({
      sessionId: sessionID,
      place: "Roma",
    });

    // Invia messaggio successivo
    const {
      currentState: secondaRisposta
    } = await memori.postTextEnteredEvent({
      sessionId: sessionID,
      text: "Cosa puoi dirmi di questa località?",
    });
    console.log("Memori dice:", secondaRisposta.emission);

    // Esegui analisi NLP
    const lingua = await memori.guessLanguage(sessionID, secondaRisposta.emission);
    console.log("Lingua della risposta:", lingua);

    // Chiudi sessione
    await memori.closeSession(sessionID);
  } catch(error) {
    console.error("Errore:", error.resultMessage);
  }
}
Swagger
Swagger