from fastapi import FastAPI import joblib def show_recommendations(product): Y = vectorizer.transform([product]) prediction = model.predict(Y) return prediction, def get_cluster_terms(cluster_index): cluster_terms = [terms[ind] for ind in order_centroids[cluster_index, :10]] return cluster_terms model = joblib.load("./model.pkl") vectorizer = joblib.load("./vectorizer.pkl") order_centroids = model.cluster_centers_.argsort()[:, ::-1] terms = vectorizer.get_feature_names_out() app = FastAPI() @app.post("/inference") def get_recommendations(product: str): cluster_index = int(show_recommendations(product)[0]) cluster_terms = get_cluster_terms(cluster_index) return {"cluster": cluster_index, "top_terms": cluster_terms}