にエンティティ値を保存するには、ここにリンクがある:。https://wit.ai/Nayana-Manchi/CreditCardApp/storieswit.ai +スロットベースのボット+クライアント
最初の物語「BalanceEnquiryは」スロットベースの物語であるザ・幸せなシナリオがうまくいきます。 "cardnumbermissing"ブランチをテストするには、 "私はクレジットカードの残高をカードに入れて、私の名前はナヤナ"と入力します。ここで最後の4桁のカード番号がありません。カードの最後の4桁を入力しますが、以前のメッセージで送信された名前エンティティは取得されません。
エンティティ値 "name"はどのように保存しますか?前のステップ?エンティティを保持する必要があります現在の会話から入力された最後の4桁を取得し、ハードコーディングされた残高を表示する必要があります。
コードと画像が添付されています。
レシピのクライアントコード(javascript)を共有すると役立ちます。スロットベースのボットを作成します。
'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
ありがとうございます。何が言いたいのか理解した。しかし、コンテキストから変数をフェッチする例は見つかりませんでした。それを達成する方法について2行のコードを共有してください。 –
else if(context.cuisine){ console.log( '前回のconvoで既に料理を手に入れました'); var近傍= firstEntityValue(エンティティ、 '近傍')。 context.neighborhood = neighborhood; var cuisine = context.cuisine; } – Melissa
ありがとうございます。それは私を助けた。 –