AI рдкрд┐рдЬреНрдЬрд╛ рдмреЗрдЪрддрд╛ рд╣реИ рдпрд╛ рдХреИрд╕реЗ Voximplant Dialogflow рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдмрдирд╛рддрд╛ рд╣реИ

рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрдиреЗрдХреНрдЯрд░ рдирд╛рдордХ рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рд╣реИ : Google рдХреЗ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдФрд░ рд╣рдорд╛рд░реЗ Voximplant рдХреНрд▓рд╛рдЙрдбред рдХрдиреЗрдХреНрдЯрд░ рдПрдХ рдХреЙрд▓ рд╕реЗрдВрдЯрд░ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрдЯрд┐рд▓ рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЖрдИрд╡реАрдЖрд░ рдкрд░рд┐рджреГрд╢реНрдп рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рджрд┐рдП рдЧрдП рд╕реЗрдЯ рд╕реЗ рд╢рдмреНрджреЛрдВ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдореЗрдиреВ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реИред Google рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд┐рд╕реА рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдореЗрдВ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА " рд╕реНрд▓реЙрдЯ рднрд░рдиреЗ " рдХреЛ рд╕реБрдирд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд╣реИред рд╡рд┐рд╡рд░рдг рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдЖрдк рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд┐рдЬреНрдЬрд╛ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЙрдЯ рдХрд┐рдпрд╛ рдерд╛ - рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, рдЖрдк рдХреБрдЫ рд╕рдорд╛рди рд╕рдорд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреБрд╢реА рд╣реИ рдХрд┐ рд▓рд┐рдлреНрдЯ рдХреЗ рд╕рдордп рдФрд░ "рдЧреНрдпрд╛рд░рд╣" рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓реЗ рдЧрдП рд╣реИрдВ ...


рдлреЛрди рдирдВрдмрд░


рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдирдВрдмрд░ рдХрд┐рд░рд╛рдП рдкрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕ рдкрд░ рдмреЙрдЯ "рдЬрд╡рд╛рдм" рджреЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рдирдВрдмрд░" рдореЗрдиреВ рдореЗрдВ Voximplant рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ, " рдлрд╝реЛрди рдирдВрдмрд░ рдЦрд░реАрджреЗрдВ " рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред


рдирдИ рд╕реНрдХреНрд░реАрди рдкрд░, рд╕реНрд╡рд┐рдЪ рдХреЛ "рдЯреЗрд╕реНрдЯ рдирдВрдмрд░" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦреЗрдВ - рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдирдВрдмрд░ рдХрд┐рд░рд╛рдП рдкрд░ рджреЗрдЧрд╛ред


рд╡рд░реНрдЪреБрдЕрд▓ рдирдВрдмрд░ рдмрд╣реБрдд рд╕рд╕реНрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рдХрдорд░рд╛ рдФрд░ рдХрд┐рд░рд╛рдпрд╛ ...

... рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ


рдЕрдм рд╣рдореЗрдВ рдПрдХ рдмрд╛рджрд▓ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдгрдп рдХрд╛ рджрд┐рд▓ред рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛, рднрд╛рд╖рдг рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╛рдПрдВ рдореЗрдиреВ рдореЗрдВ, "рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдЪреБрдиреЗрдВ , рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдирд╛рдо рджреЗрдВред


рдлрд┐рд░ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ "рд▓рд┐рдкрд┐рдпреЛрдВ" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдкреНрд▓рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрдирд╛рдПрдВред рдЗрд╕реЗ рдПрдХ рдирд╛рдо рджреЗрдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛред


рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп!

