Bixby Developer Center

Guides
References

모델링 소개

개요빠른 시작 가이드에서 Bixby가 어떻게 자연어 input을 구조화된 인텐트(intent)로 변환하는지를 살펴보았습니다. 이렇게 변환한 인텐트(intent)를 활용하여 Bixby의 Planner로 모델의 실행 그래프를 작성합니다.

Bixby에서 모델은 두 가지 종류, 즉 *.bxb 포맷의 conceptaction으로 나뉩니다. 포맷팅과 언어 규칙에 대한 자세한 내용은 Bixby 언어 규칙 항목을 참조하세요.

Concept

Concept은 모든 "것"을 표현합니다. 커피, 꽃, 공항과 같은 구체적인 사물이 될 수도 있고, 아니면 요일, 항공편, 주문과 같은 추상적인 것을 나타낼 수도 있습니다. 체계적으로 모델링된 concept은 Bixby의 핵심 요소입니다. Planner가 plan을 실행할 때 concept 모델을 input과 goal로 사용하기 때문입니다. Concept은 프로그래밍 언어에서 말하는 데이터 type과 데이터 구조체에 비유할 수 있습니다.

빠른 시작 가이드에 나온 주사위 샘플 캡슐을 예로 들어 보면, 이 캡슐에는 NumDice(던지는 주사위 수)와 NumSides(각 주사위의 면 수) 그리고 RollResult(주사위 던지기 결과)라는 concept이 포함되어 있습니다. 이 중 처음 두 가지 concept은 단순한 type인 원시(primitive) concept에 해당합니다. 반면, RollResult concept은 명명된 property(그 자체가 캡슐 내에서 정의되는 또 다른 concept임)를 갖는, 좀 더 복잡한 구조체(structure) concept에 해당합니다.

structure (RollResultConcept) {
description (The result object produced by the RollDice action.)
property (sum) {
type (SumConcept)
min (Required)
max (One)
}
property (roll) {
description (The list of results for each dice roll.)
type (RollConcept)
min (Required)
max (Many)
}
}

View on GitHub

Concept 간의 관계를 표현하는 방법 등 concept에 대한 자세한 내용은 Concept 모델링하기에서 확인할 수 있습니다.

Action

Action은 Bixby가 사용자를 위해 직/간접적으로 수행할 수 있는 오퍼레이션(operation)을 의미합니다. concept이 명사라면 action은 동사입니다.

주사위 샘플 캡슐에는 RollDice라는 action이 있습니다. 이 action은 NumSidesNumDice를 input으로 받아 RollResult를 output으로 표시합니다.

action (RollDice) {
collect{
input (numDice) {
type (NumDiceConcept)
min (Required)
max (One)
}

input (numSides) {
type (NumSidesConcept)
min (Required)
max (One)
}
}
output (RollResultConcept)
type (Calculation)
}

View on GitHub

유효성 검사(validation)와 에러 처리(error handling)를 비롯한 action에 대한 자세한 내용은 Action 모델링하기에서 확인할 수 있습니다.