from app import app
from flask import request, jsonify

CONFIG = {
    "day": {
        "eps": 0.2,
        "min_samples": 5
    },
    "week": {
        "eps": 0.15,
        "min_samples": 5
    },
    "month": {
        "eps": 0.15,
        "min_samples": 5,
    },
}

@app.route('/api/cluster', methods=['POST'])
def cluster():
    data = request.get_json()
    embeddings = data['embeddings']
    duration = data['duration']
    from sklearn.cluster import DBSCAN
    import numpy as np
    try:
        
        dbscan = DBSCAN(eps=CONFIG[duration]['eps'], min_samples=CONFIG[duration]['min_samples'], metric='cosine', n_jobs=-1)
        embeddings_array = np.array(embeddings)
        labels = dbscan.fit_predict(embeddings_array)
        labels = labels.tolist()
        return jsonify({'labels': labels})
    except Exception as e:
        return jsonify({'error': str(e)})