MapForce와 GPT-4를 활용한 AI 기반 고객 문의 내용 분석 (감성 분석)

과거에는 사용자 리뷰와 같은 텍스트에 대한 감성 분석을 자동화하는 것이 큰 어려움이었습니다. 자연어의 복잡성 때문에 시스템은 문맥과 미묘한 뉘앙스를 분석하는 데 어려움을 겪었습니다. 이러한 문제를 해결하기 위해서는 상당한 양의 수동 작업이 필요했습니다.

최근 대규모 언어 모델(LLM)을 기반으로 하는 현대 인공지능 시스템, 예를 들어 OpenAI의 GPT-4와 같은 시스템의 많은 유용한 기능 중 하나는 다음과 같습니다 매우 자연어 텍스트 입력에 대한 감성 분석에 능숙합니다. 저희는 이러한 기능을 활용하여 MapForce에서 매우 효율적인 데이터베이스 솔루션을 구축할 수 있습니다. 예를 들어, 지원 데이터베이스에 새로 들어오는 모든 데이터를 처리하고, 특정 지원 요청이나 다른 고객 피드백이 무엇인지 자동으로 판단할 수 있습니다 긍정적인, 부정적인, ~을 구성합니다 버그 보고서, 또는 다음과 같이 간주되어야 합니다 기능 요청 사항.

OpenAI의 플레이그라운드에서 GPT-4를 활용한 초기 테스트 결과

이 블로그 게시물을 따라 하거나, 궁극적으로 이 방법을 자체 데이터베이스 시스템에 적용하려면 OpenAI 계정을 만들고, 구현에 사용할 수 있는 API 키를 얻어야 합니다. 또한 OpenAI 포털의 "Playground"에 접속할 수 있으며, 여기서 초기 테스트를 수행하고 MapForce에서 올바른 JSON 요청을 구성하는 데 필요한 예시 JSON 입력을 얻을 수 있습니다.

언제나 그렇듯이, LLM(대규모 언어 모델) AI 시스템을 사용할 때 가장 중요한 단계 중 하나는 적절한 프롬프트를 개발하는 것입니다. 원하는 결과를 얻기 위해 최대한 정확하게 프롬프트를 작성해야 합니다. 이번에는 다음과 같은 프롬프트를 사용하겠습니다

“Classify the sentiment in the following statement using these possible results: Negative, Positive, Feature Request, Bug Report.”

그런 다음, 저희가 분석하고자 하는 고객 피드백을 입력할 차례입니다. OpenAI Playground에서 이를 테스트하기 위해, 모드(Mode)를 "Chat"으로, 모델(Model)을 "gpt-4"로, 온도를 1로, 최대 길이를 512로 설정하고, 빈도(Frequency) 및 존재(Presence) 페널티를 모두 0으로 설정합니다. 그런 다음, 프롬프트를 입력하고, 첫 번째 고객 피드백 내용을 입력한 후 "제출" 버튼을 클릭합니다

GPT-4 인공지능은 즉시 "긍정"이라는 정답을 반환합니다. 이제 몇 가지 추가 예시를 통해 프롬프트가 다른 모든 경우에도 잘 작동하는지, 그리고 우리가 기대하는 감성 분석 결과를 얻을 수 있는지 확인해 보겠습니다.

이제 "코드 보기" 버튼을 클릭하여 JSON 요청을 확인하고, 언어 설정 팝업에서 기본값인 Python 대신 JSON을 선택한 다음, 해당 코드를 복사하여 XMLSpy에 붙여넣어 자세히 검토할 수 있습니다 JSON 데이터 그리드 보기:

JSON 구조는 비교적 간단해 보입니다. 또한, 이 코드를 기반으로 JSON 스키마를 즉시 자동 생성할 수 있으며, 나중에 XMLSpy와 MapForce에서 웹 서비스 요청을 설정하는 데 이 스키마를 활용할 수 있습니다

XMLSpy를 사용하여 OpenAI API 테스트하기

다음 단계로, 우리는 OpenAI 챗 API를 정확하게 이해하고, 그 결과로 생성되는 JSON 데이터를 확인하고자 합니다. XMLSpy에서 제공하는 편리한 HTTP 테스트 창을 사용하여 수동 테스트를 진행할 예정입니다. 이 창은 메시지 창 옆에 별도의 탭으로, 주요 작업 창 바로 아래에서 찾을 수 있습니다.

HTTP 탭에서 HTTP 요청 방식을 POST로 변경하고, OpenAI Chat API 엔드포인트 URL인 https://api.openai.com/v1/chat/completions를 입력한 다음, 콘텐츠 유형을 application/json으로 설정합니다. 그런 다음, 위에서 Playground에서 얻은 예시 JSON 요청을 "Body" 섹션에 붙여넣습니다

