녹음하거나 오디오/영상 파일을 업로드하면 전사·화자 분리(Deepgram) → 회의록 생성(Claude) 을 자동으로 수행하는 웹 앱입니다.
- 백엔드: FastAPI (
app.py,gscribe/) - 프론트엔드: React + TypeScript + Vite + Tailwind (
frontend/)
.env.example를 복사해 .env를 만들고 값을 채웁니다.
DEEPGRAM_API_KEY=... # 전사 + 화자 분리 (Deepgram, 한 번의 호출로 처리)
ANTHROPIC_API_KEY=... # 회의록 생성 (Claude)
# DEEPGRAM_MODEL=nova-2 # 선택: 한국어가 nova-3에서 미지원/저품질이면 nova-2로
화자 분리가 Deepgram API로 처리되므로 서버에 PyTorch·pyannote가 필요 없습니다. (Windows Server 2008 R2 등 구형/경량 서버 배포가 가능해집니다.)
# 백엔드
pip install -r requirements.txt
# 프론트엔드
cd frontend && npm installffmpeg 이 PATH에 있어야 합니다. 업로드된 오디오를 Deepgram에 보내기 전 16kHz 모노 Opus로 압축·정규화해 서버 메모리·업로드량을 줄이고 다양한 입력 형식(WEBM·MP4 등)을 안정적으로 처리합니다. (ffmpeg이 없으면 원본을 그대로 전송하며 경고를 남깁니다 — 동작은 하지만 압축 이점은 사라집니다.)
FastAPI와 Vite dev server를 각각 띄웁니다. Vite가 /api 요청을 FastAPI(8000)로 프록시합니다.
# 터미널 1 — 백엔드
python -m uvicorn app:app --port 8000
# 터미널 2 — 프론트엔드
cd frontend && npm run dev # http://localhost:5173프론트엔드 빌드가 반드시 선행되어야 합니다. frontend/dist/는 git에 커밋하지 않으므로(빌드 산출물),
새로 체크아웃하거나 배포할 때마다 빌드 단계를 실행해야 합니다. 빌드가 없으면 /는 500과 안내 메시지를 반환합니다.
cd frontend && npm run build # → frontend/dist/ 생성 (FastAPI가 서빙)
cd .. && python -m uvicorn app:app --port 8000 # http://localhost:8000FastAPI는 frontend/dist/index.html을 /로, frontend/dist/assets를 /assets로 서빙합니다.