파라미터 정의, 참조, 설정, 가져오기
파라미터가 사용되는 일반적인 네 가지 방법은 다음과 같습니다.
- 디자인 시 정의: 설계 시 콘솔 또는 API를 사용하여 파라미터를 정의합니다. 예를 들어 인텐트 파라미터를 정의하고 학습 문구에 사용하여 추출해야 하는 최종 사용자 입력을 나타낼 수 있습니다.
- 디자인 시 참조: 파라미터 참조는 런타임 시 추출할 파라미터 값을 포함하는 변수입니다. 설계 시 콘솔 또는 API를 사용하여 다양한 데이터 유형의 파라미터를 참조할 수 있습니다. 예를 들어 경로의 정적 fulfillment 응답에서 세션 파라미터를 참조할 수 있습니다.
- 런타임 시 설정: 런타임 시 대화형 에이전트(Dialogflow CX) 서비스, API를 호출하는 서비스, 웹훅 서비스가 모두 파라미터 값을 설정할 수 있습니다. 예를 들어 대화형 에이전트(Dialogflow CX) 서비스는 최종 사용자 입력이 인텐트와 일치하고 입력에 파라미터 데이터가 포함된 경우 인텐트 파라미터의 값을 설정합니다.
- 런타임 시 가져오기: 런타임 시 파라미터 참조에 설정된 파라미터 값이 포함되며 API 또는 웹훅을 사용하여 파라미터 값을 가져올 수 있습니다. 예를 들어 인텐트가 일치되고 웹훅이 호출되면 웹훅 서비스가 인텐트의 파라미터 값을 수신합니다.
파라미터 이름 지정
파라미터 이름 지정에 다음 규칙이 적용됩니다.
[A-Z]
,[a-z]
,[0-9]
,.
,-
,_
문자를 사용하세요.- 파라미터 이름은 대소문자를 구분하지 않으므로 대화형 에이전트(Dialogflow CX)는
Apple
와apple
를 동일한 파라미터로 취급합니다. 대화형 에이전트(Dialogflow CX)에서 반환한 파라미터 이름은 대소문자를 구분하지 않으므로 웹훅 및 API 클라이언트 코드 또한 파라미터 이름의 대소문자를 구분하지 않습니다. - 서로 다른 인텐트나 양식에서 같은 ID 또는 표시 이름으로 파라미터를 만들 때 항목 유형과 기타 설정이 모든 정의에서 동일한지 확인합니다. 항목 유형이나 기타 파라미터 설정이 다르면 정의마다 고유 파라미터 ID 또는 표시 이름을 사용합니다.
파라미터 값 유형
파라미터 값은 여러 값 유형을 지원합니다. 아래 세션 섹션에서는 각 파라미터 값 유형을 참조하는 방법을 설명합니다. 지원되는 유형은 다음과 같습니다.
유형 | 설명 |
---|---|
Scalar | 단일 숫자 또는 문자열 값 |
복합 | 복합 항목 일치 또는 original 및 resolved 필드가 포함된 인텐트 파라미터 채우기로 채워진 JSON 객체 |
목록 | 목록으로 구성된 파라미터에 대해 채워진 스칼라 또는 복합 값 목록입니다. 아래의 목록 옵션을 참조하세요. |
파라미터 빈 문자열 및 null 값
문자열 파라미터 값을 ""
로 설정하면 파라미터가 빈 문자열로 설정됩니다.
파라미터 값을 null
로 설정하면 파라미터가 설정되지 않았음을 나타냅니다.
파라미터 원래 값
런타임 시 텍스트가 특정 항목과 일치하면 처리에 더 편리한 값으로 확인되는 경우가 많습니다. 예를 들어 최종 사용자 입력의 'apples'라는 단어는 과일 항목에 해당하는 'apple'로 확인될 수 있습니다.
인텐트 파라미터 참조의 모든 값 유형은 원래 값이나 확인된 값을 참조할 수 있습니다.
세션 파라미터 참조의 복합 값 유형만 원래 값을 참조할 수 있습니다.
인텐트 파라미터
인텐트는 파라미터를 사용하여 인텐트가 일치할 때 최종 사용자가 제공한 데이터를 추출합니다. 다음 데이터는 인텐트 파라미터를 정의하는 데 사용됩니다.
- 이름(ID 또는 표시 이름이라고도 함): 파라미터를 식별하는 이름입니다.
- 항목 유형: 파라미터와 연결된 항목 유형입니다.
- 목록: 참인 경우 파라미터가 값 목록으로 처리됩니다.
- 로그 수정: true인 경우 사용자가 제공한 파라미터 데이터가 수정됩니다.
인텐트 파라미터 정의
인텐트 파라미터는 인텐트 데이터를 만들거나 학습 문구를 주석 처리할 때 설계 시 정의됩니다.
인텐트 파라미터 참조
인텐트 파라미터 참조는 인텐트 경로의 정적 fulfillment 응답 메시지에서 사용할 수 있습니다.
원래 값 또는 확인된 값을 참조할 수 있습니다.
현재 일치하는 인텐트의 파라미터를 참조하려면 다음 형식 중 하나를 사용합니다.
$intent.params.parameter-id.original $intent.params.parameter-id.resolved
예를 들어 파라미터 ID가 date
이면 확인된 값을 $intent.params.date.resolved
로 참조할 수 있습니다.
인텐트 파라미터 설정
런타임 시 최종 사용자 입력이 인텐트와 일치하면 연결된 학습 문구의 주석에서 사용하는 모든 파라미터가 대화형 에이전트(Dialogflow CX)에 의해 설정됩니다.
인텐트 경로의 fulfillment는 fulfillment 파라미터 사전 설정을 사용하여 런타임 시 인텐트 파라미터 값을 설정할 수 있습니다.
인텐트 파라미터 가져오기
인텐트가 일치하는 대화 차례에서 코드는 인텐트 파라미터 값에 액세스할 수 있습니다.
API와의 상호작용은 인텐트 파라미터 값을 반환합니다.
Session
유형의 detectIntent
메서드 queryResult.parameters
응답 필드를 참조하세요.
세션 참조의 프로토콜 및 버전을 선택합니다.
프로토콜 | V3 | V3beta1 |
---|---|---|
REST | 세션 리소스 | 세션 리소스 |
RPC | 세션 인터페이스 | 세션 인터페이스 |
C++ | SessionsClient | 해당 사항 없음 |
C# | SessionsClient | 해당 사항 없음 |
Go | SessionsClient | 해당 사항 없음 |
자바 | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | 없음 | 해당 사항 없음 |
Python | SessionsClient | SessionsClient |
Ruby | 없음 | 해당 사항 없음 |
웹훅의 수신 인텐트 파라미터 값입니다.
웹훅 요청의 intentInfo.parameters
필드를 참조하세요.
양식 파라미터
페이지마다 최종 사용자로부터 수집해야 하는 파라미터의 목록인 양식을 정의합니다. 에이전트는 페이지 파라미터라고도 하는 모든 필수 양식 파라미터를 수집할 때까지 여러 대화 차례에 걸쳐 최종 사용자와 상호작용합니다. 에이전트는 페이지에 정의된 순서대로 이러한 파라미터를 수집합니다. 또한 각 필수 양식 파라미터에 대해 에이전트가 최종 사용자에게 해당 정보를 요청하는 데 사용하는 프롬프트를 제공합니다. 이 프로세스를 양식 작성이라고 합니다.
예를 들어 Collect Customer Info
페이지에 대해 최종 사용자 이름과 전화번호를 수집하는 양식을 만들 수 있습니다.
양식 파라미터를 정의하는 데 사용되는 데이터는 다음과 같습니다.
콘솔 옵션 이름 | API 필드 체인 | 설명 |
---|---|---|
표시 이름 | Page.form.parameters[].displayName |
파라미터를 식별하는 이름입니다. |
항목 유형 | Page.form.parameters[].entityType |
파라미터와 관련된 항목 유형입니다. |
필수 | Page.form.parameters[].required |
파라미터가 필요한지 여부를 나타냅니다. 양식 채우기가 완료되기 전에 필수 파라미터를 채워야 하며, 에이전트가 최종 사용자에게 값을 입력하라는 메시지를 표시합니다. 자세한 내용은 아래의 양식 파라미터 설정 섹션을 참조하세요. |
기본값 (필수가 선택 해제된 경우에만 표시됨) | Page.form.parameters[].defaultValue |
선택적 파라미터의 기본값입니다. 자세한 내용은 아래의 양식 파라미터 설정 섹션을 참조하세요. |
목록 | Page.form.parameters[].isList |
true인 경우 파라미터가 값 목록으로 처리됩니다. |
로그에서 수정 | Page.form.parameters[].redact |
true인 경우 최종 사용자가 제공한 파라미터 데이터가 수정됩니다. |
초기 프롬프트 fulfillment | Page.form.parameters[].fillBehavior.initialPromptFulfillment |
최종 사용자에게 필요한 파라미터 값을 요청하는 fulfillment 형식의 초기 프롬프트입니다. 자세한 내용은 아래의 양식 파라미터 설정 섹션을 참조하세요. |
이벤트 핸들러 재요청 | Page.form.parameters[].fillBehavior.repromptEventHandlers |
시도에 실패한 후 에이전트가 파라미터를 작성하도록 최종 사용자에게 다시 요청해야 하는 경우에 사용됩니다. 양식 작성 재요청 핸들러를 참조하세요. 재요청 이벤트 핸들러가 정의되지 않은 경우, 에이전트는 실패한 시도 후에 초기 프롬프트를 재요청합니다. |
DTMF | 해당 사항 없음 | 아래의 DTMF 섹션을 참조하세요. |
양식 파라미터 정의 및 관리
양식 파라미터는 페이지를 만들 때 디자인 시 정의됩니다.
콘솔을 사용하여 양식 파라미터 순서를 변경하려면 페이지에서 파라미터 섹션 제목을 클릭한 다음 파라미터 테이블의 파라미터 행을 드래그합니다.
양식 파라미터를 삭제하려면 페이지에서 파라미터 섹션 제목을 클릭하고 파라미터 위로 마우스를 가져간 후 삭제 delete 버튼을 클릭합니다.
양식 파라미터 참조
양식 파라미터 참조는 직접 사용되지 않습니다. 개별 양식 파라미터 작성 상태 또는 전체 양식만 확인할 수 있습니다. 이러한 양식 상태 참조는 조건 경로의 조건 요구사항에서 사용할 수 있습니다.
현재 페이지의 양식이 작성되었는지 확인하려면 다음 조건을 사용하세요.
$page.params.status = "FINAL"
특정 양식 파라미터가 마지막 단계에서 작성되었는지 확인하려면 다음 조건을 사용하세요.
$page.params.parameter-id.status = "UPDATED"
양식 파라미터 설정
양식 파라미터 값은 다양한 방법으로 설정할 수 있습니다. 다음 하위 섹션에서는 양식 파라미터 값을 설정하는 각 메커니즘을 설명합니다.
기본 파라미터 값
선택적 양식 파라미터의 기본값을 제공할 수 있습니다. 양식 채우기가 시작되면 설정되지 않은 모든 선택적 양식 파라미터가 기본값으로 설정됩니다. 이러한 값은 아래 메커니즘 중 일부에 의해 초기화되거나 재정의될 수 있습니다.
파라미터가 필수이면 기본값은 무시됩니다.
양식 채우기
대화형 에이전트(Dialogflow CX)는 양식 작성 중에 최종 사용자가 제공하는 파라미터 값을 자동으로 설정합니다. 에이전트는 페이지에 정의된 순서대로 필수 파라미터를 수집합니다. 에이전트는 최종 사용자에게 각 필수 파라미터에 입력한 초기 프롬프트 fulfillment를 사용하여 필수 값을 요청합니다. 선택적 파라미터는 프롬프트를 트리거하지 않습니다.
에이전트 프롬프트 후 최종 사용자가 필수 파라미터 값을 제공하지 않으면 재요청 핸들러에 다른 동작이 정의되지 않는 한 초기 프롬프트가 반복됩니다. 초기 텍스트 프롬프트가 여러 개 정의되어 있으면 에이전트 동작은 fulfillment 텍스트 응답의 동작과 동일합니다.
인텐트 및 세션 파라미터 전파
런타임 시 모든 유형의 파라미터를 설정하면 파라미터가 세션에 기록되고 세션 파라미터가 됩니다.
페이지가 처음 활성화되면 활성 기간 동안 세션 파라미터와 동일한 이름의 양식 파라미터가 자동으로 세션 파라미터 값으로 설정됩니다.
이는 인텐트 경로 또는 파라미터 전파의 일치하는 인텐트 파라미터에 발생할 수 있습니다.
인텐트 및 세션 파라미터 전파는 선택적 양식 파라미터를 최종 사용자 입력 값으로 설정하는 유일한 메커니즘이지만 이 메커니즘에서 필수 양식 파라미터 값을 설정하거나 재정의할 수도 있습니다.
Fulfillment 파라미터 사전 설정
경로, 이벤트 핸들러 또는 양식 재요청을 위한 fulfillment는 fulfillment 파라미터 사전 설정을 사용하여 런타임 시 양식 파라미터 값을 설정할 수 있습니다. fulfillment 파라미터 사전 설정은 파라미터 기본값을 포함하여 파라미터 값을 재정의합니다.
웹훅 파라미터 설정
웹훅은 런타임에 양식 파라미터 값을 설정할 수 있습니다.
웹훅 응답의 pageInfo.formInfo.parameterInfo
필드를 참조하세요.
양식 파라미터 가져오기
API와의 상호작용은 양식 파라미터 값을 반환합니다.
Session
유형의 detectIntent
메서드 queryResult.parameters
응답 필드를 참조하세요.
세션 참조의 프로토콜 및 버전을 선택합니다.
프로토콜 | V3 | V3beta1 |
---|---|---|
REST | 세션 리소스 | 세션 리소스 |
RPC | 세션 인터페이스 | 세션 인터페이스 |
C++ | SessionsClient | 해당 사항 없음 |
C# | SessionsClient | 해당 사항 없음 |
Go | SessionsClient | 해당 사항 없음 |
자바 | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | 없음 | 해당 사항 없음 |
Python | SessionsClient | SessionsClient |
Ruby | 없음 | 해당 사항 없음 |
웹훅의 수신 양식 파라미터 값입니다.
웹훅 요청의 pageInfo.formInfo.parameterInfo
필드를 참조하세요.
양식 작성 재요청 핸들러
파라미터 수준 이벤트 핸들러라고도 하는 재요청 핸들러는 필수 파라미터의 복잡한 파라미터 프롬프트 동작을 정의하는 데 사용됩니다. 예를 들어, 재요청 핸들러는 최종 사용자가 초기 프롬프트 이후에 값을 제공하는 데 실패할 때 프롬프트를 변경하고 N번의 실패한 시도 후에 다른 페이지로 전환하는 데 사용할 수 있습니다.
재요청 핸들러가 정의되지 않은 경우 필요에 따라 최종 사용자를 재요청하는 데 초기 프롬프트가 사용됩니다.
최종 사용자가 예상치 못한 입력으로 응답하면 sys.no-match-*
또는 sys.no-input-*
이벤트가 호출되고 이러한 이벤트에 대해 정의된 재요청 핸들러가 호출됩니다.
다른 이벤트 핸들러와 마찬가지로 재요청 핸들러는 다음 중 하나 또는 둘 모두를 사용하여 구성할 수 있는 상태 핸들러의 한 유형입니다.
- 최종 사용자 재요청 메시지 또는 파라미터 사전 설정을 제공하기 위한 fulfillment입니다.
- 현재 페이지를 변경할 전환 대상입니다.
세션 파라미터
런타임 시 모든 유형의 파라미터를 설정하면 파라미터가 세션에 기록되고 세션 파라미터가 됩니다. 이 파라미터는 디자인 시 명시적으로 정의되지 않습니다. 이러한 세션 파라미터는 세션 중에 언제든지 참조할 수 있습니다.
세션 파라미터 참조
세션 파라미터 참조는 다음 유형의 fulfillment에 대한 정적 응답 메시지에서 사용할 수 있습니다.
- 페이지 항목 fulfillment
- 경로 fulfillment
- 이벤트 핸들러 fulfillment
- 양식 프롬프트 fulfillment
- 양식 재요청 fulfillment
참조는 다음에서도 사용할 수 있습니다.
세션 파라미터를 참조하려면 다음 형식을 사용합니다.
Scalar
스칼라 항목 유형으로 파라미터에 액세스하려면 다음 안내를 따르세요.
$session.params.parameter-id
예를 들어 파라미터 ID가 date
이면 값을 $session.params.date
로 참조할 수 있습니다.
복합
복합 항목 유형으로 파라미터 구성원에 액세스하려면 다음 안내를 따르세요.
$session.params.parameter-id.member-name
예를 들어 파라미터 ID가
location
이면zip-code
멤버 값을$session.params.location.zip-code
로 참조할 수 있습니다.복합 항목 유형으로 파라미터의 원래 값에 액세스하려면 다음 안내를 따르세요.
$session.params.parameter-id.original
복합 항목 유형으로 파라미터의 전체 객체에 액세스하려면 IDENTITY 시스템 함수를 사용합니다.
목록
요소의 전체 목록에 액세스하려면 다음을 실행합니다.
$session.params.parameter-id
예를 들어 목록 파라미터 ID가
colors
이고 사용자 쿼리에서 추출된 값이["red", "blue", "yellow"]
이면 모든 값을$session.params.colors
로 참조할 수 있습니다.목록 파라미터의 ith 요소에 액세스하려면 다음 안내를 따르세요.
$session.params.parameter-id[i]
예를 들어 목록 파라미터 ID가
colors
이면 첫 번째 값을$session.params.colors[0]
으로 참조할 수 있습니다.
세션 파라미터 설정
양식 작성이 완료되면 작성 파라미터가 대화형 에이전트(Dialogflow CX)에 의해 세션에 기록됩니다.
경로, 이벤트 핸들러 또는 양식 재요청을 위한 fulfillment는 fulfillment 파라미터 사전 설정을 사용하여 런타임 시 파라미터 값을 설정할 수 있습니다.
웹훅은 런타임에 세션 파라미터 값을 설정할 수 있습니다.
표준 웹훅 응답의 sessionInfo.parameters
필드를 참조하거나 가변형 웹훅 응답을 참조하세요.
API와의 상호작용은 세션 파라미터 값을 설정할 수 있습니다.
Session
유형의 detectIntent
메서드 queryParams.parameters
요청 필드를 참조하세요.
세션 참조의 프로토콜 및 버전을 선택합니다.
프로토콜 | V3 | V3beta1 |
---|---|---|
REST | 세션 리소스 | 세션 리소스 |
RPC | 세션 인터페이스 | 세션 인터페이스 |
C++ | SessionsClient | 해당 사항 없음 |
C# | SessionsClient | 해당 사항 없음 |
Go | SessionsClient | 해당 사항 없음 |
자바 | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | 없음 | 해당 사항 없음 |
Python | SessionsClient | SessionsClient |
Ruby | 없음 | 해당 사항 없음 |
세션 파라미터 가져오기
API와의 상호작용은 세션 파라미터 값을 반환합니다.
Session
유형의 detectIntent
메서드 queryResult.parameters
응답 필드를 참조하세요.
세션 참조의 프로토콜 및 버전을 선택합니다.
프로토콜 | V3 | V3beta1 |
---|---|---|
REST | 세션 리소스 | 세션 리소스 |
RPC | 세션 인터페이스 | 세션 인터페이스 |
C++ | SessionsClient | 해당 사항 없음 |
C# | SessionsClient | 해당 사항 없음 |
Go | SessionsClient | 해당 사항 없음 |
자바 | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | 없음 | 해당 사항 없음 |
Python | SessionsClient | SessionsClient |
Ruby | 없음 | 해당 사항 없음 |
웹훅의 수신 세션 파라미터 값입니다.
웹훅 요청의 sessionInfo.parameters
필드를 참조하세요.
파라미터 전파
최종 사용자 입력이 파라미터 값을 제공할 때 파라미터가 다른 수준으로 전파될 수 있습니다.
- 인텐트 일치로 인텐트 파라미터가 설정된 경우 활성 페이지에 대해 이름이 비슷한 양식 파라미터가 동일한 값으로 설정됩니다. 파라미터의 항목 유형은 인텐트 파라미터 정의에 따라 결정됩니다.
- 인텐트 일치로 인텐트 파라미터가 설정되거나 양식을 작성하는 동안 양식 파라미터가 설정된 경우 파라미터가 세션 파라미터가 됩니다.
전화 통합용 DTMF
파라미터에 DTMF(Dual-tone multi-frequency signaling)를 사용 설정하고 구성할 수 있습니다. 사용 설정하면 전화 통합을 사용하는 에이전트의 최종 사용자가 전화 키패드를 사용하여 파라미터 값을 제공할 수 있습니다.
모호함을 줄이기 위해 DTMF 입력은 일반 및 DTMF 전용(권장) 양식에서 모두 해석될 수 있습니다.
- 일반적인 형식은 간단히 최종 사용자가 입력한 키패드 값입니다.
예를 들면
123#
입니다. - DTMF별 양식은 입력을
dtmf_digits_[digits]
로 변환합니다. 여기서[digits]
는*
를star
로 바꾸고#
을pound
로 바꾼 원래 DTMF 숫자입니다. 예를 들어123#
는dtmf_digits_123pound
로 해석됩니다.
대화형 에이전트(Dialogflow CX)는 파라미터의 항목 유형과 일치할 때 일반 양식과 DTMF별 양식을 모두 일치시키려고 시도합니다.
DTMF 입력에 항목 유형을 사용하는 경우 NLU 일치가 향상되도록 dtmf_digits_123
과 같은 동의어를 정의하는 것이 좋습니다.
DTMF 입력이 종료 조건을 충족하지 않는 경우(최대 자릿수에 도달하지 않았거나 마지막 자릿수에서 종료되지 않은 경우) 대화형 에이전트(Dialogflow CX 에이전트)는 추가 입력을 기다립니다. 이 기간 동안 음성 중지 제한 시간이 트리거되면 에이전트는 대신 입력 없음 이벤트를 호출합니다. 음성 발화만 감지되면 에이전트는 음성 입력과 비교합니다. 음성과 DTMF 입력이 모두 감지되면 음성 입력이 삭제되고 DTMF 입력만 고려됩니다.
파라미터에 DTMF를 사용 설정하고 맞춤설정하려면 다음 안내를 따르세요.
콘솔
- 아직 사용 설정하지 않은 경우 에이전트 음성 및 IVR 설정에서 고급 설정을 사용 설정합니다.
- page 파라미터를 만듭니다.
- 파라미터 창에서 DTMF 사용 설정을 전환합니다.
- 최대 자릿수를 최종 사용자가 이 파라미터에 제공할 수 있는 최대 자릿수로 설정합니다.
- 숫자 완료를 파라미터의 DTMF 입력을 종료할 키패드 값으로 설정합니다.
이 설정에
#
을 사용하는 것이 일반적입니다. 대화형 에이전트(Dialogflow CX) 쿼리에 마지막 자릿수가 추가되지 않으므로 마지막 자릿수가 #이고 입력이 123#이면 실제 쿼리 입력은 '123'이 됩니다.
에이전트를 빌드할 때 시뮬레이터에서 DTMF 입력을 테스트할 수 있습니다.
스마트 엔드포인트
에이전트에 스마트 엔드포인트가 사용 설정된 경우 특정 숫자 파라미터에 대해 스마트 엔드포인트 동작을 맞춤설정할 수 있습니다.
- 모든 숫자가 수집될 때까지 대기하도록 스마트 엔드포인트에 힌트를 주려면 최소 자릿수를 설정합니다.
- 일반적인 숫자 스크립트 작성 오류를 수정하여 숫자 음성 인식을 개선하려면 스크립트 수정을 설정합니다. en 또는 en-* 언어 코드를 지정하는 요청에서만 지원됩니다.
- 사용자가 추가 입력을 제공할 때까지 대화형 에이전트(Dialogflow CX)가 대기하는 추가 시간을 지정하려면 대기 제한 시간을 설정합니다.
흐름 범위 파라미터
흐름 범위 파라미터를 fulfillment 파라미터 사전 설정 또는 양식 파라미터로 정의할 수 있습니다. 이러한 파라미터는 정의된 흐름이 활성 상태인 동안에만 참조할 수 있으며 세션 파라미터로 유지되지 않습니다.
흐름 범위 파라미터를 정의하거나 참조하려면 다음 문법을 사용합니다.
$flow.parameter-name
예를 들어 파라미터 이름이 date
인 경우 파라미터를 $flow.date
로 정의하거나 참조할 수 있습니다.
파라미터를 정의할 때 $
프리픽스를 사용하는 것은 파라미터 정의에 $
를 사용하지 않는 다른 파라미터 유형과 다릅니다.
흐름 범위 파라미터 정의의 예시 입니다.
흐름 범위 파라미터 값 수명
드물지만 특정 고급 사례에서는 흐름이 비활성 상태가 된 후 흐름이 다시 활성화될 때 흐름 범위 파라미터 값이 보관(또는 삭제)되는 방식을 파악해야 할 수 있습니다.
흐름이 비활성 상태가 되었다가 다시 활성 상태가 될 때 흐름 범위 파라미터 값이 유지되는지 여부는 흐름 스택과 스택의 흐름 instances에 따라 다릅니다.
- 흐름 A가 특정 전환 대상을 사용하여 흐름 B로 전환되면 흐름 A(상위 흐름)가 스택에 유지되고 흐름 A는 흐름 범위 파라미터 값을 유지하고 새 흐름 B(하위 흐름)의 새 인스턴스가 스택에 추가됩니다.
- 하위 흐름이 기호 전환 대상(예: END_FLOW)을 사용하여 상위 흐름으로 다시 전환되면 하위 흐름이 스택에서 삭제됩니다. 모든 하위 흐름 범위 파라미터 값이 삭제되고 모든 상위 흐름 범위 파라미터 값이 유지됩니다.
- 특정 전환 대상이 있는 일련의 전환을 사용하면 흐름 스택에 흐름 유형 하나의 여러 인스턴스가 포함될 수 있습니다. 흐름 유형의 각 인스턴스에는 고유한 흐름 범위 파라미터 값이 있습니다. 예를 들어 A1 -> B1 -> C1 -> B2에서 A, B, C는 흐름 유형이고 숫자는 흐름 유형의 인스턴스를 나타냅니다. 이 예시에서 B1과 B2는 흐름 B의 다른 인스턴스이며 고유한 흐름 범위 파라미터가 있습니다.
예를 들면 다음과 같습니다.
전환 | 결과 |
---|---|
흐름 A(A1)가 활성화됩니다. 흐름 B(B1)는 특정 전환 대상을 사용하여 활성화됩니다. 흐름 B는 기호화된 전환 대상을 사용하여 시작한 흐름 A(A1)로 다시 전환합니다. |
흐름 A는 파라미터 값을 유지합니다. |
흐름 A(A1)가 활성화됩니다. 흐름 B(B1)는 특정 전환 대상을 사용하여 활성화됩니다. 흐름 B는 특정 전환 대상을 사용하여 흐름 A(A2)의 새 인스턴스로 전환합니다. |
스택 맨 위에 있는 흐름 A(A2)의 새 인스턴스는 스택 하단의 흐름 A(A1)의 파라미터 값에 액세스할 수 없습니다. |
흐름 A(A1)가 활성화됩니다. 흐름 B(B1)는 특정 전환 대상을 사용하여 활성화됩니다. 흐름 A (A1)은 기호화된 전환 대상을 사용하여 활성화됩니다. 흐름 B(B2)는 특정 전환 대상을 사용하여 활성화됩니다. |
흐름 B(B2)는 두 번째 전환(B1) 이후에 활성화된 동안 설정된 파라미터 값을 유지하지 않습니다. |
요청 범위 파라미터
요청 범위 파라미터는 현재 요청의 수명 주기 동안에만 참조될 수 있으며 세션 파라미터로 유지되지 않는 대화형 에이전트(Dialogflow CX)가 만든 단기 파라미터입니다.
요청 범위 파라미터는 다음 기능과 관련해 대화형 에이전트(Dialogflow CX)에서 생성됩니다.
기본 제공 파라미터
다음을 사용하여 요청과 관련된 다양한 데이터에 액세스할 수 있습니다.
참조 | 설명 |
---|---|
$request.agent-id | 에이전트의 식별자입니다. |
$request.session-id | 세션 식별자입니다. |
$request.language | QueryInput.language_code 에 지정된 언어 코드입니다. |
$request.resolved-language | 처리 중에 에이전트에서 사용한 실제 언어 코드입니다. 확인된 언어는 요청에 지정된 언어와 다를 수 있습니다. 예를 들어 에이전트가 'en'만 지원하고 요청에 지정된 언어가 'en-US'이면 확인된 언어는 'en'입니다. |
$request.user-utterance | 요청에 지정된 현재 사용자 발화입니다. |
$request.last-agent-utterance | 에이전트가 보낸 가장 최근 발화입니다. |
커스텀 페이로드
QueryParameters.payload
가 설정되면 $request.payload.param-id
를 통해 해당 파라미터에 액세스할 수 있습니다.
감정 분석
감정 분석이 사용 설정된 경우 다음 감정 참조를 사용할 수 있습니다.
참조 | 유형 | 설명 |
---|---|---|
$request.sentiment.score | 숫자 | 감정 점수로, -1.0(부정적인 감정)부터 1.0(긍정적인 감정)까지입니다. |
$request.sentiment.magnitude | 숫자 | 0.0에서 +inf까지의 전반적인 감정 강도(긍정적 및 부정적 모두)를 나타냅니다. 점수와 달리 크기는 정규화되지 않습니다. 최종 사용자 입력 내의 각 감정 표현(긍정적 및 부정적 모두)이 입력의 크기에 반영됩니다. 입력이 길수록 크기가 커질 수 있습니다. |
$request.sentiment.succeeded | 불리언 | 감정 분석이 성공하면 true, 그렇지 않으면 false가 반환됩니다. |
파라미터 수정
모든 인텐트 또는 양식 파라미터에 파라미터 수정을 사용 설정할 수 있습니다. 그러면 로그 및 대화형 에이전트(Dialogflow CX) 내부 저장소에서 최종 사용자의 런타임 파라미터 데이터가 수정됩니다.
수정된 파라미터는 로그에서 $parameter-name_redacted
로 표시됩니다.
예를 들어 최종 사용자가 'My address is 1600 Amphitheatre Parkway'라고 입력하면 address 파라미터가 '1600 Amphitheatre Parkway'로 전송됩니다. 로깅된 텍스트는 'My address is $address_redacted'입니다.
파라미터 수정을 사용 설정하려면 다음 안내를 따르세요.
콘솔
파라미터를 만들거나 업데이트할 때 로그 수정 체크박스를 선택합니다.
API
Intent
유형의 parameters[].redact
필드를 true로 설정합니다.
인텐트 참조의 프로토콜 및 버전 선택:
프로토콜 | V3 | V3beta1 |
---|---|---|
REST | 인텐트 리소스 | 인텐트 리소스 |
RPC | 인텐트 인터페이스 | 인텐트 인터페이스 |
C++ | IntentsClient | 해당 사항 없음 |
C# | IntentsClient | 해당 사항 없음 |
Go | IntentsClient | 해당 사항 없음 |
자바 | IntentsClient | IntentsClient |
Node.js | IntentsClient | IntentsClient |
PHP | 없음 | 해당 사항 없음 |
Python | IntentsClient | IntentsClient |
Ruby | 없음 | 해당 사항 없음 |
Page
유형의 form.parameters[].redact
필드를 true로 설정합니다.
페이지 참조의 프로토콜 및 버전 선택:
프로토콜 | V3 | V3beta1 |
---|---|---|
REST | 페이지 리소스 | 페이지 리소스 |
RPC | 페이지 인터페이스 | 페이지 인터페이스 |
C++ | PagesClient | 해당 사항 없음 |
C# | PagesClient | 해당 사항 없음 |
Go | PagesClient | 해당 사항 없음 |
자바 | PagesClient | PagesClient |
Node.js | PagesClient | PagesClient |
PHP | 없음 | 해당 사항 없음 |
Python | PagesClient | PagesClient |
Ruby | 없음 | 해당 사항 없음 |
대신 특정 항목 유형의 모든 파라미터를 수정할 수 있습니다.