42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from fastapi import FastAPI
|
|
from pydantic import BaseModel
|
|
from app.model_load import use_model # predictor.py에서 함수 import
|
|
from app.exe import predict_url_maliciousness
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
app = FastAPI()
|
|
|
|
# FastAPI 인스턴스에 CORS 미들웨어 추가
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"], # 또는 ["http://localhost:3000"] (프론트 URL)
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
# 요청 데이터 구조 정의
|
|
class UrlRequest(BaseModel):
|
|
url: str
|
|
|
|
@app.get("/")
|
|
def root():
|
|
return {"message": "URL 악성 판별기 FastAPI 서버 정상 작동 중!"}
|
|
|
|
@app.post("/predict")
|
|
def predict(request: UrlRequest):
|
|
url = request.url
|
|
|
|
result_model1 = use_model(url)
|
|
result_model2 = predict_url_maliciousness(url)
|
|
# print("model1 : ")
|
|
# print(result_model1.values())
|
|
# print("model2 : ")
|
|
# print(result_model2.values())
|
|
|
|
return {
|
|
"url" : url,
|
|
"model1": result_model1,
|
|
"model2": result_model2
|
|
}
|