Spaces:
Sleeping
Sleeping
| 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() | |
| def home(): | |
| return {"status": "AI Server is RUNNING on Hugging Face", "model": "all-MiniLM-L6-v2"} | |
| 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) |