在 Dialogflow 中,如何使用我的 webhook 将参数设置为自定义值(不想问用户)
In Dialogflow, how do I set parameter to a custom value with my webhook (Dont want to ask the user)
如果用户已经以完全不同的意图给我他的名字,我将其存储在我的数据库中。
但是我需要在另一个意图中再次请求它,其中启用了 webhook 插槽填充并且 given_name 是必需的值。
但是如果他已经给我了,那就不用问了,所以我想抓取DB中存储的名字,把这个值填入参数(given_name),所以我不用问
我该怎么做?我可以使用我的 webhook 直接更改参数值吗?
不使用参数值就可以叫你DB吗?
如果你的数据库 returns 一个名字,你就知道你的用户之前在之前的意图中提到过一个名字。从那里你可以只使用来自你的数据库的响应。如果您的数据库没有发回姓名,那么您就会知道何时向您的用户询问他们的姓名。
一个简单的例子是:
async function handleUsername(agent) {
// Check if the user has mentioned a name before in your DB.
const username = await callDatabase();
if (!userName) {
// Ask the user for their name.
}
// Continue the conversation.
}
注意:由于您提到您正在检查用户是否在多个意图中提到了他们的名字,如果可能的话,最好在您的 webhook 中 re-use handleUsername()
函数。
如果用户已经以完全不同的意图给我他的名字,我将其存储在我的数据库中。 但是我需要在另一个意图中再次请求它,其中启用了 webhook 插槽填充并且 given_name 是必需的值。
但是如果他已经给我了,那就不用问了,所以我想抓取DB中存储的名字,把这个值填入参数(given_name),所以我不用问
我该怎么做?我可以使用我的 webhook 直接更改参数值吗?
不使用参数值就可以叫你DB吗? 如果你的数据库 returns 一个名字,你就知道你的用户之前在之前的意图中提到过一个名字。从那里你可以只使用来自你的数据库的响应。如果您的数据库没有发回姓名,那么您就会知道何时向您的用户询问他们的姓名。
一个简单的例子是:
async function handleUsername(agent) {
// Check if the user has mentioned a name before in your DB.
const username = await callDatabase();
if (!userName) {
// Ask the user for their name.
}
// Continue the conversation.
}
注意:由于您提到您正在检查用户是否在多个意图中提到了他们的名字,如果可能的话,最好在您的 webhook 中 re-use handleUsername()
函数。