2016-02-08 18 views
9

Attualmente sto usando api.ai, per creare un agente per eseguire compiti specifici, ma una domanda a cui non ho risposta è, posso fargli imparare qualcosa mentre chatto, significa che parlo il mio nome è 'John Cena ' e lei dovrebbe memorizzarlo e poi ogni volta che le chiedo di nuovo bot dovrebbe rispondermi. so che c'è un modo per farlo accedendo allo api.ai web e aggiungendo manualmente le voci, ma non sarà d'aiuto, c'è del lavoro a livello di programmazione o automaticamente? il file che ho usato per esercitarmi è dato in github. e qui funziona DEMOCome far sì che l'agente api.ai impari qualcosa in modo dinamico?

risposta

4

Fondamentalmente è necessario che il proprio bot "impari" i fatti. Ci sono molti modi per raggiungere questo obiettivo, ma recentemente il modo più comune è quello di organizzare la conoscenza in "Tripli" semantici e archiviare la conoscenza in un repository Graph (come Neo4j, Titan, Spark Graph, ecc.). Nel tuo esempio, "il mio nome è John Cena" si tradurrebbe in un triplo simile ("anubava", "Nome", "John Cena"). In questo modo, la prossima volta che accedi come anubhava e chiedi "Qual è il mio nome?", Si tradurrebbe in una ricerca Graph che restituirà "John Cena". Una parola di cautela, il raggiungimento di questo non è banale e richiederebbe una quantità significativa di messa a punto. Per maggiori informazioni, è possibile controllare here e here.

Infine, la maggior parte delle soluzioni complete (che io sappia), sono soluzioni lato server. Se vuoi che l'intera knowledge base risieda nel tuo dispositivo mobile, potresti probabilmente utilizzare le risorse lì come fonte di ispirazione e creare il tuo repository di dati collegati utilizzando un database incorporato.

Spero che questo aiuti. In bocca al lupo.

1

Per memorizzare e richiamare il nome dell'utente, è necessario impostare un webhook con alcune funzionalità di persistenza dei dati di base. Qualsiasi database o archivio di valori chiave funzionerebbe correttamente.

Ecco la ripartizione:

  1. Implementare webhook adempimento per l'intento che cattura il nome dell'utente. Il webhook dovrebbe memorizzare il nome insieme a un ID identificativo univoco che devi fornire dal tuo front-end nel sessionId o come parametro di contesto nella tua chiamata a /query.
  2. Implementare webhook fulfillment per l'intento che legge il nome dell'utente. Il webhook dovrebbe cercare il nome per ID e restituire una risposta che indica all'utente il loro nome.

La documentazione di alto livello per la scrittura di un webhook adempimento sono qui:

https://docs.api.ai/docs/webhook