如何使geo.SearchRegion瞬态

时间:2019-11-20 22:43:07

标签: bixby

我正在尝试编写一个胶囊,要求用户输入geo.SearchRegion,让他们有机会在获得结果后再次进行搜索。

问题是我需要在geo.LocalityName上训练语言模型(以获得城市名称)。我已经创建了自己的别名:

name (LocalityName) {
  description (alias of geo.LocalityName)
  extends (geo.LocalityName)
  features {
    transient
  }
}

效果很好。问题是,当我对geo.SearchRegion执行相同操作时,我失去了将LocalityNameSearchRegion匹配的内置功能。<​​/ p>

structure (SearchRegion) {
  description (alias of geo.SearchRegion)
  extends (geo.SearchRegion)
  features {
    transient
  }
}

因此,当我执行以下“评估”操作时:

action (Evaluate) {
  description (Find the value)
  type (Search)
  collect {
    input (type) {
      type (StatsType)
      min (Required) max (One)
      default-init {
        intent {
          goal: GetAllTypes
        } 
      }
    }
    input-group (location) {
      requires (OneOf)
      collect {
        input (searchRegion) {
          type (geo.SearchRegion)
          min (Optional) max (One)
          default-select {
            with-learning
            with-rule {
              select-first
            }
          }
        }
        input (postalCode) {
          type (PostalCode)
          min (Optional) max (One)
          default-select {
            with-learning
            with-rule {
              select-first
            }
          }
        }
      }
    }
  }
  output (Result)
}

它可以工作,但不允许我重新进行搜索。当我将geo.SearchRegion更改为SearchRegion时,它不再起作用,因为它与位置名称不匹配。

我该怎么做才能使用户再次搜索?

1 个答案:

答案 0 :(得分:0)

我建议在操作中将该输入更改为计算输入(Documentation),并将其提示行为定义为提示行为(AlwaysElicitation)。这将导致Bixby每次都要求用户指定位置。