Dialogflow로 마이그레이션

Dialogflow V2로 에이전트 마이그레이션

Dialogflow V1(이전 명칭: API.AI)과 같은 Dialogflow의 이전 출시 버전을 사용했으며 기존 에이전트를 Dialogflow와 함께 사용하려면 에이전트를 Dialogflow V2 API로 마이그레이션해야 합니다. 또한 이전 출시 버전의 Dialogflow에서 작업한 코드를 최신 Dialogflow V2 API로 업데이트해야 합니다.

에이전트를 이전 버전의 Dialogflow에서 Dialogflow V2 API로 마이그레이션하려면 다음 단계를 수행하여 새 에이전트를 만들고 이전 에이전트를 새 에이전트로 가져옵니다.

  1. Dialogflow 콘솔로 이동하고 이전 에이전트의 설정을 선택합니다.

  2. 내보내기 및 가져오기 탭을 선택합니다.

  3. ZIP 파일로 내보내기를 선택하고 이전 에이전트 구성을 .zip 파일로 저장합니다.

  4. 에이전트를 만듭니다.

    • Dialogflow 콘솔로 이동합니다.
    • 왼쪽 메뉴에서 에이전트 만들기를 클릭합니다. 이미 다른 에이전트가 있는 경우 에이전트 이름을 클릭하고 아래로 스크롤하여 새 에이전트 만들기를 클릭합니다.
    • 에이전트 이름, 기본 언어, 기본 시간대, GCP 프로젝트를 입력한 후 만들기 버튼을 클릭합니다. 만든 후에 에이전트 버전 및 요금제를 변경할 수 있습니다.
  5. Dialogflow 콘솔에서 새 에이전트의 설정을 선택합니다.

  6. 내보내기 및 가져오기 탭을 선택합니다.

  7. ZIP 파일에서 가져오기를 선택하고 이전 버전의 에이전트를 내보낼 때 만든 .zip 파일을 가져옵니다.

    에이전트 가져오기 및 내보내기에 대한 자세한 내용은 내보내기 및 가져오기를 참조하세요.

  8. 이전 버전의 Dialogflow에 대한 코드를 작성한 경우 이 코드도 현재 버전으로 마이그레이션해야 합니다. 이 주제에는 Dialogflow V1 버전에서 최신 버전의 Dialogflow로 코드를 마이그레이션하는 정보가 포함됩니다.

Dialogflow V2beta1에서 V2로 코드 마이그레이션

