35 lines
		
	
	
		
			944 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			944 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from flask import Flask, request, jsonify
 | |
| import numpy as np
 | |
| 
 | |
| app = Flask(__name__)
 | |
| 
 | |
| @app.route('/v1/embeddings', methods=['POST'])
 | |
| def embeddings():
 | |
|     data = request.json
 | |
|     inputs = data.get('input', [])
 | |
|     if isinstance(inputs, str):
 | |
|         inputs = [inputs]
 | |
|     
 | |
|     # Generate deterministic 768-dim embeddings (hash-based)
 | |
|     embeddings = []
 | |
|     for text in inputs:
 | |
|         # Simple hash to vector
 | |
|         vec = np.zeros(768)
 | |
|         for i, char in enumerate(text[:768]):
 | |
|             vec[i % 768] += ord(char) / 255.0
 | |
|         # Normalize
 | |
|         norm = np.linalg.norm(vec)
 | |
|         if norm > 0:
 | |
|             vec = vec / norm
 | |
|         embeddings.append(vec.tolist())
 | |
|     
 | |
|     return jsonify({
 | |
|         "data": [{"embedding": emb} for emb in embeddings],
 | |
|         "model": data.get('model', 'mock'),
 | |
|         "usage": {"total_tokens": sum(len(t) for t in inputs)}
 | |
|     })
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     app.run(host='127.0.0.1', port=8081)
 | |
| 
 |