Ibm cloud 如何从Watson';什么是对话API?
有没有人已经知道如何在Watson的对话API中获取用户输入的日期? 在对话框API中,我们可以使用标准实体,如DATE\u TIME\u RANGE和FROM\u DATE,但我找不到任何方法不结束自己添加新的自定义实体。 我想在Dialog API上以这种方式创建验证:Ibm cloud 如何从Watson';什么是对话API?,ibm-cloud,ibm-watson,watson-dialog,watson-conversation,Ibm Cloud,Ibm Watson,Watson Dialog,Watson Conversation,有没有人已经知道如何在Watson的对话API中获取用户输入的日期? 在对话框API中,我们可以使用标准实体,如DATE\u TIME\u RANGE和FROM\u DATE,但我找不到任何方法不结束自己添加新的自定义实体。 我想在Dialog API上以这种方式创建验证: <input> <grammar> <item>$ (IATA)={var-from} * (IATA)={var-to} * (DATE_TIME_RANGE)={var-dat
<input>
<grammar>
<item>$ (IATA)={var-from} * (IATA)={var-to} * (DATE_TIME_RANGE)={var-date1} * (DATE_TIME_RANGE)={var-date2}</item>
<item>$ (IATA)={var-from} * (IATA)={var-to} * (DATE_TIME_RANGE)={var-date1} * (DATE_TIME_RANGE)={var-date2} *</item>
<item>(IATA)={var-from} * (IATA)={var-to} * (DATE_TIME_RANGE)={var-date1} * (DATE_TIME_RANGE)={var-date2} *</item>
<item>(IATA)={var-from} * (IATA)={var-to} * (DATE_TIME_RANGE)={var-date1} * (DATE_TIME_RANGE)={var-date2}</item>
</grammar>
<output id="itinerario">
<action varName="var-from" operator="SET_TO">{var-from.value:main}</action>
<action varName="var-to" operator="SET_TO">{var-to.value:main}</action>
<action varName="var-date1" operator="SET_TO">{var-date1.value:FROM_DATE}</action>
<action varName="var-date2" operator="SET_TO">{var-date2.value:FROM_DATE}</action>
<prompt>
<item>{var-from} {var-to} {var-date1} {var-date2}</item>
</prompt>
</outputt>
$(IATA)={var from}*(IATA)={var to}*(日期时间范围)={var-date1}*(日期时间范围)={var-date2}
$(IATA)={var from}*(IATA)={var to}*(日期时间范围)={var-date1}*(日期时间范围)={var-date2}*
(IATA)={var from}*(IATA)={var to}*(日期时间范围)={var-date1}*(日期时间范围)={var-date2}*
(IATA)={var from}*(IATA)={var to}*(日期时间范围)={var-date1}*(日期时间范围)={var-date2}
{var from.value:main}
{var to.value:main}
{var-date1.值:FROM_DATE}
{var-date2.value:FROM_DATE}
{var from}{var to}{var-date1}{var-date2}
对话API还没有该功能。短期内,一种解决方法可能是使用正则表达式在客户端应用程序中提取日期,并将其作为上下文变量传递给API 您可以使用条件访问具有
input.text.matches( '[0-9]+' )
(添加您想要的任何正则表达式)
要提取节点中的值,请提取该值。在上下文变量中添加如下内容
"context": {
"number_extract": "<? input.text.extract('[\\d]+',0) ?>"
}
“上下文”:{
“数字\u摘录”:”
}
(您可以在摘录中放入任何想要的正则表达式)
这是您目前在watson对话中能做的最好的事情。因此,您必须创建自己的正则表达式来解析日期
我个人使用的另一个解决方案是在watson之前制作一个自定义解析器。
这家伙详细说明了如何使用炼金术
你好,大卫。我发现可以使用condition节点中的input.text.matches函数验证正则表达式。所以我现在使用input.text.matches(“^\d{4}-\d{2}-\d{2}$”)来验证2006-01-01是否为日期格式。