Google 对话流翻译
Google Dialogflow Translation
您好,我正在尝试编写一个机器人,将用户写入的任何内容翻译成芬兰语。
我已经配置了默认的后备意图,它接受用户所说的任何内容并进行翻译,但它不起作用
function translateStuff(input){
return new Promise(function(resolve, reject) {
googleTranslate.translate(input, 'eng', function(err, translation) {
if (err !== null) reject(err);
else resolve(translation.translatedText);
});
});
}
function fallback(agent) {
var userInput = agent.query;
translateStuff('kuka sina olet').then(function(value) {
agent.add(value);
});
}
但是fallback函数没有return翻译的文本,有谁知道是什么问题。谢谢
函数处理程序现在支持承诺,因此您可以 return 承诺并在承诺中处理诸如 http 请求之类的事情。下面是一个使用请求库的例子:
function dialogflowHanlderWithRequest(agent) {
return new Promise((resolve, reject) => {
request.get(options, (error, response, body) => {
JSON.parse(body)
// processing code
agent.add(...)
resolve();
});
});
};
您还可以将 HTTP 调用移动到另一个 return 承诺的函数。这是 axios 库的示例:
function dialogflowHandlerWithAxios(agent) {
return callApi('www.google.com').then(response => {
agent.add('My response');
}).catch (error => {
// do something
})
};
function callApi(url) {
return axios.get(url);
}
这是否满足您的用例?您只需要将翻译功能放在适当的位置
您好,我正在尝试编写一个机器人,将用户写入的任何内容翻译成芬兰语。 我已经配置了默认的后备意图,它接受用户所说的任何内容并进行翻译,但它不起作用
function translateStuff(input){
return new Promise(function(resolve, reject) {
googleTranslate.translate(input, 'eng', function(err, translation) {
if (err !== null) reject(err);
else resolve(translation.translatedText);
});
});
}
function fallback(agent) {
var userInput = agent.query;
translateStuff('kuka sina olet').then(function(value) {
agent.add(value);
});
}
但是fallback函数没有return翻译的文本,有谁知道是什么问题。谢谢
函数处理程序现在支持承诺,因此您可以 return 承诺并在承诺中处理诸如 http 请求之类的事情。下面是一个使用请求库的例子:
function dialogflowHanlderWithRequest(agent) {
return new Promise((resolve, reject) => {
request.get(options, (error, response, body) => {
JSON.parse(body)
// processing code
agent.add(...)
resolve();
});
});
};
您还可以将 HTTP 调用移动到另一个 return 承诺的函数。这是 axios 库的示例:
function dialogflowHandlerWithAxios(agent) {
return callApi('www.google.com').then(response => {
agent.add('My response');
}).catch (error => {
// do something
})
};
function callApi(url) {
return axios.get(url);
}
这是否满足您的用例?您只需要将翻译功能放在适当的位置