我正在尝试建立对话流程,并且只想在聊天期间询问用户的电话号码一次。为此,我尝试将电话号码作为意图的插槽。如果要求输入电话号码,效果很好,但问题是每次都要求输入电话号码。我只希望它询问一次并保存。为此,我尝试了Webhooks,但不确定是否正确实现了它。
我曾尝试通过网络方式连接@ sys.phone-number,但不确定是否正确执行了操作。
Container(
height: 400,
//auto height need
child: ListView.builder(
padding: EdgeInsets.only(top: 5), //gab betwween horizonscroll
physics: NeverScrollableScrollPhysics(), //listview scroll fix
itemCount: weatherList.length,
itemBuilder: (context, i) {
return SizedBox(
height: 60,
child: Card(
color: Colors.transparent,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(left: 10.0),
child: Text(weatherList[i].weekName),
),
Column(
children: <Widget>[
weatherList[i].weekIcon,
Text(weatherList[i].weekTemper),
],
),
Padding(
padding: const EdgeInsets.only(right: 10.0),
child: Text(weatherList[i].weekdust),
),
],
)),
);
},
),
);
我希望它只检查一次。如果用户曾经给过一次电话号码,就不要再问其他地方了。
答案 0 :(得分:0)
尝试将输入上下文用于电话意图。每当您要捕获电话号码时,都将上下文说“ capture-phone”作为意图的输出上下文,一旦捕获了电话号码,就可以将“ capture-phone”上下文的寿命设置为“ 0”。
如果您正在使用插槽,则也可以使用上述上下文方式。但是,如果您有多个意图,请使用DB保存电话。在网络挂钩中,通过ping DB检查电话是否已被捕获。如果没有,请询问电话号码并将其保存在数据库中。
希望它对您有帮助。