대부분의 경우 에이전트를 빌드할 때 설계 시점에 컨텍스트를 구성합니다. 예를 들어 'I would like to add pizza to my shopping cart'와 같은 학습 문구가 있는 경우
일부 고차원적 시나리오에서는 실시간 대화 중인 런타임에 컨텍스트를 가져오고 설정하는 코드 작성이 필요할 수도 있습니다. 예를 들어 기기 위치를 감지하고 나중에 위치를 참조 할 수 있도록 컨텍스트에 추가한 경우
이 문서에서는 Dialogflow 콘솔, API 또는 fulfillment를 사용하여 설계 시점 및 런타임에 컨텍스트를 가져오고 설정하는 방법을 설명합니다.
컨텍스트 이름 지정
컨텍스트 이름 지정에 다음 규칙이 적용됩니다.
규칙 | 예시 |
---|---|
영숫자 이름을 사용합니다. | mycontext1 |
공백 대신 - 또는 _ 를 사용합니다. |
my-context-1 |
이름은 대소문자를 구분하지 않습니다. | Abc123 과 abc123 은 같은 이름으로 간주됩니다. |
API 사용 시에는 모든 컨텍스트 이름에 소문자를 사용합니다. | abc123 |
설계 시점에 컨텍스트 설정
Console
- Dialogflow ES 콘솔로 이동합니다.
- 에이전트를 선택합니다.
- 왼쪽 사이드바 메뉴에서 인텐트를 선택합니다.
- 인텐트 데이터의 컨텍스트 섹션을 펼칩니다.
- 인텐트 데이터에서 출력 컨텍스트 추가 또는 입력 컨텍스트 추가 필드를 클릭합니다.
- 컨텍스트의 이름을 입력하고 Return 키를 누릅니다.
- 출력 컨텍스트의 경우 선택사항으로 수명 서클을 클릭하여 수명을 변경합니다.
- 필요에 따라 컨텍스트를 더 추가합니다.
- 저장을 클릭합니다.
API
인텐트 참조를 확인하세요.
런타임에 컨텍스트 설정
Fulfillment
웹훅 서비스에서 WebhookResponse
를 전송할 때 outputContexts
필드를 원하는 활성 컨텍스트로 설정합니다.
API
Sessions
유형의 detectIntent
호출 요청에 활성 컨텍스트를 설정하는 데 사용되는 queryParameters.contexts
필드가 포함됩니다.
다음은 detectIntent
요청의 REST JSON 예시입니다.
POST https://dialogflow.googleapis.com/v2/{session=projects/*/agent/sessions/*}:detectIntent
{ "queryInput": { "text": { "languageCode": "en-US", "text": "I would like to add pizza to my shopping cart." } }, "queryParams": { "contexts": [{ "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen", "lifespanCount": 5, "parameters": { "product": "Pizza", "device-location" "@52.3377871,4.8698096,17z" } }] } }
언제든지 Contexts
유형의 create, delete, update 메서드를 호출할 수 있습니다.
런타임에 컨텍스트 가져오기
Fulfillment
웹훅 서비스가 WebhookRequest
를 수신할 때 queryResult.outputContexts
필드에 활성 컨텍스트가 포함됩니다.
API
Sessions
유형의 detectIntent
호출에 대한 응답에 활성 컨텍스트 목록을 제공하는 queryResult.outputContexts
필드가 포함됩니다.
다음은 detectIntent
응답의 REST JSON 예시입니다.
{ "responseId": "response-id", "queryResult": { "queryText": "I would like to add pizza to my shopping cart.", "parameters": { "product": "pizza" }, "allRequiredParamsPresent": true, "fulfillmentText": "The product has been added.", "fulfillmentMessages": [ { "text": { "text": [ "The product has been added." ] } } ], "outputContexts": [ { "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen", "lifespanCount": 5, "parameters": { "product": "Pizza", "device-location" "@52.3377871,4.8698096,17z" } } ], "intent": { "name": "projects/project-id/agent/intents/intent-id", "displayName": "buy-product" }, "intentDetectionConfidence": 0.8057143, "languageCode": "en", } }
언제든지 Contexts
유형의 get 및 list 메서드를 호출할 수 있습니다.