File size: 882 Bytes
f4af40d
 
4150fe4
 
 
 
 
 
 
97a41c9
c922177
4150fe4
 
97a41c9
c922177
4150fe4
 
 
f4af40d
 
 
 
4150fe4
f4af40d
 
 
4150fe4
 
f4af40d
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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)})