λ΄ μ€λ ₯μ λν ν
μ€νΈλ₯Ό μμ±νλ €κ³ ν©λλ€.
Behave νλ μ μν¬λ₯Ό μ¬μ©νκ³ μμ΅λλ€.
mycroft λ¬Έμμμ Behaveλ‘ ν
μ€νΈλ₯Ό μμ±νλ©΄ mycroft μλ΅μ νΉμ λ¨μ΄κ° ν¬ν¨λμ΄ μλμ§ μ¬λΆλ₯Ό νμΈν μμλ κ°λ₯μ±μ΄ νμλ©λλ€.
κ·Έλ¬λ μ μλ λͺ¨λ λ°©λ²μ΄ μ μκ² ν¨κ³Όκ° μμ΅λλ€.
λλ μλνλ€ :
μ€μλ μ΄λμ μμ΅λκΉ?
ν€μλ "ν¬ν¨"λλ "ν¬ν¨"μ μ¬μ©ν΄μΌν©λκΉ?
μλ νμΈμ λ¨μ΄λ₯Ό ν¬ν¨νλ ꡬ문μ
Then mycroft reply should contain "SOMETHING CLEVER"
SOMETHING CLEVERλ mycroftμμ μμλλ μ리ν μλ΅μ λλ€. :)
μ μλ μ¬κΈ° λ₯Ό μ°Έμ‘° μμ λ₯Ό μ°Ύμ μ μμ΅λλ€.
"ν¬ν¨νμ§ μμμΌ ν¨"λ¨κ³λ₯Ό λ³Έ μ μ΄μκ³ λ¬Έμμμ μ°Έμ‘°νλ κ²μ 보μμ§λ§ μ£Όλ‘ μλΌκ³ μκ°ν©λλ€.
λ¬Έμ λ κ°μ₯ κ°λ¨νλ€κ³ μκ°ν©λλ€.
"should contains"μ μ μμ μ£Όλͺ©νλ κ²½μ° λ€λ₯Έ λ¨κ³μ²λΌ {skill} μμ±μ μ¬μ©νμ§ λ§μμμ€. λ°λΌμμ΄ λ¨κ³λ₯Ό μ¬μ©νλ €λ©΄ "Then {skillname} ..."μ΄ μλλΌ "Then mycroft ..."λ₯Ό μμ±ν΄μΌν©λλ€.
μ΄ μ μ λ κ°λ₯Ό λΉκ΅νμμμ€ ...
@then ( 'mycroft νμ μλ "{text}"κ° ν¬ν¨λμ΄μΌ ν¨')
λ€λ₯Έ λ¨κ³μ²λΌ
@then ( ' "{skill}"μ μ νν "{text}"'λ‘ μλ΅ν΄μΌν©λλ€.)
μ΄λ΄, λλ λ¬Έμμμ κ·Έ μλ₯Ό λ³κ²½νλ€. κ·Έκ²μ μ μ€μμμ΅λλ€.
λ λμ "mycroft μλ΅"λ¨κ³λ μ’μ λ΅λ³μ μ»λ ν μ€μ λ‘ μ΄λ€ μ€ν¬μ΄ μλ΅νλμ§ μ κ²½ μ°μ§ μμ λ μ μ©ν©λλ€. μλ₯Ό λ€μ΄ μν νμ λμ΄μ κ°μ μΌλ°μ μΈ μ§μ μ§λ¬Έμ λ΅νλ κ²μ DuckDuckGo, Wikipedia λλ Wolfram Alpha μΌ μ μμ§λ§ μ΄λ μͺ½μ΄λ μ¬μ ν μ±κ³΅μ μΈ μνΈ μμ©μ λλ€.
λ¬Έμ λ₯Ό μ κΈ° ν΄ μ£Όμ μ κ°μ¬ν©λλ€. λ€μμ λͺ¨λ μλ‘μ΄ λ¨κ³λ‘ μΆκ°νκΈ°μ μ’μ ν보λΌκ³ μκ°ν©λλ€.
νμΈ. μ λ§ κ³ λ§μ. μ΄μ then_contains λ¨κ³λ₯Ό μ¬μ©νλ λ°©λ²μ΄ λͺ
ν ν΄μ‘μ΅λλ€.
μ΄ μμ μλ λ¬Έμ κ° μμ΅λλ€.
`κΈ°λ₯ : νμ¬ λ μ¨
μλλ¦¬μ€ : ν리μ μ¨λ
Given an english speaking user
And user is located in Paris
When the user says "how hot will it be today"
Then "mycroft-weather" should reply with dialog from "current.high.temperature.dialog"
But mycroft reply should contain "Paris"`
But or Andλ₯Ό μ¬μ©νλ©΄ λ΅μ₯μ λ΄μ μΌνλ λ¨μ΄μ νμΈμ΄ μ΄μ λ΅μ₯μμ μνλλ κ² κ°μ§λ§ νμμ²λΌ μλνλ κ² κ°μ΅λλ€.
Then mycroft reply should contain...
, κ·Έλμ μ¬μ©νλ κ² κ°λ€μ But | κ·Έλ¦¬κ³ , μλ΅μ νΉμ λ¨μ΄κ° ν¬ν¨λμ΄ μλμ§ νμΈνκΈ° μν΄ μλ‘μ΄ μλ΅μ μν΄ μ°Έμν©λλ€.
λν λμ λ¨κ³μ μ μμλ And λλ But ν€μλκ°μλ μ΄μ μλ΅μμ μλνλ ν¬ν¨ λ¨κ³μ λν μ°Έμ‘°κ° μμ΅λλ€.
νΈμ§νλ€:
μ΄ λμμ λμμ μ μμ μΈ λμμ
λλ€.
But
λ° And
λ μ΄μ μλ΅μμ μλνμ§ μμ§λ§ ν
μ€νΈλ₯Ό λ μ½κΈ° μ½κ² λ§λλ λ° μ μ©ν©λλ€.
μ°λ©΄
"Then "myskil" should reply with dialog "myskill.dialog"
"And|But "myskill" should reply with dialog "myskillother.dialog"
λμΌ
"Then "myskil" should reply with dialog "myskill.dialog"
"Then "myskill" should reply with dialog "myskillother.dialog"
λ°λΌμ and|but
λ μ΄μ λ¨κ³μ μ νμ λ°λΌ then|given
λ‘ λ체λ©λλ€. μ΄μ λ¨κ³κ° then
λ¨κ³μ΄λ©΄ then
λ‘ λ체λ©λλ€. given
λ°λΌμ then_containμ΄ λμΌν κ²½μ° μ΄μ μ΄ μλ μλ‘μ΄ μμ±μ λν΄ κ²μ¬κ° μνλ©λλ€.
μ΄λ λν mycroft λ©μμ§ λ²μ€κ° μ£Όμ΄μ§ μλ΅μ μ μ₯νμ§ μκΈ° λλ¬Έμ μλ΅μ΄ μλΉ λ λ μ‘μΈμ€ ν μ μκΈ° λλ¬Έμ
λλ€.
pull request # 2711 λ° issue # 2714 μ°Έμ‘°
κ°μ₯ μ μ©ν λκΈ
μ΄λ΄, λλ λ¬Έμμμ κ·Έ μλ₯Ό λ³κ²½νλ€. κ·Έκ²μ μ μ€μμμ΅λλ€.
λ λμ "mycroft μλ΅"λ¨κ³λ μ’μ λ΅λ³μ μ»λ ν μ€μ λ‘ μ΄λ€ μ€ν¬μ΄ μλ΅νλμ§ μ κ²½ μ°μ§ μμ λ μ μ©ν©λλ€. μλ₯Ό λ€μ΄ μν νμ λμ΄μ κ°μ μΌλ°μ μΈ μ§μ μ§λ¬Έμ λ΅νλ κ²μ DuckDuckGo, Wikipedia λλ Wolfram Alpha μΌ μ μμ§λ§ μ΄λ μͺ½μ΄λ μ¬μ ν μ±κ³΅μ μΈ μνΈ μμ©μ λλ€.
λ¬Έμ λ₯Ό μ κΈ° ν΄ μ£Όμ μ κ°μ¬ν©λλ€. λ€μμ λͺ¨λ μλ‘μ΄ λ¨κ³λ‘ μΆκ°νκΈ°μ μ’μ ν보λΌκ³ μκ°ν©λλ€.