시각화 표현식에서 Azure OpenAI 연결 사용
로드 스크립트를 사용하여 앱의 데이터 모델에 Azure OpenAI 질문과 답변을 추가하는 것 외에도 앱의 차트에서 직접 이러한 작업을 수행할 수도 있습니다. 단일 필드의 데이터는 사용자와 Azure OpenAI 서비스 간에 주고 받습니다.
대부분의 경우 로드 스크립트 연결에 사용되는 코드는 약간의 차이가 있지만 차트에서 사용하기 위해 용도를 변경할 수 있습니다.
사용 사례가 사용자 입력을 기반으로 하는 경우 차트 표현식에서 분석 연결 및 해당 서버 측 확장 구문을 사용하여 모델 종료 지점에서 수신된 데이터를 시각화하는 대화형 차트를 만들 수 있습니다.
데이터 요청 볼륨에 대한 고려 사항
하나 또는 소수의 데이터 행에 대한 차트 표현식에서 Azure OpenAI 연결만 사용하는 것이 좋습니다. 차트 표현식을 사용하여 많은 양의 데이터를 서비스로 보내지 않는 것이 좋습니다.
각 요청과 함께 보내는 행 수를 아는 것이 중요합니다. 차트 표현식에서 Azure OpenAI 연결을 구성할 때 오류가 발생하면 의도치 않게 큰 요청이 발생할 수 있습니다(예: 차트에서 데이터 모델의 부적절한 사용으로 인해 같은 질문이 있는 동일한 행). Azure OpenAI 서비스에 보내는 요청이 클수록 Microsoft Azure에서 발생할 수 있는 재정적 비용이 높아집니다. 이 커넥터에 대한 요청당 25개 행의 요청 제한이 있음에도 불구하고 이를 인식하는 것이 여전히 중요합니다.
Azure OpenAI 요청의 크기를 조정하고 제한하려면 다음 지침을 따르십시오.
-
텍스트 및 이미지 차트 표현식에서는 Azure OpenAI 연결만 사용합니다. 테이블 개체에서 Azure OpenAI 연결을 사용하는 것은 특히 하나 이상의 차원이 이미 추가된 테이블에 표현식을 추가하는 경우에는 사용하지 않는 것이 좋습니다.
-
차트 표현식이 앱의 데이터 모델에 연결된 경우 표현식에 if 문을 사용하여 앱에서 단일 항목을 선택한 경우에만 차트를 계산합니다. 이렇게 하면 차트에서 Azure OpenAI 서비스로 보내는 요청의 행 수가 크게 줄어듭니다.
-
Azure OpenAI 연결을 사용하여 대규모 요청을 보내는 경우 데이터가 데이터 모델에 사전 로드되도록 차트 표현식 대신 로드 스크립트에서 연결을 사용합니다.
빠른 예
여기에서 Azure OpenAI 커넥터를 시작할 때 사용할 수 있는 샘플 표현식을 찾을 수 있습니다. 다음 세부 사항을 고려합니다.
-
텍스트 및 이미지 개체에는 표현식만 사용하십시오.
-
차트가 다시 계산되는 시기를 제어하고 앱에서 사용자 선택에 따라 업데이트하려면 표현식에 if 문을 추가하는 것이 좋습니다.
-
표현식이 작동하려면 connectionname 값과 필드 이름을 자신의 연결 및 앱과 일치하도록 대체해야 합니다.
추가 예는 자습서 – Qlik Cloud에서 OpenAI 분석 커넥터 사용을 참조하십시오.
커넥터 구성 | 표현식 | 요약 |
---|---|---|
OpenAI 완료 API(GPT-3) - 행 | endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"OpenAI Connection for Rows Completions (GPT-3)","column":"choices.text"}}', 'Translate this text from english to spanish: The sun was rising over the new tomorrow with a tinge of excitement.') |
이 문은 표현식에 입력된 단일 질문에 대한 응답을 반환합니다. 경고 메모
이 표현식은 if 문을 사용하지 않으므로 데이터 모델의 필드에 연결된 경우 사용하기에 적합하지 않습니다. 하드 코딩된 값을 포함하는 단일 입력 셀이 있는 독립 실행형 표현식에만 사용하기에 적합합니다. |
OpenAI 완료 API(GPT-3) - 행 | if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Rows_3","column":"choices.text"}}',vQuestion)) |
이는 변수 입력 컨트롤에 연결된 텍스트 및 이미지 개체에 사용할 수 있는 문입니다. 차트는 입력이 입력된 경우에만 계산됩니다. 사용자가 개체에 입력을 입력하고 Enter 키를 누르면 차트에 입력에 대한 응답이 표시됩니다. 둘러보기는 연습: 변수를 사용하여 텍스트 입력 상자 만들기을 참조하십시오. |
OpenAI 채팅 완료 API(GPT-3.5, GPT-4) - 행 | if(GetSelectedCount(BusinessTopic)=1, endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Rows_3", "column":"choices.message.content"}}', 'What are people saying about ' & 'BusinessTopic'), 'Please select a single value for BusinessTopic.') | 이는 사용자가 BusinessTopic 필드에 대해 하나의 값을 선택한 경우에만 차트가 계산되는 복잡한 if 문입니다. 차트는 사용자가 앱에서 이 항목을 선택한 경우에만 업데이트되며, 그렇지 않은 경우에는 차트에 다음 대체 메시지가 표시됩니다. Please select a single value for BusinessTopic. |
OpenAI 채팅 완료 API(GPT-3.5, GPT-4) - 행 | if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Rows_3","column":"choices.message.content"}}',vQuestion)) |
이는 변수 입력 컨트롤에 연결된 텍스트 및 이미지 개체에 사용할 수 있는 문입니다. 차트는 입력이 입력된 경우에만 계산됩니다. 사용자가 개체에 입력을 입력하고 Enter 키를 누르면 차트에 입력에 대한 응답이 표시됩니다. 둘러보기는 연습: 변수를 사용하여 텍스트 입력 상자 만들기을 참조하십시오. |
OpenAI 채팅 완료 API(GPT-3.5, GPT-4) - 행 | if( count(distinct [IssueCategory]) = 1, endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Chat_3_5","column":"choices.message.content"}}', 'write me a sample response from a technical support department for a customer complaint about ' & [IssueCategory])) | 이 예에서 차트는 앱 데이터 모델의 IssueCategory 필드에서 하나의 고유 값을 선택한 경우에만 계산됩니다. 일반적인 유형의 문제에 대해 기술 지원 부서의 샘플 응답을 요청하는 요청이 전송됩니다. 해당 목록은 IssueCategory 필드에 포함되어 있습니다. 사용자가 선택한 값에 따라 차트가 업데이트됩니다. |
자세한 예
차트 표현식에서 Azure OpenAI 연결을 사용하는 방법을 보여 주는 예는 OpenAI 커넥터에 대한 자습서에서 찾을 수 있습니다. Azure OpenAI 커넥터는 OpenAI 플랫폼 대신 Microsoft Azure 플랫폼을 통해 모델과 통신합니다.
자습서 – Qlik Cloud에서 OpenAI 분석 커넥터 사용
예 1: 'OpenAI 완료 API(GPT-3) - 행' 구성
예 3: 'OpenAI 채팅 완료 API(GPT-3.5, GPT-4) - 행' 구성