рдЖрдЗрдП рдПрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ - рдЗрд╕рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рдФрд░ рдШрдЯрдирд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рд╕рд╛рде рд╣реА рд╕рд╛рде рднрд╛рд╖рдг рдорд╛рдиреНрдпрддрд╛ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА ред рд╣рдо рд╡реИрд░рд┐рдПрдмрд▓ рдФрд░ рдЯреНрд░рд┐рдХреА рд╡рд░реНрдбреЗрди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдПрдХ рдЗрдирдкреБрдЯ рдорд╛рддреНрд░рд╛ (рдкрд┐рдЬреНрдЬрд╛) рдФрд░ рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА ('рдорд╛рд░реНрдЧрд░рд┐рдЯрд╛', 'рдорд╛рд░реНрдЧрд░рд┐рдЯреНрд╕', 'рдорд╛рд░реНрдЧрд░рд┐рдЯреНрд╕') рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╢рдмреНрдж рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╕ рдирдВрдмрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдмреЙрдЯ "4 рдорд╛рд░реНрдЧрд░рд┐рдЯрд╛рд╕" рди рдХрд╣реЗ, рд▓реЗрдХрд┐рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ "4 рдорд╛рд░реНрдЧрд░рд┐рдЯреНрд╕" рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред

require(Modules.AI); require(Modules.ASR); require(Modules.Player); let mycall = null, voice = Language.Premium.RU_RUSSIAN_YA_FEMALE, account_name = "", dialed_number = "", caller_id = "", flow, lastText = '', player function wordend(num, words) { return words[ ((num=Math.abs(num%100)) > 10 && num < 15 || (num%=10) > 4 || num === 0) + (num !== 1) ]; } 

рдЕрдм рдЖрдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрд░ рд╣реЗрд▓реНрдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝реЗрдВ:

 VoxEngine.addEventListener(AppEvents.CallAlerting, (e) => { mycall = e.call; mycall.addEventListener(CallEvents.Connected, handleCallConnected); account_name = e.toURI.substring(e.toURI.indexOf('.') + 1); account_name = account_name.substring(0, account_name.indexOf('.')); dialed_number = e.destination; caller_id = e.callerid; mycall.answer(); }); function startASR() { mycall.removeEventListener(CallEvents.PlaybackFinished, startASR); mycall.sendMediaTo(flow); } 

рдЬрдм рдХрдиреЗрдХреНрдЯреЗрдб рдИрд╡реЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ handleConnected рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред рджрд░рдЕрд╕рд▓, рдЗрд╕рдореЗрдВ рдкреВрд░реА рд╕реНрдЯрдлрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ:

  • рдПрдХ рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • рдПрдХ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдЖрд╡рд╛рдЬ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдмрдзрд╛рдИ рджреЗрддреА рд╣реИ рдФрд░ рдПрдХ рдЖрджреЗрд╢ рджреЗрдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреА рд╣реИ;
  • рдорд╛рдиреНрдпрддрд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдЧреНрд░рд╛рд╣рдХ рдПрдХ рдЖрджреЗрд╢ рджреЗрддрд╛ рд╣реИ;
  • рдХреНрд▓рд╛рдЗрдВрдЯ рд╢рдмреНрдж рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдПрдХ рдлрд╝рд┐рд▓рд┐рдВрдЧ рд╕реНрд▓реЙрдЯ рд╣реЛрддрд╛ рд╣реИ;
  • рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдЖрд╡рд╛рдЬ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЖрджреЗрд╢ рдФрд░ рдкрддреЗ рдХреЛ рдЖрд╡рд╛рдЬ рджреЗрддреА рд╣реИ;
  • рдмреЙрдЯ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ, рд╕рддреНрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдлрд╝реАрдЪрд░ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ:

