Noblhyon commited on
Commit
6d5b67d
·
verified ·
1 Parent(s): 4ca5b0f

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -0
app.py CHANGED
@@ -45,6 +45,7 @@ def home():
45
  "endpoints": {
46
  "/": "API information",
47
  "/health": "Health check",
 
48
  "/embed": "Generate embeddings (POST)",
49
  "/similarity": "Compute similarity (POST)",
50
  "/search": "Search documents (POST)"
@@ -64,6 +65,51 @@ def health():
64
  "timestamp": time.time()
65
  })
66
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  @app.route('/embed', methods=['POST'])
68
  def embed_text():
69
  """Generate embeddings for input text(s)"""
 
45
  "endpoints": {
46
  "/": "API information",
47
  "/health": "Health check",
48
+ "/wake": "Wake up space (prevent sleep)",
49
  "/embed": "Generate embeddings (POST)",
50
  "/similarity": "Compute similarity (POST)",
51
  "/search": "Search documents (POST)"
 
65
  "timestamp": time.time()
66
  })
67
 
68
+ @app.route('/wake', methods=['GET', 'POST'])
69
+ def wake():
70
+ """Wake endpoint to prevent space from sleeping"""
71
+ try:
72
+ # Ensure model is loaded
73
+ model = get_model()
74
+
75
+ if model is None:
76
+ # Try to load model if not loaded
77
+ logger.info("Wake endpoint triggered - loading model...")
78
+ model = load_model()
79
+
80
+ if model is None:
81
+ return jsonify({
82
+ "status": "error",
83
+ "message": "Failed to load model",
84
+ "awake": False,
85
+ "timestamp": time.time()
86
+ }), 500
87
+
88
+ # Perform a quick embedding to ensure model is active
89
+ try:
90
+ test_text = ["wake up test"]
91
+ _ = model.encode(test_text, batch_size=1, max_length=32)
92
+ logger.info("Wake endpoint: Model is active and responding")
93
+ except Exception as e:
94
+ logger.warning(f"Wake test embedding failed: {e}")
95
+
96
+ return jsonify({
97
+ "status": "awake",
98
+ "message": "Space is awake and model is loaded",
99
+ "model_loaded": True,
100
+ "awake": True,
101
+ "timestamp": time.time()
102
+ })
103
+
104
+ except Exception as e:
105
+ logger.error(f"Error in wake endpoint: {e}")
106
+ return jsonify({
107
+ "status": "error",
108
+ "message": str(e),
109
+ "awake": False,
110
+ "timestamp": time.time()
111
+ }), 500
112
+
113
  @app.route('/embed', methods=['POST'])
114
  def embed_text():
115
  """Generate embeddings for input text(s)"""