Skip to content

Repository files navigation

챗봇 강화하기 부스 — 채점 서버

성능이 다른 3가지 AI 모델로 과제를 수행해보는 체험 부스. 낮은 성능 모델로 좋은 답안을 만들어낼수록 점수 보너스가 커진다.

이 저장소는 채점(Evaluation) 서버다. 실제 참가자용 화면(프론트엔드)은 별도 프로젝트(chatbot-frontend, React + Vite)에 있다. 이 저장소 안의 components/BoothApp.tsx는 API 동작을 확인하기 위한 자체 테스트용 화면일 뿐, 부스 당일 실제로 쓰이는 화면이 아니다.

구조 (서버 3개)

  • 프론트엔드 (별도 프로젝트, chatbot-frontend): 참가자가 보는 실제 화면. 과제 표시, 모델 선택, 생성 결과 표시, 제출 버튼을 담당.
  • 생성 서버 (별도 프로젝트, 이 저장소 밖에 있음): beginner / intermediate / advanced 3단계 모델로 답안을 생성한다. 규격은 GENERATION_API.md 참고.
  • 이 서버 (Next.js): 채점만 담당한다. 규격은 BACKEND_API.md 참고. /api/evaluate로 요청이 오면 로컬 Ollama로 답안을 채점해 점수를 계산한다.
프론트엔드 ──POST /generate───────▶ 생성 서버 (다른 프로젝트, localhost:8000)
프론트엔드 ──POST /api/evaluate──▶ 이 서버 (Next.js) ──▶ 로컬 Ollama (채점)

프론트엔드가 이 서버와 다른 origin(포트)에서 뜨기 때문에, 이 서버의 API는 CORS를 열어둔 상태다 (lib/cors.ts).

동작 방식 (프론트엔드 기준)

  1. 참가자가 저성능(beginner)/중간(intermediate)/고성능(advanced) 모델 중 하나를 선택한다.
  2. 프론트가 생성 서버에 {model, prompt}를 POST해서 답안(response)을 받는다.
  3. 참가자가 제출하면 프론트가 이 서버/api/evaluate{model, prompt, response}를 POST한다 — prompt는 생성 요청 때 보낸 것과 동일해야 한다.
  4. 이 서버가 로컬 Ollama(채점 전용 모델)로 답안을 채점하고, score(기본 점수) × 모델 등급별 보너스 배율final_score로 반환한다 (저성능일수록 배율이 큼: x1.3 / x1.15 / x1.0). 자세한 요청/응답 스키마는 BACKEND_API.md 참고.

사전 준비

  1. 생성 서버: 다른 프로젝트에서 실행되며 GENERATION_API.md 규격을 따른다.
  2. 채점용 로컬 LLM: Ollama를 설치하고 채점 모델을 받아둔다 (기본값 기준):
    ollama pull llama3.1:8b
  3. .env.example을 복사해 .env.local을 만들고 필요하면 값을 수정한다.
    cp .env.example .env.local

실행

npm install
npm run dev

이 서버는 http://localhost:3000에서 뜬다. /api/evaluate, /api/health를 실제로 테스트하려면 Ollama가 떠 있어야 한다. (이 저장소의 자체 테스트 화면을 쓰려면 생성 서버도 함께 떠 있어야 한다.)

노트북 → 서버로 옮길 때

  • 채점용 Ollama는 OLLAMA_HOST, GRADING_MODEL로 관리한다. Ollama를 다른 머신에서 돌린다면 OLLAMA_HOST만 그 머신 주소로 바꾸면 된다 (예: http://192.168.0.10:11434).
  • 이 서버 자체의 배포 주소가 바뀌면, 프론트엔드 팀에 새 Base URL을 공유해야 한다 (BACKEND_API.md의 Base URL 섹션 참고).
  • (자체 테스트 화면만 해당) 생성 서버 주소는 .env.localNEXT_PUBLIC_GENERATION_API_URL로 관리한다. NEXT_PUBLIC_ 접두사가 붙은 값은 빌드 시점에 박히므로 값을 바꾸면 재시작/재빌드가 필요하다.

주요 파일

About

프롬프트 엔지니어링 능력 테스트

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages