1. 지난 주간의 요약

[완료된 작업]

  • 사내 온라인 저지에서 파이썬 초보자 코드 데이터 수집
  • 코드 피드백 모듈을 위한 프롬프트 설계
  • 프롬프트 엔지니어링을 통한 피드백 생성 및 수집

[진행 중인 작업]

  • 생성된 피드백을 활용한 프로토타입 개발

3. 이번 주간의 진행 상황

[완료된 작업]

사내 온라인 저지에서 파이썬 초보자 코드 데이터 수집: DataFrame에 정적 기반 필터링 방식으로 1차 데이터를 확보했습니다.

image-20240627161521760

코드 피드백 모듈을 위한 프롬프트 설계: J. Lu가 제안한 피드백 생성 3단계 파이프라인을 바탕으로, 코드 피드백 모듈을 설계했습니다(그림 2 참고). 이 모듈은 학생들이 사내 온라인 저지에서 문제를 풀기 위해 작성한 코드를 실행할 때 활성화됩니다. 코드 피드백 모듈은 세 가지 주요 프롬프트(Role-setting, Review Necessity Prediction, Review Comment Generation)로 구성되어 있습니다

image-20240627161549751

그림 2에서 프롬프트의 의미와 구조는 다음과 같습니다. - Role-setting prompt: User의 요청을 처리하기 위한 모델의 역할을 설정합니다.

- Review Necessity Prediction prompt: 학생이 제출한 정답 코드에 리뷰가 필요한지를 이진 라벨 (“예”/ “아니오”)로 응답합니다. 만약, “아니오”라면 응답을 종료합니다.

- Review Comment Generation prompt: 코드 리뷰에 대한 코멘트를 생성합니다.

- Style&Tone: 응답의 어조나 스타일을 지시합니다.

- Restriction: 직접 수정된 코드를 제시하지 않도록 지시합니다.

- Instruction: 코드 리뷰 결과를 웹 프론트 화면에 구분하여 노출 시킬 수 있도록 태그 추가를 지시합니다.

- Exercise: 사내 온라인 저지에서 학생이 푼 문제(테스트케이스)입니다. 테스트케이스는 문항, 입/출력 예시로 구성되어 있습니다.

- Student’s Code: 학생이 제출한 정답 코드입니다.

image-20240627161742512

[진행 중인 작업]

생성된 피드백을 활용한 프로토타입 개발: 시스템 구성은 그림 3에서 볼 수 있듯이, 클라이언트 앱에서 GPT 엔드포인트로의 요청 중 발생하는 CORS 문제를 해결하기 위해 Next.js API Routes를 이용하여 프록시 서버를 설정하였습니다. 코드 리뷰 기능은 GPT-4를 활용하였으며, 시스템의 빌드와 배포는 MS-Azure를 통해 이루어질 예정입니다. 프론트엔드 개발에는 Next.js와 ANTD를 사용하여 웹 기반 인터페이스를 구축하였습니다.

image-20240627161843112

[결과 화면-단계 1] 사용자 기본 화면: 프로토타입은 핵심 기능 검토를 목적으로, 1) 실행 버튼, 2) Python 코드 작성 공간, 3) 코멘트 표시 구역을 포함하여 간결하게 설계되었습니다.

그림입니다. 원본 그림의 이름: CLP00005ed80003.bmp 원본 그림의 크기: 가로 1032pixel, 세로 375pixel

[결과 화면-단계 2] 코드 입력 및 제출 인터페이스: 이 화면은 학생이 문제 해결을 위해 작성한 코드를 제출하는 시나리오입니다. 코드 에디터는 Python 언어에 대해 IDLE과 유사한 스타일을 적용하여 사용자 친화적입니다. 사용된 코드 샘플은 사내 온라인 저지 시스템에서 수집한 것입니다.

그림입니다. 원본 그림의 이름: CLP00005ed80004.bmp 원본 그림의 크기: 가로 1032pixel, 세로 358pixel

[결과 화면-단계 3] 코드 수정 지시 및 피드백 화면: 학생이 제출한 코드 중 수정이 필요한 부분은 “# 수정 필요”라는 주석을 달아 강조합니다. 피드백은 사용자의 나이를 고려하여 이해하기 쉽고 긍정적인 어조로 제공됩니다.

그림입니다. 원본 그림의 이름: CLP00005ed80005.bmp 원본 그림의 크기: 가로 1032pixel, 세로 488pixel


4. 다음 주간의 계획

  • 코드 피드백 모듈 고도화: 더 간결한 프롬프트와 모듈의 더 논리적인 구조화, 출력 토큰 결정 등으로 코드 피드백 모듈을 계속 개선할 예정입니다.
  • 설계 원칙 정립: 시스템 설계에 필요한 요구사항을 명확히 정의하여, 강력하고 일관된 설계 원칙을 수립할 예정입니다.

댓글남기기