handleCallConnected
function handleCallConnected(e) {
flow = AI.createDialogflow({
lang: "ru"
});
if (AI.Events.DialogflowResponse !== undefined)
flow.addEventListener(AI.Events.DialogflowResponse, (event) => {
if (event.response.queryResult !== undefined) {
let result = event.response.queryResult
if (result.queryText === undefined) {
if (result.languageCode !== undefined) startASR();
return
}
if (result.fulfillmentText !== undefined) {
try {
player = VoxEngine.createTTSPlayer(result.fulfillmentText, voice)
player.addMarker(-500)
player.addEventListener(PlayerEvents.PlaybackMarkerReached, startASR)
player.sendMediaTo(mycall)
} catch (err) {}
if (result.allRequiredParamsPresent == true &&
result.outputContexts !== undefined &&
result.parameters.PizzaType != undefined) {
let msg = " ";
for (let k = 0; k < result.parameters.PizzaType.length; k++) {
let count = result.parameters.count[k] !== undefined ? result.parameters.count[k] : 1
switch (count) {
case 1:
msg += " ";
break;
case 2:
msg += " ";
break;
default:
msg += count + " ";
break;
}
if (result.parameters.PizzaSize[k] !== undefined) {
switch (result.parameters.PizzaSize[k]) {
case "small":
msg += wordend(count, ['', '', '']);
break;
case "medium":
msg += wordend(count, ['', '', '']);
break;
case "large":
msg += wordend(count, ['', '', '']);
break;
}
}
msg += " "
switch (result.parameters.PizzaType[k]) {
case "margarita":
msg += wordend(count, ['', '', '']);
break;
case "fourcheese":
msg += wordend(count, ['', '', '']) + " ";
break;
case "vegetarian":
msg += wordend(count, [' ', ' ', ' ']);
break;
case "pepperoni":
msg += wordend(count, ['', '', '']) + " ";
break;
case "cheese":
msg += wordend(count, [' ', ' ', ' ']);
break;
case "chicken":
msg += wordend(count, ['', '', '']) + " ";
break;
}
if (k == result.parameters.PizzaType.length - 1) msg += " , "
else msg += " ";
}
msg = msg.slice(0, msg.length - 2);
if (result.parameters.time !== undefined && result.parameters.time != "") {
let time = new Date(result.parameters.time),
local = time.toTimeString()
local = local.split(":")
time = local[0] + ":" + local[1]
msg += ". " + time
}
if (result.parameters.deliveryaddress !== undefined) msg += ". " + result.parameters.deliveryaddress
msg += ". ?";
player.stop()
player = VoxEngine.createTTSPlayer(msg, voice)
player.addMarker(-500)
player.addEventListener(PlayerEvents.PlaybackMarkerReached, startASR)
player.sendMediaTo(e.call)
} else {
player.stop()
lastText = result.fulfillmentText
player = VoxEngine.createTTSPlayer(result.fulfillmentText, voice)
if (result.action == "pizzaorder.pizzaorder-yes") {
player.addEventListener(PlayerEvents.PlaybackFinished, () => mycall.hangup())
player.sendMediaTo(e.call)
} else {
player.addMarker(-500)
player.addEventListener(PlayerEvents.PlaybackMarkerReached, startASR)
player.sendMediaTo(e.call)
}
}
}
}
})
player = VoxEngine.createTTSPlayer("! , !", voice);
player.addMarker(-500);
player.addEventListener(PlayerEvents.PlaybackMarkerReached, startASR);
player.sendMediaTo(e.call);
mycall.record();
mycall.addEventListener(CallEvents.Disconnected, (event) => {
VoxEngine.terminate();
})
}
view raw handleCallConnected.js hosted with тЭд by GitHub


рдмрд╣реБрдд рдХрдо рдмрдЪрд╛ рд╣реИред рд░реВрдЯрд┐рдВрдЧ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ -> "рдмрдирд╛рдПрдБ"ред рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдПрдХ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред рдирд╛рдо рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╕рдВрд╡рд╛рдж рдкреНрд░рд╡рд╛рд╣-рдирд┐рдпрдоред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рд╕реНрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╡рд╛рдж рдкреНрд░рд╡рд╛рд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реИред "рдирд┐рдпрдо рдмрдирд╛рдПрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧреАред


рдЕрдм рдЖрдкрдХреЛ рдЦрд░реАрджреА рдЧрдИ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрджрд░ "рд╕рдВрдЦреНрдпрд╛" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ, "рдЙрдкрд▓рдмреНрдз" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЪрдпрдирд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЧрд▓ рдореЗрдВ "рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ"ред рдПрдХ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдЦреБрд▓реЗрдЧреА, рдпрд╣ рдХреЗрд╡рд▓ рд╡рд╛рдВрдЫрд┐рдд рдирд┐рдпрдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рдФрд░ "рд╕рдВрд▓рдЧреНрди" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред


"рд╕рд╣реЗрдЬреЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЕрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рд░рд╛рдП рдкрд░ рд▓реА рдЧрдИ рдХрд┐рд╕реА рднреА рдбрд╛рдпрд▓ рдХрд┐рдП рдЧрдП рдирдВрдмрд░ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдпрд╣реА рдЪрд╛рд╣рд┐рдПред

