Я создал игру викторины, используя SDK, она принимает пользовательский ввод и затем сравнивает его со значением в моей БД, чтобы определить, правильно ли оно.
В данный момент я просто передаю необработанную входную переменную в моем разговоре, это означает, что она регулярно завершается сбоем, когда слышит пользователя, поскольку точная строка, которая была выбрана, редко == к значению вDB.
В частности, я бы хотел, чтобы он только подбирал числа и, например, понимал, что он должен извлечь «10» из речевого ввода «мой ответ - 10».
{
"actions": [
{
"description": "Default Welcome Intent",
"name": "MAIN",
"fulfillment": {
"conversationName": "welcome"
},
"intent": {
"name": "actions.intent.MAIN"
}
},
{
"description": "response",
"name": "Raw input",
"fulfillment": {
"conversationName": "rawInput"
},
"intent": {
"name": "raw.input",
"parameters": [{
"name": "number",
"type": "org.schema.type.Number"
}],
"trigger": {
"queryPatterns":[
"$org.schema.type.Number:number is the answer",
"$org.schema.type.Number:number",
"My answer is $org.schema.type.Number:number"
]
}
}
}
],
"conversations": {
"welcome": {
"name": "welcome",
"url": "https://us-central1-triviagame",
"fulfillmentApiVersion": 2
},
"rawInput": {
"name": "rawInput",
"url": "https://us-central1-triviagame",
"fulfillmentApiVersion": 2
}
}
}
app.intent('actions.intent.MAIN', (conv) => {
conv.data.answers = answersArr;
conv.data.questions = questionsArr;
conv.data.counter = answersArr.length;
var thisQuestion = conv.data.questions;
conv.ask((conv.data.answers)[0]));
});
app.intent('raw.input', (conv, input) => {
if(input == ((conv.data.answers)[0])){
conv.ask(nextQuestion());
}
app.intent('actions.intent.TEXT', (conv,input) => {
//verifying if input and db value are equal
// at the moment input is equal to 'my number is 10' (for example) instead of '10'
//therefore the string verification never works
conv.ask(nextQuestion());
});
В предыдущем проекте я использовал пользовательский интерфейс диалогового потока и использовал этот числовой параметр @ system.entities вместе с созданием некоторых обучающих фраз, чтобы он понимал различные речевые шаблоны.
Этот параметр input
, который я передаю через мой conv
, является только необработанной строкой, в которой я бы хотел, чтобы она была отфильтрована с использованием какой-либо схемы сущности.
Как мнесоздать тот же эффект обучения фраз / сущностей, используя файл JSON?