Skip to content

Repository files navigation

GMS Model Lab

GMS에서 제공하는 이미지·텍스트·TTS 모델의 응답 속도, 토큰 사용량, 실제 차감 크레딧을 비교하는 로컬 테스트 도구입니다. 프롬프트와 파라미터, 생성 결과, 공급자 응답을 실행별로 저장해 다시 확인할 수 있습니다.

빠른 시작

준비 사항

  • Node.js 22.13 이상과 npm
  • GMS Key

Windows와 macOS 모두 같은 명령을 사용합니다. Windows에서는 PowerShell 또는 Git Bash, macOS에서는 Terminal을 열고 먼저 Node.js와 npm이 설치되어 있는지 확인합니다.

node -v
npm -v

명령을 찾을 수 없거나 Node.js 버전이 22.13보다 낮으면 Node.js 공식 사이트에서 최신 LTS 버전을 설치한 뒤 터미널을 다시 엽니다. npm은 Node.js와 함께 설치됩니다.

설치 및 실행

프로젝트 폴더에서 아래 명령을 순서대로 실행합니다.

npx pnpm@10 install
npx pnpm@10 dev

npx가 pnpm 다운로드 여부를 물으면 y를 입력합니다. 이 방식은 pnpm을 전역으로 설치하지 않으므로 Windows와 macOS에서 관리자 권한 없이 동일하게 사용할 수 있습니다. 의존성이 이미 설치되어 있다면 다음부터는 실행 명령만 사용하면 됩니다.

npx pnpm@10 dev

터미널에 Ready가 표시되면 브라우저에서 http://localhost:3000을 열고 다음 순서로 사용합니다. 서버를 종료할 때는 실행 중인 터미널에서 Ctrl+C를 누릅니다.

  1. GMS Key를 입력하고 키·전체 모델 확인을 누릅니다.
  2. 이미지, 텍스트 또는 TTS 탭을 선택합니다.
  3. 모델과 프롬프트를 선택하고 필요한 파라미터를 조정합니다.
  4. 반복 횟수와 동시 요청 수를 설정한 뒤 테스트를 시작합니다.
  5. 생성 결과와 하단의 로컬 테스트 기록에서 성능과 사용량을 비교합니다.

지원하는 테스트

구분 공급자 확인할 수 있는 주요 지표
이미지 OpenAI, Google Gemini 전체 완료 시간, API 생성 시간, 이미지 처리량, 토큰, 크레딧
텍스트 OpenAI, Google Gemini, Anthropic Claude 전체 완료 시간, TTFT, 토큰 생성 속도, Input·Output 토큰, 크레딧
TTS OpenAI 전체 완료 시간, 첫 바이트 시간, 문자 처리량, 오디오 크기, 크레딧

GMS에서 조회한 모델 목록을 우선 사용하며, 목록에 없는 텍스트 모델은 공급자와 모델 ID를 입력해 직접 추가할 수 있습니다.

Claude Opus 4.1을 포함한 Claude 멀티모달 모델은 이미지를 입력으로 처리할 수 있지만 이미지 파일을 생성하지는 않습니다. Claude 모델은 텍스트 탭에서 사용합니다. whisper-1은 음성 인식(STT) 모델이므로 TTS 탭에서 지원하지 않습니다.

주요 기능

프롬프트와 파라미터

  • 시스템 프롬프트와 사용자 프롬프트를 분리해 입력·저장
  • 모델 선택 시 공급자가 제공하거나 권장하는 기본값 자동 적용
  • 현재 API 전달값에서 자동auto가 실제 요청에 어떻게 반영되는지 확인
  • 이미지 비율을 먼저 선택한 뒤 해당 비율에 맞는 자주 쓰는 출력 크기 선택
  • 이미지·텍스트 요청에 PNG·JPEG·WebP 컨텍스트 이미지를 최대 4개까지 첨부
  • 반복 실행과 동시 요청 수 설정

숫자 옵션의 자동은 해당 필드를 요청에서 생략하고 모델 기본값을 사용한다는 뜻입니다. 문자열 autosize: "auto"처럼 API에 그대로 전달될 수 있습니다. 정확한 요청 값은 화면의 현재 API 전달값에서 확인할 수 있습니다.

결과와 성능 지표

  • 선택 모델의 P50·P95 지연시간과 성공률 집계
  • 텍스트 TTFT와 토큰 생성 속도 표시
  • 이미지 처리량과 TTS 첫 바이트·문자 처리량 표시
  • 공급자 응답의 Input·Output·전체 토큰 저장
  • 공급자 응답 요약과 전체 실행 JSON 확인·다운로드
  • 생성 이미지와 음성 파일 미리보기·다운로드

