항목 전체에서 변수 재사용
중요
Power Virtual Agents 기능 및 특징은 생성 AI에 대한 막대한 투자와 Microsoft Copilot 전반의 향상된 통합에 따라 이제 Microsoft Copilot Studio의 일부가 되었습니다.
문서 및 교육 콘텐츠를 업데이트하는 동안 일부 문서와 스크린샷에서는 Power Virtual Agents을 참조할 수 있습니다.
변수는 Copilot의 질문에 대한 고객의 응답을 저장합니다. 예를 들어, 고객 이름을 UserName
이라는 변수에 저장할 수 있습니다. 그러면 Copilot은 대화가 계속됨에 따라 이름으로 고객을 지칭할 수 있습니다.
기본적으로 변수 값은 변수가 생성되는 토픽에서만 사용할 수 있습니다. 그러나 토픽 간에 동일한 값을 재사용할 수 있습니다. 예를 들어 시작 토픽 봇은 고객의 이름과 이메일 주소를 요청합니다. 약속 예약 토픽에서 Copilot은 고객이 입력한 내용을 기억하고 다시 묻지 않기를 원합니다.
변수를 재사용하는 한 가지 방법은 토픽 간에 변수를 전달하는 것입니다. 다른 방법은 변수를 전역 범위로 만드는 것이며 이 문서에서 다루는 내용입니다. 전역 변수는 전체 Copilot의 모든 토픽에서 사용할 수 있기 때문에 그렇게 불립니다.
Copilot 변수는 단일 사용자 세션 중에 적용됩니다. 토픽 수준 변수와 구별하기 위해 Copilot 변수로 처리할 변수를 지정합니다.
전역 변수 만들기
토픽 변수의 범위를 변경하여 전역 변수를 생성합니다.
변수 속성 창에서 전역(모든 항목이 액세스할 수 있음)을 선택합니다.
변수 이름에는 주제 수준 변수와 구별하기 위해 접두사
Global.
이 지정됩니다. 예를 들어, 변수UserName
은Global.UserName
과 같이 표시됩니다.토픽을 저장합니다.
전역 변수의 이름은 모든 토픽에서 고유해야 합니다. 충돌이 발생하면 토픽을 저장하기 전에 변수의 이름을 바꿔야 합니다.
글로벌 변수 사용
메시지 노드 또는 질문 노드에서 Copilot 메시지를 작성할 때 {x} 아이콘을 선택하여 토픽에 사용할 수 있는 변수를 확인하세요. 전역 변수는 토픽 변수와 함께 사용자 정의 탭에 나타납니다. 변수는 알파벳순으로 나열됩니다.
전역 변수를 사용하여 모든 토픽 찾기
전역 변수가 정의된 위치와 이를 사용하는 다른 항목을 찾을 수 있습니다. 이것은 새로운 Copilot에서 작업하거나 여러 변수가 있고 복잡한 토픽 분기가 있을 때 유용합니다.
제작 캔버스에서 전역 변수를 선택하거나 변수 창을 열고 전역 변수를 선택합니다.
변수 속성 창에서 참조 섹션에서 변수가 해당 토픽 및 노드로 바로 이동하는 데 사용되는 토픽을 선택합니다.
전역 변수의 수명 주기
기본적으로 전역 변수의 값은 세션이 종료될 때까지 지속됩니다. 변수 값 지우기 노드는 전역 변수 값을 재설정하며 대화 재설정 시스템 토픽에서 사용됩니다. 해당 토픽은 리디렉션 또는 사용자가 "다시 시작"과 같은 트리거 구를 입력할 때 트리거될 수 있습니다. 이 경우 모든 전역 변수가 재설정됩니다.
외부 소스에서 전역 변수 값 설정
Copilot이 일부 컨텍스트를 사용하여 대화를 시작하는지 확인하려면 외부 소스를 사용하여 전역 변수를 초기화할 수 있습니다. 사이트에서 사용자가 로그인해야 한다고 가정해 보겠습니다. Copilot은 이미 사용자의 이름을 알고 있으므로 고객이 첫 번째 질문을 입력하기 전에 이름으로 인사할 수 있습니다.
전역 변수를 선택합니다.
변수 속성 창에서 외부 소스에서 값을 설정할 수 있음을 선택합니다.
내장된 Copilot에서 전역 변수 설정
간단한 웹 페이지에 부조종사를 포함시키는 경우 Copilot의 URL에 변수와 해당 정의를 추가할 수 있습니다. 또는 좀 더 제어하기를 원하면 <script>
코드 블록을 사용하여 프로그래밍 방식으로 변수를 호출하고 사용할 수 있습니다.
URL의 쿼리 문자열의 변수 이름은 Global.
접두사가 없는 전역 변수 이름과 일치해야 합니다. 예를 들어 전역 변수 Global.UserName
은 쿼리에서 UserName
으로 참조됩니다.
다음 예제는 변수에 대한 간단한 선언을 제공합니다. 프로덕션 시나리오에서는 사용자 이름을 이미 저장한 다른 변수를 쿼리 매개 변수 또는 변수 정의로 전달할 수 있습니다(예: 로그인 스크립트의 사용자 이름이 있는 경우).
변수와 그 정의를 Copilot의 URL에 botURL?variableName1=variableDefinition1&variableName2=variableDefinition2
형식의 쿼리 문자열 매개 변수로 추가합니다.
예:
Global.UserName
이라는 전역 변수가 있습니다.- Copilot의 URL은 https://web.powerva.microsoft.com/webchat/bots/12345입니다.
- 웹 사이트에서 Copilot 대화를 시작할 때 사용자 이름을 전달하려면
UserName=
쿼리 문자열을 https://web.powerva.microsoft.com/webchat/bots/12345?UserName=Renata로 첨부하세요.
매개 변수 이름은 대소문자를 구분하지 않습니다.
이 예제에서 username=Renata
도 작동합니다.
사용자 지정 캔버스에 전역 변수 추가
사용자 지정 캔버스에 변수를 추가할 수도 있습니다.
Copilot이 있는 페이지의
<script>
섹션에서 변수 이름을Global.
접두사 없이variableName1
으로, 정의를variableDefinition1
으로 대체하여 다음과 같이 변수를 정의합니다. 여러 변수를 쉼표(,
)로 구분하세요.const store = WebChat.createStore({}, ({ dispatch }) => next => action => { if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') { dispatch({ type: "WEB_CHAT/SEND_EVENT", payload: { name: "pvaSetContext", value: { "variableName1": "variableDefinition1", "variableName2": "variableDefinition2" } }, }); } return next(action); });
다음 예제와 같이
<script>
섹션에서 Copilot을 포함할 때store
를 호출합니다.store
는styleOptions
을 호출한 위치 바로 위에 호출됩니다(BOT_ID
를 Copilot의 ID로 교체해야 함).const BOT_ID = "12345-5678"; const theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID; fetch(theURL) .then(response => response.json()) .then(conversationInfo => { window.WebChat.renderWebChat( { directLine: window.WebChat.createDirectLine({ token: conversationInfo.token, }), store, styleOptions }, document.getElementById('webchat') ); }) .catch(err => console.error("An error occurred: " + err));
관련 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기