server-slave / api /routes /clusterRoute.py
Eurosmart's picture
.
c922177
raw
history blame contribute delete
882 Bytes
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)})