P95는 최소 20회, 안정적인 모델 비교는 100회 이상의 성공 기록을 권장합니다.

GMS 크레딧

모델 카드의 크레딧 값은 GMS 모델 안내에 표시된 참고값입니다. 청구 단위가 명확하지 않으므로 실제 차감량으로 계산하지 않습니다.

  • 동시 요청이 1개이면 실행 전후 GMS 잔액 차이를 해당 기록의 실제 차감 크레딧으로 저장합니다.
  • 병렬 실행은 요청별 비용을 구분할 수 없어 실행별로 임의 분배하지 않고 배치 전체 차감량만 표시합니다.
  • 잔액 조회에 실패하면 측정 실패와 원인을 기록하며, 차감량을 0으로 처리하지 않습니다.
  • 로컬 기록의 GMS 사용 토큰은 공급자 응답에 포함된 전체 토큰 수입니다.

로컬 테스트 기록

모든 실행 결과는 최신순으로 표시됩니다. 기본 페이지 크기는 25건이며 10·25·50·100건 중에서 선택할 수 있습니다.

  • 모델·프롬프트·응답 검색
  • 성공·실패 상태 필터
  • 이전 설정 재사용
  • 기록과 연결 파일 삭제
  • 검색 결과 전체를 CSV 또는 JSON으로 내보내기
  • 서버 페이지네이션으로 필요한 페이지의 기록만 화면에 전달

검색과 상태 필터는 현재 페이지가 아니라 선택한 테스트 종류의 전체 기록에 적용됩니다. 모델 통계 역시 현재 페이지와 관계없이 선택한 모델의 전체 기록을 기준으로 계산합니다.

저장 위치

데이터 경로
실행 기록과 텍스트 결과 data/runs/
생성 이미지 data/images/
생성 음성 data/audio/
업로드한 컨텍스트 이미지 data/context/

이 파일들은 Git에서 제외됩니다. 화면에서 기록을 삭제하면 연결된 생성 이미지·음성·컨텍스트 이미지도 함께 삭제됩니다. 이미지 Base64 원문은 JSON 크기를 줄이기 위해 기록에서 제외하고 별도 이미지 파일로 저장합니다.

GMS Key 보관

GMS Key는 기본적으로 현재 페이지에서만 사용합니다.

  • 이 브라우저에 키 저장을 누르면 다음 접속 때 자동으로 불러옵니다.
  • 저장 키 삭제를 누르면 브라우저에서 즉시 제거합니다.
  • 저장한 키는 브라우저 로컬 저장소에 암호화되지 않은 상태로 보관됩니다.
  • 서버 파일과 실행 기록에는 키를 저장하지 않습니다.

공용 PC나 공유 계정에서는 키 저장 기능을 사용하지 마세요.

요청 취소와 결과 저장

화면에서 요청 대기를 취소하더라도 이미 GMS에 전달된 유료 작업은 서버에서 끝까지 처리합니다. 브라우저 새로고침이나 개발 중 HMR로 연결이 끊겨도 완료된 결과는 로컬 기록에 저장되고 목록이 자동으로 갱신됩니다.

공급자에서는 성공했지만 연결 종료 전에 이미지 Base64를 받지 못한 기록은 GMS 생성 성공 · 로컬 이미지 없음으로 표시합니다. 이 경우 사용량과 응답 메타데이터는 확인할 수 있지만 이미지 파일은 복구할 수 없습니다.

문제 해결

Gemini 이미지 결과가 NO_IMAGE인 경우

시스템 프롬프트에 “이미지 생성 프롬프트를 작성해 텍스트로 출력”과 같은 지시가 있는지 확인합니다. 프롬프트 작성 작업은 텍스트 탭에서 실행하고, 완성된 이미지 묘사만 이미지 탭에 입력해야 합니다. 화면에서도 이러한 충돌 가능성을 감지해 호출 전에 안내합니다.

출력 크기를 선택할 수 없는 경우

일부 모델이나 자동 비율은 공급자가 출력 크기를 결정합니다. 비율을 명시적으로 선택하면 해당 모델이 지원하는 크기만 출력 크기 목록에 표시됩니다.

개발 및 점검

Windows와 macOS에서 동일하게 다음 명령을 사용합니다.

npx pnpm@10 typecheck
npx pnpm@10 lint
npx pnpm@10 test
npx pnpm@10 build

전체 검사는 다음 명령으로 한 번에 실행할 수 있습니다.

npx pnpm@10 check

자동 검사에서는 크레딧이 발생하는 실제 GMS 생성 API를 호출하지 않습니다.

About

GMS AI모델 로컬 테스트 대시보드

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages