ich versuche eine Probe in wit.ai aus, hier ist der Link:. https://wit.ai/Nayana-Manchi/CreditCardApp/storieswit.ai + Slot basierend bot + speichern Einheiten Werte in Client
Die erste Geschichte „BalanceEnquiry“ ist ein Slot basiert Geschichte der Happy Szenario funktioniert gut.Um den Zweig "cardnumbermissing" zu testen, würde ich tippen "Ich möchte mein Kreditkartenkonto auf der Karte und mein Name ist Nayana." Hier fehlen die Kartennummer letzten 4 Ziffern. Es fragt nach den letzten 4 Ziffern der Karte und dann würde ich die letzten 4 Ziffern der Karte eingeben, aber hier bekommt es keine Namensentität, die in einer früheren Nachricht gesendet wurde
Wie speichere ich den Entitätswert "name", der in der gesendet wurde Vorheriger Schritt? Es sollte die Entität beibehalten Wert Name und es sollte die letzten 4 Ziffern aus der aktuellen Konversation erhalten und dann die Waage, die hart codiert ist.
Code und die Bilder beigefügt.
Es wird hilfreich sein, wenn Sie den Client-Code (Javascript) für das Rezept teilen - Erstellen Sie einen Slot-basierten Bot.
'use strict';
let Wit = null;
let interactive = null;
try {
// if running from repo
Wit = require('../').Wit;
interactive = require('../').interactive;
} catch (e) {
Wit = require('node-wit').Wit;
interactive = require('node-wit').interactive;
}
const accessToken = (() => {
if (process.argv.length !== 3) {
console.log('usage: node examples/creditcardbalance.js <wit-access-token>');
process.exit(1);
}
return process.argv[2];
})();
// Quickstart example
// See https://wit.ai/ar7hur/quickstart
const firstEntityValue = (entities, entity) => {
const val = entities && entities[entity] &&
Array.isArray(entities[entity]) &&
entities[entity].length > 0 &&
entities[entity][0].value
;
if (!val) {
return null;
}
return typeof val === 'object' ? val.value : val;
};
const actions = {
send(request, response) {
const {sessionId, context, entities} = request;
const {text, quickreplies} = response;
return new Promise(function(resolve, reject) {
console.log('sending...', JSON.stringify(response));
return resolve();
});
},
getBalance({context, entities}) {
return new Promise(function(resolve, reject) {
var name = firstEntityValue(entities, "name");
var last4digit = firstEntityValue(entities, "Last4digits");
if (name && last4digit) {
context.name = name;
context.last4digit = last4digit;
context.balance = 'Rs.10000' + name + last4digit; // we should call a credit card API here
delete context.cardnumbermissing;
}
else {
context.cardnumbermissing = true;
context.name = name;
delete context.balance;
}
return resolve(context);
});
},
};
const client = new Wit({accessToken, actions});
interactive(client);
// JavaScript source code
Danke Melissa. Ich verstehe was du meinst. Es konnte jedoch kein Beispiel zum Abrufen von Variablen aus dem Kontext gefunden werden. Könnten Sie bitte zwei Zeilen Code teilen, wie Sie es erreichen können? –
sonst if (context.cuisine) { console.log ('bereits in vorherigen convo' cuisine erhalten); var Nachbarschaft = firstEntityValue (Einheiten, 'Nachbarschaft'); context.neigborhood = Nachbarschaft; var cuisine = context.cuisine; } – Melissa
Vielen Dank. Es hat mir geholfen. –