AI

챗GPT를 활용한 퀴즈 만들기

reumiii 2023. 7. 20. 16:20

1. 챗GPT에게 질문을 요청 

▶️ 다음 명시된 정보를 바탕으로 true/false 퀴즈 3문제를 생성해줘.

정보 : [세종대왕]

💬 챗GPT 답변

1. 세종대왕은 조선시대 한국의 제4대 왕이다. (True)
2. 세종대왕은 한글을 창제하였다. (True)
3. 세종대왕은 우리나라 역사상 가장 짧은 통치 기간을 가진 왕이다. (False)

 

-> 챗GPT가 3가지 문제를 내주었지만, 가공할 수 있는 데이터의 형식이 아니다.

 

 

2. 퀴즈로 저장할 수 있도록 결과 데이터 형식을 설정하여 질문한다.

▶️ 다음 명시된 정보를 바탕으로 true/false 퀴즈 3문제를 생성해줘.

정보 : [세종대왕 ]

퀴즈는 아래처럼 JSON 형식으로 된 quiz 리스트로 생성해줘.
[
  {
    "question": "..",
    "answer": "..",
    "explanation": ".."
  },
 {
    "question": "..",
    "answer": "..",
    "explanation": ".."
  },
 {
    "question": "..",
    "answer": "..",
    "explanation": ".."
  }
]

 

 

3. 결과 형식이 잘못된 경우에는 챗GPT에게 데이터형식을 변환해달라고 재요청한다.

(받은 답변을 다시 챗GPT에게 그대로 보내어 이 부분 데이터형식 변환해줘 라고 요청.)

▶️ 세 개의 역따옴표로 구분된 텍스트를 question, answer, explanation 키를 가진 JSON 형식으로 된 quiz 리스트로 변환해줘.

퀴즈 1:
question: "세종대왕은 조선시대의 제4대 국왕이다."
answer: true
explanation: "세종대왕은 조선시대의 제4대 국왕으로 1418년부터 1450년까지 다스리며, 한글을 창제하였다."

퀴즈 2:
question: "세종대왕은 역사적으로 가장 위대한 한국의 왕 중 한 명으로 평가받고 있다."
answer: true
explanation: "세종대왕은 문화, 과학, 정치 등 다양한 분야에서 혁신적인 업적을 남겨 한국 역사상 가장 위대한 왕 중 하나로 평가되고 있다."

퀴즈 3:
question: "세종대왕은 한글을 창제한 사람이다."
answer: true
explanation: "세종대왕은 한글을 창제하여 한글의 발전과 보급에 큰 업적을 남겼다.

 

💬 챗GPT 답변

// 가공할 수 있는 데이터 형식으로 변환됨
[
  {
    "question": "세종대왕은 조선시대의 제4대 국왕이다.",
    "answer": true,
    "explanation": "세종대왕은 조선시대의 제4대 국왕으로 1418년부터 1450년까지 다스리며, 한글을 창제하였다."
  },
  {
    "question": "세종대왕은 역사적으로 가장 위대한 한국의 왕 중 한 명으로 평가받고 있다.",
    "answer": true,
    "explanation": "세종대왕은 문화, 과학, 정치 등 다양한 분야에서 혁신적인 업적을 남겨 한국 역사상 가장 위대한 왕 중 하나로 평가되고 있다."
  },
  {
    "question": "세종대왕은 한글을 창제한 사람이다.",
    "answer": true,
    "explanation": "세종대왕은 한글을 창제하여 한글의 발전과 보급에 큰 업적을 남겼다."
  }
]
  • 예외처리요청이 3번 넘어가면 오류 메시지 출력하고 요청을 멈추는 break 로직 추가
  • 데이터포맷이 잘못된 경우 2번까지만 재요청함

 

 

4. OX 퀴즈 외 다른 타입들(답단형 / 사지선다형)도 구현

▶️ 다음 명시된 정보를 바탕으로 4지선다형 퀴즈 3문제를 생성해줘. answer는 번호로 알려줘.

정보 : [제1차 세계 대전]

퀴즈는 아래처럼 JSON 형식으로 된 quiz 리스트로 생성해줘.
[
  {
    "question": "..",
	"option1": "..",
	"option2": "..",
	"option3": "..",
	"option4": "..",
    "answer": "..",
    "explanation": ".."
  },
 {
    "question": "..",
	"option1": "..",
	"option2": "..",
	"option3": "..",
	"option4": "..",
    "answer": "..",
    "explanation": ".."
  },
 {
    "question": "..",
	"option1": "..",
	"option2": "..",
	"option3": "..",
	"option4": "..",
    "answer": "..",
    "explanation": ".."
  }
]

 

💬 챗GPT 답변

[
  {
    "question": "제1차 세계 대전이 발생한 연도는?",
    "option1": "1914년",
    "option2": "1918년",
    "option3": "1916년",
    "option4": "1920년",
    "answer": "1",
    "explanation": "정답은 1914년 입니다."
  },
  {
    "question": "제1차 세계 대전에서 사망한 병사는 얼마나 되나요?",
    "option1": "100만명",
    "option2": "500만명",
    "option3": "900만명",
    "option4": "1000만명",
    "answer": "3",
    "explanation": "정답은 900만명 입니다."
  },
  {
    "question": "어느 나라가 제1차 세계 대전을 시작했나요?",
    "option1": "미국",
    "option2": "러시아",
    "option3": "독일",
    "option4": "오스트리아",
    "answer": "4",
    "explanation": "정답은 오스트리아 입니다."
  }
]

 

 

 

<요약>

chatGPT에게 퀴즈 정보를 받아 저장하기 위해

1. 데이터 형식을 지정하여 질문하고

2. 잘못된 답변을 받았을때는 재질문하여 원하는 형식으로 받도록 한다.