챗GPT Task 릴리즈 소식을 듣고, 평소에 생각만 하던 기능을 1시간 만에 구현해서 사용해 보았습니다. 프롬프트 엔지니어답게, 매일 아침마다 프롬프트 엔지니어링 데일리 과제를 생성해서 받아보는 사이트를 구현하는 것입니다. 마침 Task를 활용하면 GPT 기반으로 잘 구현할 수 있겠다 싶어 곧바로 활용하기로 결정했습니다. 챗GPT Task 란?챗GPT Task(GPT 작업)는 현재 챗GPT에서 베타로 공개된 기능입니다. 이 기능을 활용하면 단일로, 혹은 정기적으로 GPT에 수행할 작업을 정의해서 수행하게 만들 수 있습니다. 특정 시간에 1회에 한하여 수행하게 할 수도, 매일 아침 9시와 같은 정기적인 시간에 수행하게 할 수도 있습니다. <출처: 작가> 챗GPT에 접근해 Task를 선택한다고 하여도 채팅 인터페이스는 크게 변화하지 않습니다. 이전에 활용하던 채팅 인터페이스 그대로 활용할 수 있습니다. 여기서 아래의 정보를 프롬프트에 담아 전달해주면, 임의로 태스크를 생성하여 일정에 추가하게 됩니다. 무엇을 할 것인지작업의 구체적인 내용언제 수행할 것인지: 주기와 시간 (e.g. 매일 아침 9시 30분에) 챗GPT Task 활용하기챗GPT Task에는 프롬프트를 통해 수행할 작업을 직접적으로 명령할 수 있습니다. 여기에서 발견한 정보를 토대로 Task는 작업을 생성하고 수행할 것입니다. 프롬프트를 쓸 때는 아래와 같이 시간을 포함해, [제목]과 [내용]을 명확하게 프롬프팅해서 제공하는 것이 좋습니다. GPT Task는 이를 거의 그대로 가져가서 작업을 생성하게 됩니다. <출처: 작가> 정상적으로 작업이 만들어졌다면, 아래와 같이 생성된 작업에 대한 정보를 응답받을 수 있습니다. <출처: 작가> 이때 생성된 작업의 옵션 버튼을 클릭하면 작업을 편집하거나, 일시정지하거나, 수행하고 있는 모든 작업을 볼 수 있습니다. <출처: 작가> ‘작업 편집’을 누르면 작업의 세부 내용을 편집할 수 있습니다. 영역에 나오는 ‘지침’은 수행할 작업의 프롬프트로, 챗GPT에서 작업을 수행할 프롬프트를 주면 됩니다. 현재 챗GPT Task는 GPT-4o 모델을 기반으로 움직이기에, GPT-4o로 테스트를 해보고 지침에 등록하는 걸 추천합니다. 일정 또한 수정할 수 있는데요. 정기적/비정기적 작업 일정도 지정할 수 있으며, 맞춤형으로 특정 기간에 작업하도록 할 수도 있습니다. <출처: 작가> 한편 이미 생성된 과제에 대해서도 채팅 인터페이스(Chat Interface)를 이용해 상호작용 할 수 있습니다. <출처: 작가> 물론 작업의 수정 역시 꼭 편집 창으로 들어가지 않고, 채팅 인터페이스(Chat Interface)로 진행할 수 있습니다. <출처: 작가> 생성한 과제의 수행이 끝났다면, 어떤 과제를 수행했는지 위에 표시됩니다. 또한, 해당 스레드에 대한 응답이 만들어집니다. <출처: 작가> 마찬가지로 예정된 작업을 수행하면, 메일로도 알람이 갑니다. 메일 상세 내역에서 ‘메시지 보기’ 버튼을 누르면, 작업을 수행하여 받은 응답이 있는 스레드로 이동하게 됩니다. <출처: 작가> 지금까지 아주 간단하게 챗GPT Task 활용법을 알아보았습니다. 이처럼 작업을 할당하여 주기적으로 활용할 수 있는 기능을 가진 서비스입니다. ‘데일리 프롬프트 과제’ 프롬프트 만들기이제 본격적으로 기존 목적이었던, ‘데일리 프롬프트 과제’를 주는 Task를 생성해 보겠습니다. Daily practice task for prompt engineering 지침 초안 프롬프트간단하게 제목을 먼저 작성하고, 프롬프트 초안을 작성했습니다. 아래의 프롬프트를 먼저 보시죠. Tell me a practice problem to master prompt engineering. ### Contents When creating a problem, the following elements should be included: - Prompt problem title - Background situation of the problem - Requirements in the problem - Minimum criteria that the completed prompt should satisfy - Challenging tasks that would be good to achieve as a bonus in the completed prompt ### Guidelines When creating a problem, you must follow these guidelines: - Create a practice problem for LLM prompt engineering. - Check each element and if there are any elements that are impossible to solve or conflicting requirements, integrate those elements into one direction. - The result can be a prompt, code, or document. - Create a problem that a real prompt engineer would be required to solve at a professional level. - The minimum requirements should be very very high reliability. - 'Bonus tasks' should include higher-level requirements that are not covered in the 'minimum criteria'. These requirements should be sufficiently challenging and should be achievable on the premise that the minimum criteria have been met. - 'Minimum criteria' and 'bonus tasks' should remain at a level that provides appropriate clues to start with, and should not be clear enough to include or imply the correct answer. The content should be structured so that the user can creatively solve the problem. #### Deliverables - The result of the problem you generate should be a prompt design or a simple agent design. - The result should be achievable using LLM. #### Error case - The prompt task should include cases that may be considered errors. - In this case, a simple example should be included. - The content of the error case should be a case that can occur in reality. ### Output Format - Insert a divider between each element. - Do not use markdown format, instead use plain text. - Respond in Korean. 프롬프트를 쓸 때 주안점으로 삼은 부분은 아래와 같습니다. 과제의 형식을 사전에 명확하게 하고, 백그라운드와 Requirements를 먼저 응답에서 도출하게 했습니다. 그렇게 이후 생성되는 과제들이 차례로 영향을 받아 더 탄탄하게 문제가 생성되도록 응답 구조를 유도했습니다.데일리 과제이지만 조금 더 발전적으로 과제를 수행하도록, 난이도를 초안 버전에서부터 전반적으로 어렵게 유도했습니다. 또한, Mandatory 목표와 Bonus 목표를 각각 설정하여 도전적으로 수행할 여지를 남겨놓았습니다.Guidelines에서는 응답에서 나오는 콘텐츠에 대한 가이드라인을 작성했습니다. 콘텐츠에서 제시한 요소들이 충돌하거나 수행할 수 없는 상황에 빠지지 않도록 유도하고, 프롬프트 엔지니어들이 업무에서 평가받듯 프롬프트를 신뢰성 기반으로 평가할 과제 기준으로 제시하게 했습니다. 여기에 학습자에게 창의적인 학습을 유도하도록 힌트와 정보의 제시 정도도 조절했습니다.Error cases에서는 과제에서 예시로 지정할 에러 케이스를 보여줄 수 있도록 예제 지침을 간단하게 넣었습니다. 위에서 언급한 대로 초안 프롬프트를 작성하고, GPT-4o와 초안을 점차 개선해나가는 작업을 거쳤습니다. 과제 받아보기그렇게 첫 과제를 받았습니다. 수행과 함께 메일이 먼저 날아오고, 응답을 바로 볼 수 있었습니다. 첫 번째 생성 과제제목다단계 고객 지원 챗봇 설계 문제 배경 상황한 글로벌 전자기기 회사에서 고객 지원 자동화를 위한 다단계 챗봇 설계를 요청받았습니다. 이 챗봇은 고객이 직면한 문제를 분석하고, 단계적으로 적절한 해결책을 제시해야 합니다. 주어진 시스템은 단순한 FAQ 응답을 넘어, 문제의 유형에 따라 상세한 질문을 던지고, 최종적으로 고객의 문제를 해결하거나 필요 시 인간 상담원으로 연결해야 합니다. 문제 요구사항- 고객이 문제를 설명하면 챗봇이 이를 적절한 카테고리로 분류해야 합니다.- 카테고리에 따라 추가 질문을 통해 문제를 세분화해야 합니다.- 세분화된 문제에 대해 적합한 해결책을 제시하거나, 지원 자료(예: 사용자 매뉴얼 링크)를 제공해야 합니다.- 만약 문제를 해결할 수 없는 경우, 인간 상담원에게 연결한다는 메시지를 고객에게 전달하고 필요한 정보를 상담원에게 전달합니다.- 모든 대화는 고객이 혼동하지 않도록 명확하고 간결해야 합니다. 최소 기준- 챗봇이 최소 5개의 주요 카테고리를 식별하고 이를 정확히 분류해야 함.- 각 카테고리당 최소 2개의 하위 질문을 포함하여 문제를 세분화해야 함.- 고객의 질문을 기반으로 적절한 해결책을 제안하고 80% 이상의 응답 정확도를 보장해야 함.- 해결 불가능한 경우, 상담원에게 연결하며 고객이 제공한 문제 요약을 자동 생성해야 함. 추가 도전 과제 (보너스)- 챗봇이 다국어를 지원하며 동일한 성능을 유지하도록 설계할 것.- 고객의 감정(예: 불만, 만족)을 분석하여 응답을 조정하도록 설계.- 고객이 이전에 제기한 문제를 기억하고 연속성 있는 대화를 제공.- 챗봇의 답변 스타일을 사용자의 나이, 기술 수준에 맞게 조정. 에러 사례- 챗봇이 문제를 잘못된 카테고리로 분류하여 잘못된 해결책을 제안하는 경우.예: 고객이 "화면이 깨져 보인다"고 했을 때, 네트워크 연결 문제로 잘못 분류.- 다단계 질문 과정에서 고객이 혼란을 느끼고 챗봇을 중단하는 경우.예: "화면 문제를 진단하는 중"이라는 메시지 없이 단순히 질문을 나열.- 고객의 요청을 기반으로 상담원에게 충분한 정보를 전달하지 못한 경우.예: 상담원이 "고객 문제 요약 없음"이라는 메시지만 받음. 결과물이 문제를 해결하는 프롬프트를 설계하거나 간단한 에이전트를 작성하십시오. 결과물은 LLM으로 충분히 구현 가능해야 합니다. 마치며이렇게 챗GPT Task를 활용해 작업을 아주 간단하게 자동화할 수 있었습니다. 이전에는 이러한 문제를 풀 때, LangGraph와 같은 구현체를 사용해 별도의 파이프라인을 구축해야 할지, Make와 같은 도구를 사용해야 할지, 고민이 많았는데요. 챗GPT만을 기반으로 답변을 받을 수 있는 Task 기능을 쓰면, 추가 비용 없이 보다 수월하게 진행할 수 있어 보였습니다. 특히, 챗GPT에 저장한 개인화된 지침과 데이터가 응답에 영향을 미치고, SearchGPT와 같은 도구를 조합하여 자동화된 작업을 생성하고 수행할 수 있다는 점이 더욱 강력하게 느껴집니다. 이처럼 누구나 더욱 간편하면서도 강력한 모델을 기반으로 자동화된 작업을 수행할 수 있을 것입니다.<원문>매일 아침에 프롬프트 연습문제 받아보기 (feat. ChatGPT Task) ©️요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.