이제 요청을 인증하기 위해 API 키를 헤더에 포함해야 합니다. "헤더" 탭을 클릭하고, "Authorization"라는 헤더와 "Bearer "로 시작하는 값을 가진 행을 추가하세요. "Bearer " 뒤에는 공백을 넣고, 그 뒤에 비밀 API 키를 입력해야 합니다. OpenAI에서 여러 계정을 사용하고 정확한 청구를 보장해야 하는 경우, 선택적으로 "OpenAI-Organization"이라는 헤더와 OpenAI에서 할당된 조직 ID 값을 가진 두 번째 행을 추가할 수도 있습니다

물론, 위 스크린샷에서 저희의 비밀 키와 조직 ID의 정확한 값은 보안상의 이유로 가려져 있습니다.

이제 "전송" 버튼을 눌러 위 HTTP 요청을 OpenAI API 엔드포인트로 보내고, 어떤 응답을 받을 수 있는지 확인해 보겠습니다

첫 번째 좋은 소식은 780밀리초 이내에 "200 OK" 응답을 받았고, 응답 내용으로 "application/json" 형식의 데이터가 포함되어 있었습니다. 이 데이터는 JSON 형식으로 작성된 응답 내용이며, AI "어시스턴트"가 제공한 답변이 "Positive"라는 메시지 형태로 담겨 있습니다. 따라서 XMLSpy 내에서 실제 HTTP 요청을 API로 보내고 정확한 응답을 받는 방식으로, 이전 OpenAI Playground에서 수행했던 테스트를 성공적으로 재현할 수 있었습니다.

다음으로, HTTP 테스트 창에서 "파일에 저장" 버튼을 사용하여 이 응답을 파일로 저장하겠습니다. 그런 다음 해당 파일을 열고 XMLSpy를 사용하여 예시 JSON 응답 메시지로부터 자동으로 JSON 스키마를 생성할 수 있습니다. 이번에는 생성된 스키마가 웹 서비스에서 예상되는 JSON 출력의 구조를 설명하며, 이후 MapForce에서 해당 데이터를 처리하는 데 사용될 것입니다.

샘플 지원 데이터베이스

대부분의 기술 지원 관리 시스템은 SQL 또는 다른 데이터베이스를 기반으로 하기 때문에, 이 방법은 모든 시스템에 쉽게 적용할 수 있습니다. 하지만 이 블로그 게시물에서는 예시로 SQLite 데이터베이스의 단순화된 형태인 고객 피드백 데이터베이스를 사용하겠습니다

그리고 이 데이터에는 몇 가지 예시 데이터가 포함되어 있어, MapForce에서 통합 테스트를 수행하고 고객 피드백의 전반적인 감성을 파악하는 데 도움이 될 것입니다

![[FeedbackDatabaseData.png]]

MapForce에서 데이터베이스 매핑을 생성하는 방법

이제 모든 준비가 완료되었습니다. 이제 MapForce를 사용하여 데이터베이스의 모든 레코드를 읽고, OpenAI API를 호출하여 감성 분석을 수행한 후, 그 결과를 다시 데이터베이스에 저장하는 변환 또는 ETL 프로젝트를 만들 수 있습니다.

ETL 매핑 설계를 위한 첫 번째 단계는 고객 피드백 데이터베이스 객체를 매핑에 두 번 삽입하는 것입니다. 한 번은 입력으로 (ETL의 추출 부분), 그리고 다른 한 번은 최종 출력으로 삽입합니다. 또한, 주요 테이블 객체와 ID를 연결합니다. MapForce는 다른 모든 열도 연결해 줄 수 있지만, 실제로 그 연결이 필요하지 않으므로, 다음과 같은 디자인이 될 때까지 불필요한 연결은 제거해도 됩니다

입력과 출력 사이에 충분한 공간을 남겨두는 이유는 곧 웹 서비스 호출 기능을 삽입할 예정이기 때문입니다. 하지만 그 전에, 데이터베이스 출력 및 데이터베이스 작업(ETL 과정의 로드 부분)을 정확하게 정의하기 위해, 오른쪽의 데이터베이스 객체를 더블 클릭합니다

첫 번째 라디오 버튼은 "없음"으로 설정해야 합니다. 왜냐하면 첫 번째 레코드 전에 특별한 작업을 수행할 필요가 없기 때문입니다. 그런 다음, 두 번째 열의 열 머리글을 "다음과 같으면 업데이트"로 변경하고, ID 행에 있는 콤보 상자를 "같음"으로 설정합니다. 이렇게 하면 MapForce가 매핑을 통해 제공된 ID가 데이터베이스에 이미 존재하는 ID와 일치하는 모든 레코드에 대해 데이터베이스의 데이터를 업데이트하도록 지시됩니다. 여기서는 이것만 하면 되므로, 다시 "확인"을 클릭할 수 있습니다.

이제 OpenAI API를 호출하기 위한 웹 서비스 컴포넌트를 삽입할 차례입니다. 툴바에서 "웹 서비스 함수 삽입" 버튼을 클릭합니다. 그런 다음, 이전에 XMLSpy에서 API를 테스트할 때 수행했던 작업에 따라 필요한 API 호출 설정을 구성합니다.

