fastAPI 심화

- Chart.js
- pdf, csv 파일 업로드 후 데이터 정제하여 llm으로 처리 후 결과 도출
- sqlite로 데이터 저장
- ORM - SQLAlchemy
This commit is contained in:
2026-06-16 18:03:02 +09:00
parent ccfdac1286
commit 06eb3c57ab
43 changed files with 1912 additions and 39 deletions
@@ -0,0 +1,25 @@
from fastapi import APIRouter, Request, UploadFile
from backend.schemas.card_schema import AnalysisRequest
from backend.services.card_service import upload_csv, card_history, get_dashboard, card_analysis
from fastapi.templating import Jinja2Templates
router = APIRouter(prefix="/api/card")
templates = Jinja2Templates(directory="backend/templates")
@router.post("/upload")
async def upload_file(file: UploadFile):
return await upload_csv(file)
@router.get("/history")
async def history(request : Request):
card_infos = card_history()
return templates.TemplateResponse(request, name = "history.html", context = {"history": card_infos})
@router.get("/dashboard")
async def dashboard():
return get_dashboard()
@router.post("/analysis")
async def sql_llm_analysis(request : AnalysisRequest):
return card_analysis(request.question)
@@ -0,0 +1,22 @@
from fastapi import APIRouter, Request
from fastapi.templating import Jinja2Templates
router = APIRouter()
templates = Jinja2Templates(directory="backend/templates")
# http://127.0.0.1:8000
@router.get("/")
async def home(request : Request):
return templates.TemplateResponse(request = request, name="index.html")
@router.get("/card/upload")
async def rag(request : Request):
return templates.TemplateResponse(request = request, name="card.html")
@router.get("/card/dashboard")
async def dashboard(request : Request):
return templates.TemplateResponse(request = request, name="dashboard.html")
@router.get("/card/analysis")
async def analysis(request : Request):
return templates.TemplateResponse(request = request, name="analysis.html")