import uvicorn from fastapi import FastAPI, Body from sentence_transformers import SentenceTransformer # ========================================== # PHẦN 1: KHỞI TẠO AI ENGINE # ========================================== print("⏳ Đang tải Model AI (All-MiniLM-L6-v2)...") # Tải model 1 lần duy nhất khi Server khởi động model = SentenceTransformer('all-MiniLM-L6-v2') print("✅ Model đã sẵn sàng!") app = FastAPI() @app.get("/") def home(): return {"status": "AI Server is RUNNING on Hugging Face", "model": "all-MiniLM-L6-v2"} @app.post("/vectorize") def vectorize_products(payload: dict = Body(...)): """ API nhận vào JSON: { "products": ["Tên SP 1", "Tên SP 2"] } Trả về: { "vectors": [[0.1, ...], [0.2, ...]] } """ products_text = payload.get("products", []) # Kiểm tra đầu vào if not products_text: return {"vectors": []} print(f"⚡ Đang xử lý {len(products_text)} sản phẩm...") # Tính toán Vector vectors = model.encode(products_text).tolist() return {"vectors": vectors} # ========================================== # PHẦN 2: KHỞI ĐỘNG SERVER # ========================================== if __name__ == "__main__": # Hugging Face yêu cầu bắt buộc chạy ở port 7860 uvicorn.run(app, host="0.0.0.0", port=7860)