이전과 마찬가지로, HTTP 요청 방식을 POST로 설정하고, 헤더에는 저희의 비밀 API 키와, 선택적으로, 저희 조직 ID를 포함해야 합니다. 또한, MapForce에게 요청 및 응답 데이터의 구조를 알려주어야 합니다. 이를 위해 이전에 생성한 두 개의 JSON 스키마를 활용할 것입니다

일단 웹 서비스가 정의되면, 해당 웹 서비스 객체가 MapForce 디자인 창에 나타나고, 이제 기능을 연결하기 위해 적절하게 연결선을 그릴 수 있습니다. 먼저, "고객 피드백" 테이블의 각 레코드에 대해 웹 서비스를 한 번씩 호출해야 하므로, 이를 "요청" 입력 부분에 연결합니다

![[InsertWebServiceIntoMapping.png]]

그리고 저희가 생성하는 결과는 AI가 반환하는 메시지 내의 "content" 속성에 포함되어 있으며, 이 값을 저희 출력 데이터베이스 객체의 "감성" 열에 연결합니다.

이제 남은 작업은 웹 서비스 요청에 필요한 모든 입력값을 API에 연결하는 것입니다. 위에서 제시한 예시 JSON 파일을 통해 어떤 입력값이 필요한지 정확히 알 수 있습니다. 그 중 많은 부분이 상수 값일 것입니다. 예를 들어, 모델의 경우 "gpt-4"와 같이 고정된 값이 사용될 수 있으며, 다른 파라미터들도 다양한 고정 값으로 설정될 수 있습니다.

가장 중요한 입력 요소는 프롬프트와 데이터베이스에서 제공되는 피드백이며, 우리는 이 두 가지를 결합하여 웹 서비스의 콘텐츠 입력란에 전달합니다

![[FinalMapping.png]]

일반적으로, 여기서부터 저희는 디자인 작업을 마무리합니다 ETL 매핑 (또는 ETL 매핑) 그리고 이제 우리는 변화를 실행할 수 있게 되었습니다. 하지만 GPT-4는 가장 발전된 모델이며 많은 사람들이 사용하고 있기 때문에, OpenAI는 웹 서비스 요청 횟수에 대한 제한을 설정했습니다. 현재 이 변화를 실행하면, 우리는 쉽게 해당 제한을 초과할 것입니다.

따라서, OpenAI 웹 서비스 인터페이스에 대한 호출 사이에 sleep() 함수를 추가하여 호출 간격을 약 1초로 조정해야 합니다. MapForce v2024에 새로 추가된 sleep() 함수를 사용하면 이를 쉽게 구현할 수 있습니다

![[MF-Sentiment-Analysis-With-Sleep.png]]

MapForce에서 "결과 미리보기" 탭은 이 변환의 결과를 확인할 수 있는 곳입니다. 이 탭을 클릭하면 MapForce는 ETL 매핑 프로젝트를 실행하고, AI가 수행한 감성 분석 결과를 바탕으로 데이터베이스를 업데이트하는 데 필요한 SQL 문을 생성합니다

이제 이 SQL 코드를 MapForce에서 직접 실행하여 데이터베이스에 저장된 데이터를 실제로 업데이트할 수 있습니다.

물론, 실제 환경에서 이 프로세스를 더욱 자동화하여 새로 들어오는 고객 지원 요청을 자동으로 분석할 수 있도록 하는 것이 좋습니다. 이를 위해 이 ETL 매핑 프로젝트를 사내 IT 인프라 또는 사설/공용 클라우드 환경에 설치된 MapForce 서버에 배포할 수 있습니다. 그런 다음, FlowForce 서버를 사용하여 특정 조건이나 이벤트에 따라 이 분석을 언제 실행할지 등 워크플로우 요구 사항을 자동화할 수 있습니다.

참고로, 이 블로그 게시물에 사용된 XMLSpy와 MapForce의 모든 스크린샷은 새로운 다크 테마를 사용한 것입니다. 이는 개인적인 선호도 때문이지만, 물론 사용자는 개인적인 취향에 따라 새로운 라이트 테마 또는 클래식 테마를 사용하여 저희 제품을 사용할 수 있습니다.

MapForce에서 AI 기반 데이터 변환을 시도하거나, XMLSpy에서 다양한 AI 웹 서비스 API를 사용해보고 싶으시다면, 다음 파일을 다운로드할 수 있습니다 30일 무료 체험 기간 두 가지 제품과 더불어 여러 유용한 개발 도구들을 제공합니다 최신 버전의 Altova MissionKit을 다운로드합니다 저희 웹사이트에서 다운로드하실 수 있습니다. 인공지능 관련 작업에는 엔터프라이즈 에디션의 64비트 버전을 사용하는 것을 권장합니다.