작업은 호출 및 검색을 정의하는 앱의 진입점입니다. 모델을 빌드해야 합니다 작업 패키지라고 하는 JSON 파일에서 작업을 선언합니다. 나중에 테스트하거나 실행하려고 할 때 승인을 위해 작업 프로젝트를 제출하세요. 작업 패키지는 작업 프로젝트의 작업을 정의합니다.
작업 패키지에서 작업을 정의하려면 작업이 호출되고, 그에 상응하는 처리 엔드포인트가 인텐트가 트리거됩니다 다음과 같은 유형의 작업을 만들 수 있습니다.
- 기본 작업: 모든 작업 프로젝트에는 작동하는 시작 인텐트가 있어야 합니다.
를 사용자가 대화를 시작할 수 있는 진입점으로 사용할 수 있습니다. 시작 인텐트는
사용자가 작업 이름을 말하여 명시적으로 작업을 호출하면
예: "Hey Google, ExampleAction에 연결해 줘"). 이 시작 인텐트는
actions.intent.MAIN
인텐트 이름 - 딥 링크를 위한 추가 작업: 개발자가 직접 정의한 인텐트가 포함된 작업 패키지를 생성합니다. 이를 통해 사용자는 인텐트와 함께 작업 이름을 말하여 특정 기능을 호출할 수 있습니다. (예: "Hey Google, ExampleAction에 신발 찾아 줘")
방법에 관한 자세한 내용은 인텐트 및 호출을 참고하세요. 이 호출 모델이 작동하는 방식을 알아봅시다.
기본 작업 정의
모든 작업 패키지에는
actions.intent.MAIN
인텐트를 처리하세요. 이 인텐트는 사용자가
이름별 작업 (예: "Hey Google, ExampleAction에 연결해 줘")
action.json
라는 상용구 Action 패키지 파일을 생성하려면 다음을 실행합니다.
다음 단계를 따르세요.
gactions
CLI를 다운로드합니다.- 작업 프로젝트의 소스 파일을 위한 로컬 디렉터리를 만듭니다.
터미널에서 다음 명령어를 실행합니다.
$ cd PROJECT_DIRECTORY $ gactions init
작업 패키지 파일이 생성되면 자리표시자 콘텐츠를
값으로 사용됩니다. 다음은 ExampleAction
의 변경사항이 적용된 action.json
의 예입니다.
{ "actions": [ { "description": "Default welcome intent", "name": "MAIN", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "actions.intent.MAIN", "trigger": { "queryPatterns": [ "talk to ExampleAction" ] } } } ], "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } }, "locale": "en" }
추가 작업 정의
진입점 역할을 하는 추가 작업을 제공할 수 있습니다. 이를 통해 사용자는 사용자가 자신이 원하는 것을 더욱 상세하게 구체적으로 설명하도록 하여 하고 싶은 일 (예: "Hey Google, ExampleAction에게 말해 줘"라고 하면 신발"처럼 말이죠.
추가 작업을 정의하려면 다음 단계를 따르세요.
-
예를 들어 다음 코드는 다음을 정의하는 작업: <ph type="x-smartling-placeholder">actions
배열에서 모든 진입점의 작업을 지정합니다.- </ph>
com.example.ExampleAction.BUY
의 인텐트 이름- 이 인텐트가 트리거될 때 사용자 입력에서 파싱할
parameters
입니다. 이 방법은 작업구문에서 특정 데이터가 필요한 경우 사용자가 액션을 호출합니다. queryPatterns
: 사용자가 인텐트를 트리거하기 위해 해야 하는 말을 정의합니다. 쿼리 패턴에는 Schema.org 유형이 포함될 수 있습니다. 정의할 수 있습니다
{ "description": "Direct access", "name": "BUY", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "com.example.ExampleAction.BUY", "parameters": [ { "name": "color", "type": "org.schema.type.Color" } ], "trigger": { "queryPatterns": [ "find some $org.schema.type.Color:color sneakers", "buy some blue suede shoes", "get running shoes" ] } } }
-
conversationName
를 지정하여 이 인텐트의 처리를 지정합니다.conversations
객체의 항목에 해당합니다.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
다음은 전체 작업 패키지의 예입니다.
{ "actions": [ { "description": "Default welcome intent", "name": "MAIN", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "actions.intent.MAIN", "trigger": { "queryPatterns": [ "talk to ExampleAction" ] } } }, { "description": "Direct access", "name": "BUY", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "com.example.ExampleAction.BUY", "parameters": [ { "name": "color", "type": "org.schema.type.Color" } ], "trigger": { "queryPatterns": [ "find some $org.schema.type.Color:color sneakers", "buy some blue suede shoes", "get running shoes" ] } } } ], "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } }, "locale": "en" }