Spaces:
Paused
Paused
from fastapi import FastAPI, HTTPException | |
from pydantic import BaseModel | |
import torch | |
import numpy as np | |
app = FastAPI() | |
from transformers import AutoTokenizer, AutoModelForSequenceClassification | |
tokenizer = AutoTokenizer.from_pretrained("AbraMuhara/Fine-TunedBERTURKOfansifTespit") | |
model = AutoModelForSequenceClassification.from_pretrained("AbraMuhara/Fine-TunedBERTURKOfansifTespit") | |
from fastapi import FastAPI, HTTPException | |
from pydantic import BaseModel | |
import joblib | |
import catboost | |
from huggingface_hub import hf_hub_download | |
app = FastAPI() | |
catboost_model = catboost.CatBoostClassifier().load_model(hf_hub_download("AbraMuhara/AgeClassificationTDDI2024", "best_catboost_model.cbm")) | |
label_encoder = joblib.load(hf_hub_download("AbraMuhara/AgeClassificationTDDI2024", "label_encoder.pkl")) | |
class TextInput(BaseModel): | |
text: str | |
class AgeInput(BaseModel): | |
features: list[float] # 15 özellik içeren liste | |
def home(): | |
return {"hello": "Bitfumes"} | |
async def predict(input: TextInput): | |
try: | |
inputs = tokenizer(input.text, return_tensors='pt', truncation=True, padding=True) | |
with torch.no_grad(): | |
outputs = model(**inputs) | |
logits = outputs.logits | |
prediction = torch.argmax(logits, dim=-1).item() | |
return {"prediction": prediction} | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) | |
async def predict_age(input: AgeInput): | |
try: | |
# Özelliklerin numpy dizisine dönüştürülmesi | |
features_array = np.array(input.features).reshape(1, -1) | |
# Tahmin yapma | |
prediction = catboost_model.predict(features_array) | |
# Etiketleri geri dönüştürme | |
decoded_prediction = label_encoder.inverse_transform(prediction)[0] | |
return {"age_group": decoded_prediction} | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) | |
if __name__ == "__main__": | |
import uvicorn | |
uvicorn.run(app, host="0.0.0.0", port=8000) | |