Spaces:
Runtime error
Runtime error
| from sentence_transformers import SentenceTransformer | |
| from flask import Flask, request, jsonify | |
| from flask_cors import CORS # Import CORS | |
| app = Flask(__name__) | |
| CORS(app) # Enable CORS for all routes | |
| # Load the model once when the application starts | |
| # This is efficient as it avoids reloading on every request. | |
| print("Loading sentence-transformer model...") | |
| model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2') | |
| print("Model loaded successfully.") | |
| def health_check(): | |
| """A simple endpoint to check if the service is running.""" | |
| return jsonify({ | |
| 'status': 'ok', | |
| 'model': 'sentence-transformers/all-MiniLM-L6-v2' | |
| }) | |
| def embed_text(): | |
| """The main endpoint to generate embeddings.""" | |
| data = request.json | |
| if not data or 'text' not in data: | |
| return jsonify({'error': 'No text provided in JSON body'}), 400 | |
| text = data.get('text') | |
| if not isinstance(text, str) or not text.strip(): | |
| return jsonify({'error': 'Text must be a non-empty string'}), 400 | |
| try: | |
| # Generate embedding | |
| embedding = model.encode(text) # No need to wrap in a list for a single string | |
| return jsonify({ | |
| 'embedding': embedding.tolist(), | |
| 'model': 'all-MiniLM-L6-v2', | |
| 'dimension': len(embedding) | |
| }) | |
| except Exception as e: | |
| print(f"Error during embedding: {e}") | |
| return jsonify({'error': 'Failed to generate embedding'}), 500 | |