1단계: api/main.py
만드는 거 바로 갈게.
(여기서는 FastAPI 서버 기본 세팅을 하는 거야.)
📂 backend/api/main.py
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI(
title="RAG 기반 문제 출제 시스템",
description="공인중개사 시험 문제 자동 생성 API",
version="1.0.0",
)
# (선택) CORS 설정 - 나중에 Next.js 프론트 연결할 때 필요함
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 실제 배포 때는 프론트 도메인만 허용 추천
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 헬스 체크용 엔드포인트
@app.get("/health")
async def health_check():
return {"status": "ok"}
# 기본 인덱스
@app.get("/")
async def root():
return {"message": "Welcome to the RAG Question Generator API!"}
✨ 설명
파트 | 설명 |
---|---|
FastAPI() | API 서버 생성 |
/health | 헬스체크 (서버 살아있는지 확인용) |
/ | 기본 홈 경로 (API 웰컴 메세지) |
CORS 설정 | 프론트엔드(Next.js)랑 연동하기 위해 필요 |
🚀 실행 방법
터미널에서 아래 명령어 실행
cd backend/api
uvicorn main:app --reload --host 0.0.0.0 --port 8000
(※ --reload
옵션은 수정될 때마다 자동 리스타트됨)
🏁 결과
http://localhost:8000/
➔ "Welcome to the RAG Question Generator API!" 메시지http://localhost:8000/health
➔{ "status": "ok" }
리턴
📋 ToDo 체크
✅ FastAPI 기본 서버 구축 완료
✅ 헬스체크 API 생성
✅ 프론트 연동을 고려한 CORS 적용
👉 다음 스텝
이제 api 디렉토리 안에 /search
와 /generate
엔드포인트를 추가하는 걸로 가면 된다.
✅ "좋아, 다음은 /search
API 만들어줘"
이렇게 답해주면 이어서 바로 retrieval
모듈 + 검색 API 짜줄게.