如何在结果视图中匹配枚举符号?

How do I match a enum symbol in a result view?

我有一些具有相同目标的训练示例,但使用 enums/symbols(以减少所需的训练示例。)

如何匹配结果视图中的符号?

我在此处的文档中查看了模式匹配:https://bixbydevelopers.com/dev/docs/dev-guide/developers/customizing-plan.match-patterns

我认为这很简单。我有一个枚举:

enum (sizes) {
  description (drink sizes)
  symbol (large)
  symbol (medium)
  symbol (small) 
}

以及一些对应的词汇:

vocab (sizes) {
"large" {"large", "largest", "big"}
"medium" {"medium", "normal"}
"small" {"small", "smallest", "tiny"}
}

然后为了训练我可能有:

[g:BuyDrink] I want a (large)[v:sizes:large] drink
[g:BuyDrink] I want the (smallest)[v:sizes:small] drink

我想要两个话语的不同结果视图,但我无法找出正确的匹配模式。

匹配模式适用于概念类型。在呈现视图时,您应该能够为值的任何变化创建布局。例如:

操作:

action (BuyDrink) {
  type(Search)
  description (Buy a drink (small, medium, or large))
  collect {
    input (size) {
      type (sizes)
      min (Optional) max (One)
    }
  }
  output (sizes)
}

查看:

  result-view {
      match {
        sizes(drinkSize) {
          from-output: BuyDrink(drink) 
        }

      }

      render {

        if (drinkSize  == 'large') {
          layout-macro (large)
        }
        else-if (drink == 'medium') {
          layout-macro (medium)
        }
        else {
          layout-macro (small)
        }

      }

    }

大布局:

layout-macro-def (large) {
  content {
    single-line {
      text(This is LARGE)
    }
  }
}

中型布局:

layout-macro-def (medium) {
  content {
    single-line {
      text(This is Medium)
    }
  }
}

小布局:

layout-macro-def (small) {
  content {
    single-line {
      text(This is small)
    }
  }
}