fix: resolve annoyed endpoint
This commit is contained in:
parent
2d8f65e177
commit
3dee52c56a
9
main.py
9
main.py
|
|
@ -1,6 +1,6 @@
|
|||
from fastapi import FastAPI, HTTPException, Request, Response
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from contextlib import asynccontextmanager
|
||||
from contextlib import asynccontextmanager
|
||||
from connection import prisma
|
||||
from schemas import ComparisonResponse, RecommendationRequest
|
||||
import ml_core
|
||||
|
|
@ -8,8 +8,7 @@ import services
|
|||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
"""Mengelola startup dan shutdown aplikasi secara efisien."""
|
||||
print("⏳ Menghubungkan ke Database...")
|
||||
print("⏳ Menghubungkan ke Database Neon...")
|
||||
await prisma.connect()
|
||||
|
||||
print("🤖 Memuat Asset Machine Learning (XGBoost)...")
|
||||
|
|
@ -22,13 +21,13 @@ async def lifespan(app: FastAPI):
|
|||
|
||||
app = FastAPI(
|
||||
title="Tokopedia Laptop Recommendation API",
|
||||
description="Backend untuk analisis sentimen ulasan laptop menggunakan XGBoost",
|
||||
description="Backend analisis sentimen ulasan laptop menggunakan XGBoost - Syafrizal Wd Mahendra",
|
||||
lifespan=lifespan
|
||||
)
|
||||
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=["http://localhost:3000"],
|
||||
allow_origins=["*"],
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
|
|
|
|||
|
|
@ -1,13 +1,19 @@
|
|||
pandas
|
||||
numpy
|
||||
scikit-learn
|
||||
xgboost
|
||||
selenium
|
||||
beautifulsoup4
|
||||
nltk
|
||||
sastrawi
|
||||
fastapi
|
||||
imbalanced_learn
|
||||
joblib
|
||||
matplotlib
|
||||
nltk
|
||||
numpy
|
||||
pandas
|
||||
pydantic
|
||||
Sastrawi
|
||||
scikit_learn
|
||||
seaborn
|
||||
selenium
|
||||
undetected_chromedriver
|
||||
wordcloud
|
||||
imblearn
|
||||
joblib
|
||||
xgboost
|
||||
uvicorn
|
||||
prisma
|
||||
playwright
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
import asyncio
|
||||
import sys
|
||||
import uvicorn
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Paksa penggunaan SelectorEventLoop di level paling dasar OS Windows
|
||||
if sys.platform == 'win32':
|
||||
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
||||
print("✅ Mesin Selector Loop Aktif (Anti-NotImplementedError)")
|
||||
|
||||
# Jalankan uvicorn dari sini, bukan dari terminal langsung
|
||||
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)
|
||||
Loading…
Reference in New Issue