kacperbb commited on
Commit
01e870b
·
verified ·
1 Parent(s): 0d699d5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -3
app.py CHANGED
@@ -1,25 +1,67 @@
1
  from flask import Flask, request, jsonify
 
2
  import logging
 
3
 
4
  logging.basicConfig(level=logging.INFO)
 
 
5
  app = Flask(__name__)
6
 
 
 
 
7
  @app.route('/generate', methods=['POST'])
8
  def generate():
9
  try:
10
  data = request.json
11
  prompt = data.get('inputs', '')
12
- return jsonify([{"generated_text": f"Response to: {prompt}"}])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  except Exception as e:
 
14
  return jsonify({"error": str(e)}), 500
15
 
16
  @app.route('/health', methods=['GET'])
17
  def health():
18
- return jsonify({"status": "healthy"})
 
 
 
 
 
19
 
20
  @app.route('/')
21
  def home():
22
- return jsonify({"message": "API Running", "model": "phi-3.5"})
 
 
 
 
23
 
24
  if __name__ == '__main__':
 
25
  app.run(host='0.0.0.0', port=7860)
 
1
  from flask import Flask, request, jsonify
2
+ import requests
3
  import logging
4
+ import os
5
 
6
  logging.basicConfig(level=logging.INFO)
7
+ logger = logging.getLogger(__name__)
8
+
9
  app = Flask(__name__)
10
 
11
+ # Your model endpoint
12
+ MODEL_URL = "https://api-inference.huggingface.co/models/kacperbb/phi-3.5-merged-lora"
13
+
14
  @app.route('/generate', methods=['POST'])
15
  def generate():
16
  try:
17
  data = request.json
18
  prompt = data.get('inputs', '')
19
+ max_tokens = data.get('parameters', {}).get('max_new_tokens', 100)
20
+
21
+ # Get HF token from environment variable (you'll need to set this in Space settings)
22
+ hf_token = os.environ.get('HF_TOKEN')
23
+
24
+ if hf_token:
25
+ # Call your actual model via HF Inference API
26
+ headers = {"Authorization": f"Bearer {hf_token}"}
27
+ payload = {
28
+ "inputs": prompt,
29
+ "parameters": {"max_new_tokens": max_tokens}
30
+ }
31
+
32
+ try:
33
+ response = requests.post(MODEL_URL, headers=headers, json=payload, timeout=30)
34
+ if response.status_code == 200:
35
+ return jsonify(response.json())
36
+ else:
37
+ logger.warning(f"HF API returned status {response.status_code}")
38
+ except requests.exceptions.RequestException as e:
39
+ logger.error(f"Request failed: {e}")
40
+
41
+ # Fallback response if API call fails
42
+ return jsonify([{"generated_text": f"AI Response to '{prompt}': This would be generated by your fine-tuned Phi 3.5 model."}])
43
+
44
  except Exception as e:
45
+ logger.error(f"Error: {e}")
46
  return jsonify({"error": str(e)}), 500
47
 
48
  @app.route('/health', methods=['GET'])
49
  def health():
50
+ has_token = bool(os.environ.get('HF_TOKEN'))
51
+ return jsonify({
52
+ "status": "healthy",
53
+ "model": "kacperbb/phi-3.5-merged-lora",
54
+ "has_token": has_token
55
+ })
56
 
57
  @app.route('/')
58
  def home():
59
+ return jsonify({
60
+ "message": "Phi 3.5 Fine-tuned API Running!",
61
+ "model": "kacperbb/phi-3.5-merged-lora",
62
+ "endpoint": "/generate"
63
+ })
64
 
65
  if __name__ == '__main__':
66
+ logger.info("Starting Phi 3.5 Fine-tuned API...")
67
  app.run(host='0.0.0.0', port=7860)