рдорд╣рд╛рди, рдЕрдм рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!

рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдПрдЬреЗрдВрдЯ


рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдПрдХ рдПрдЬреЗрдВрдЯ рдмреЙрдЯ рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдПрдЬреЗрдВрдЯ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рд╣рдо рдЕрдкрдиреЗ рд╡рд░реНрдХрдкреАрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред

рдЖрдкрдХреЛ Dialflow.com рдкрд░ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ рдирдпрд╛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рд░реВрд╕реА рднрд╛рд╖рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛:


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдЬреЗрдВрдЯ рдПрдХ рднреА рд╡рд┐рд╡рд░рдг (рдЗрдВрдЯреНрд░реЗрдВрдЯ) рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдПрдЬреЗрдВрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдкрд╛рд╕ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ: рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдЬреЗрдВрдЯ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ, "рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдЖрдпрд╛рдд" -> "рдЬрд╝рд┐рдк рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВред


рдкрд┐рдЬреНрдЬрд╛ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реЗрдЯ рд╣реИ! рдЖрдк рдЙрдиреНрд╣реЗрдВ "рдЗрд░рд╛рджреЗ" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдЬреЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рд╕рд╣рд╛рдпрдХ рдХрдерди рдкрд┐рдЬрд╝реНрдЬрд╝рд╛.рд╕рд╛рдЗрдЬрд╝рд╣реЗрд▓реНрдк рдФрд░ рдкрд┐рдЬрд╝реНрдЬрд╝рд╛рдЯрд╛рдЗрдкрд╣реЗрд▓реНрдк рд╣реИрдВ ред рдЙрдирдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдкрд┐рдЬрд╝реНрдЬрд╝реЗрд░рд┐рдпрд╛ рдХреЗ рдЕрднрд┐рд╡рд╛рджрди рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╛рд╣рдХ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реИ, "рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдкрд┐рдЬреНрдЬрд╛ рд╣реИ" рдФрд░ рдмреЙрдЯ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдореЗрдиреВ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред

рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдм рдкрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдкреАрдЖрдИ рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред


рдЕрдВрдд рдореЗрдВ, рдЕрдкрдиреЗ Google рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХрд╛ JSON рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ - рдпрд╣ рдХреБрдЫ рд╣реА рдХреНрд▓рд┐рдХ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

Voximplant рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдб рдПрдЬреЗрдВрдЯ


рдЕрдкрдиреЗ Voximplant рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рдореЗрдиреВ рдореЗрдВ, "рдбрд╛рдпрд▓реЙрдЧрдлрд╝реНрд▓реЛ рдХрдиреЗрдХреНрдЯрд░" рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рджрд┐рдЦрд╛рдИ рджрд┐рдП рдЧрдП рдореЛрдбрд▓ рдлреЙрд░реНрдо JSON рдореЗрдВ "Add" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ "Add" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред


рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ JSON рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИред

рд╣реЛ рдЧрдпрд╛! Dialoglow + Voximplant рдмрдВрдбрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ рдПрдХ рд╕рд╛рде рдЗрдХрдЯреНрдареЗ рдХрд┐рдП рдЧрдП рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рдереЗ, рддреЛ рдЖрдк рд╣рдорд╛рд░реЗ рдкрд┐рдЬрд╝реНрдЬрд╝реЗрд░рд┐рдпрд╛ рдбреЗрдореЛ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • http://demos05.voximplant.com/pizza/ рдкрд░ рдЬрд╛рдПрдВ ;
  • рдлрд╝реЛрди рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░реЗрдВ (рд░реВрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ 7900 рд╣реЛрдЧрд╛ ...) рдФрд░ "рдЕрдЧрд▓рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ;
  • рд╕рдВрдХреЗрддрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдбрд╛рдпрд▓ +74999384952 рд╕реЗ;
  • рдЪрдорддреНрдХрд╛рд░ рдмреАрдУрдЯреА рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ :)

Source: https://habr.com/ru/post/hi412663/


All Articles