V2beta1 API 사용자는 V2 API로 마이그레이션하는 것이 좋습니다.

  • REST 또는 RPC를 사용하는 경우 엔드포인트를 dialogflow.googleapis.com/v2beta1/...에서 dialogflow.googleapis.com/v2/...로 업데이트합니다.
  • 클라이언트 라이브러리를 사용하는 경우 다음과 같이 업데이트합니다.
    • 동적 언어(Python, Node.js, Ruby): 패키지를 업그레이드합니다. 그러면 코드가 자동으로 최신 정식 버전을 사용합니다.
    • 정적 언어(자바, C#, PHP, Go): 새 패키지를 설치하면 모든 가져오기 구문을 업데이트하여 'v2beta1' 대신 'v2'를 참조합니다.
  • Intent에 머신러닝(ML)을 사용할 것인지 선택하는 필드가 변경되었습니다. mlEnabled 필드가 제거되고 mlDisabled 필드로 교체되어 ML이 기본적으로 사용 설정됩니다.
    버전 REST RPC 기본값 기본 동작
    V2beta1 mlEnabled ml_enabled 2018년 4월 23일이 있는 주 이전: false 2018년 4월 23일이 있는 주 이후: true 2017년 11월 V2beta1 출시 이후 ML은 사용 설정되지 않았습니다. 2018년 4월 23일 주에 기본값이 변경되어 ML이 기본적으로 사용 설정됩니다. 이 동작을 명시적으로 제어하려면 새 mlDisabled 필드를 사용합니다.
    V2 mlDisabled ml_disabled false ML 사용 설정됨

Dialogflow V1에서 V2로 코드 마이그레이션

Dialogflow V2 API가 Dialogflow V1 REST형 API를 대체합니다. 에이전트를 Dialogflow로 마이그레이션한 후에는 Dialogflow V1 REST형 API를 호출하는 코드도 업데이트해야 합니다. 다음 표에서는 Dialogflow V1 API를 대체하는 API와 더 이상 지원되지 않는 Dialogflow V1 API를 보여줍니다.

/query

Dialogflow V1 Dialogflow V2 API
/query detectIntent

요청

Dialogflow V1 Dialogflow V2 API
요청 JSON 요청 본문
필드
Dialogflow V1 Dialogflow V2 API
event(e) queryInput.event
event.name queryInput.event.name
event.data queryInput.event.parameters
v 해당 없음
sessionId session(경로 매개변수)
lang queryInput.text.languageCode(텍스트 쿼리용), queryInput.audioConfig.languageCode(오디오 쿼리용), queryInput.event.languageCode
contexts queryParams.contexts
contexts.name queryParams.contexts.name
contexts.parameters queryParams.contexts.parameters
contexts.lifespan queryParams.contexts.lifespanCount
resetContexts queryParams.resetContexts
entities queryParams.sessionEntityTypes
timezone queryParams.timeZone
location queryParams.geoLocation
location.latitude queryParams.geoLocation.latitude
location.longitude queryParams.geoLocation.longitude
originalRequest queryParams.payload

응답

Dialogflow V1 Dialogflow V2 API
응답 JSON 응답 본문
필드
Dialogflow V1 Dialogflow V2 API
id responseId
timestamp 해당 없음
lang languageCode
result queryResult
result.source queryResult.webhookSource
result.resolvedQuery queryResult.queryText
result.action queryResult.action
result.actionIncomplete queryResult.allRequiredParamsPresent
result.parameters queryResult.parameters
result.contexts queryResult.outputContexts
result.contexts.name queryResult.outputContexts.name
result.contexts.parameters queryResult.outputContexts.parameters
result.contexts.lifespan queryResult.outputContexts.lifespanCount
result.fulfillment 해당 없음
result.fulfillment.speech queryResult.fulfillmentText
result.fulfillment.messages queryResult.fulfillmentMessages
result.score queryResult.intentDetectionConfidence
result.metadata queryResult.intent
result.metadata.intentId queryResult.intent.name
result.metadata.webhookUsed queryResult.intent.webhookState
result.metadata.webhookForSlotFillingUsed queryResult.intent.webhookState
result.metadata.webhookResponseTime queryResult.diagnosticInfo
result.metadata.intentName queryResult.intent.displayName
status Status, queryResult.webhookState
sessionId 해당 없음

/entities

Dialogflow V1 Dialogflow V2 API
/entities entityTypes

항목 객체

Dialogflow V1 Dialogflow V2 API
Entity EntityType
필드
Dialogflow V1 Dialogflow V2 API
id name
name displayName
entries entities
entries.value entities.value
entries.synonyms entities.synonyms
isEnum kind
automatedExpansion autoExpansionMode

/userEntities

Dialogflow V1 Dialogflow V2 API
/userEntities sessions.entityTypes

사용자 항목 객체

Dialogflow V1 Dialogflow V2 API
사용자 항목 SessionEntityType
필드
Dialogflow V1 Dialogflow V2 API
sessionId 세션 ID(경로 매개변수)
name name
extend entityOverrideMode
entries entities

/intents

Dialogflow V1 Dialogflow V2 API
/intents intents

인텐트 객체

Dialogflow V1 Dialogflow V2 API
Intent Intent
필드
Dialogflow V1 Dialogflow V2 API
id name
name displayName
auto mlDisabled
contexts inputContextNames
templates 해당 없음
userSays trainingPhrases
userSays.id trainingPhrases.name
userSays.data trainingPhrases.parts
userSays.data.text trainingPhrases.parts.text
userSays.data.meta trainingPhrases.parts.entityType
userSays.data.alias trainingPhrases.parts.alias
userSays.data.userDefined trainingPhrases.parts.userDefined
userSays.isTemplate trainingPhrases.type
userSays.count trainingPhrases.timesAddedCount
responses 해당 없음
responses.action action
responses.resetContexts resetContexts
responses.affectedContexts outputContexts
responses.affectedContexts.name outputContexts.name
responses.affectedContexts.lifespan outputContexts.lifespanCount
responses.parameters parameters
responses.parameters.name parameters.displayName
responses.parameters.value parameters.value
responses.parameters.defaultValue parameters.defaultValue
responses.parameters.required parameters.mandatory
responses.parameters.dataType parameters.entityTypeDisplayName
responses.parameters.prompts parameters.prompts
responses.parameters.isList parameters.isList
responses.messages messages
responses.defaultResponsePlatforms defaultResponsePlatforms
priority priority
webhookUsed webhookState
webhookForSlotFilling webhookState
fallbackIntent isFallback
cortanaCommand 해당 없음
events events
events.name 해당 없음

메시지 객체

텍스트 메시지 객체
Dialogflow V1 Dialogflow V2 API
Text Text
필드
Dialogflow V1 Dialogflow V2 API
type 해당 없음
speech text
이미지 메시지 객체
Dialogflow V1 Dialogflow V2 API
Image Image
필드
Dialogflow V1 Dialogflow V2 API
type 해당 없음
imageUrl imageUri
카드 메시지 객체
Dialogflow V1 Dialogflow V2 API
Card Card
필드
Dialogflow V1 Dialogflow V2 API
type 해당 없음
title title
subtitle subtitle
buttons buttons
buttons.text buttons.text
buttons.postback buttons.postback
빠른 답장 메시지 객체
Dialogflow V1 Dialogflow V2 API
빠른 답장 QuickReplies
필드
Dialogflow V1 Dialogflow V2 API
type 해당 없음
title title
replies quickReplies
커스텀 페이로드 메시지 객체

커스텀 페이로드는 고급 웹훅 응답이 필요할 때 플랫폼별 응답을 Actions on Google 및 다른 통합으로 보내는 데 사용됩니다. 커스텀 페이로드를 취하고 설명하는 여러 필드가 있으며 이러한 각 필드는 각 버전 아래에 나열됩니다. V2의 경우 WebhookResponse.payload 또는 Intent.Message.payload 필드를 사용할 수 있습니다.

Dialogflow V1 Dialogflow V2 API
기본 메시지 객체 payload
클릭 한 번으로 통합 payload
Actions on Google payload
WebhookResponse.payload
Intent.Message.payload
Intent.Message.Platform

/contexts

Dialogflow V1 Dialogflow V2 API
/contexts sessions.contexts

컨텍스트 객체

Dialogflow V1 Dialogflow V2 API
Context Context
필드
Dialogflow V1 Dialogflow V2 API
name name
lifespan lifespanCount
parameters parameters