Spaces:
Runtime error
Runtime error
Divyashree-Nanjappa
commited on
Commit
·
350dfeb
1
Parent(s):
304c5a2
Fixed bug detection API, added CORS and error handling
Browse files- app.py +9 -23
- requirements.txt.txt +0 -4
app.py
CHANGED
|
@@ -1,10 +1,12 @@
|
|
| 1 |
from flask import Flask, request, jsonify
|
| 2 |
-
from
|
| 3 |
import torch
|
|
|
|
| 4 |
|
| 5 |
app = Flask(__name__)
|
|
|
|
| 6 |
|
| 7 |
-
# Load CodeBERT
|
| 8 |
tokenizer = RobertaTokenizer.from_pretrained("microsoft/codebert-base")
|
| 9 |
model = RobertaForSequenceClassification.from_pretrained("microsoft/codebert-base")
|
| 10 |
|
|
@@ -23,31 +25,15 @@ def detect_bug():
|
|
| 23 |
|
| 24 |
# Tokenize and classify
|
| 25 |
inputs = tokenizer(code, return_tensors="pt", truncation=True, padding=True)
|
| 26 |
-
outputs = model(
|
| 27 |
prediction = torch.argmax(outputs.logits, dim=1).item()
|
| 28 |
|
| 29 |
bug_status = "buggy" if prediction == 1 else "clean"
|
| 30 |
-
return jsonify({"bug_status": bug_status})
|
| 31 |
-
|
| 32 |
-
except Exception as e:
|
| 33 |
-
return jsonify({"error": str(e)}), 500
|
| 34 |
-
|
| 35 |
-
@app.route("/fix", methods=["POST"])
|
| 36 |
-
def fix_code():
|
| 37 |
-
try:
|
| 38 |
-
data = request.get_json()
|
| 39 |
-
code = data.get("code", "")
|
| 40 |
-
|
| 41 |
-
if not code:
|
| 42 |
-
return jsonify({"error": "No code provided"}), 400
|
| 43 |
-
|
| 44 |
-
# Simple rule-based fix (replace common typos)
|
| 45 |
-
fixed_code = code.replace("prnt", "print").replace("imprt", "import")
|
| 46 |
-
|
| 47 |
-
return jsonify({"suggested_fix": fixed_code})
|
| 48 |
|
|
|
|
|
|
|
| 49 |
except Exception as e:
|
| 50 |
-
return jsonify({"error": str(e)}), 500
|
| 51 |
|
| 52 |
if __name__ == "__main__":
|
| 53 |
-
app.run(host="0.0.0.0", port=5000
|
|
|
|
| 1 |
from flask import Flask, request, jsonify
|
| 2 |
+
from flask_cors import CORS # Fix CORS issue
|
| 3 |
import torch
|
| 4 |
+
from transformers import RobertaTokenizer, RobertaForSequenceClassification
|
| 5 |
|
| 6 |
app = Flask(__name__)
|
| 7 |
+
CORS(app) # Enable CORS
|
| 8 |
|
| 9 |
+
# Load CodeBERT model
|
| 10 |
tokenizer = RobertaTokenizer.from_pretrained("microsoft/codebert-base")
|
| 11 |
model = RobertaForSequenceClassification.from_pretrained("microsoft/codebert-base")
|
| 12 |
|
|
|
|
| 25 |
|
| 26 |
# Tokenize and classify
|
| 27 |
inputs = tokenizer(code, return_tensors="pt", truncation=True, padding=True)
|
| 28 |
+
outputs = model(input_ids=inputs["input_ids"], attention_mask=inputs["attention_mask"])
|
| 29 |
prediction = torch.argmax(outputs.logits, dim=1).item()
|
| 30 |
|
| 31 |
bug_status = "buggy" if prediction == 1 else "clean"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
|
| 33 |
+
return jsonify({"status": bug_status})
|
| 34 |
+
|
| 35 |
except Exception as e:
|
| 36 |
+
return jsonify({"error": str(e)}), 500 # Handle errors properly
|
| 37 |
|
| 38 |
if __name__ == "__main__":
|
| 39 |
+
app.run(host="0.0.0.0", port=5000) # Ensure compatibility with Docker
|
requirements.txt.txt
DELETED
|
@@ -1,4 +0,0 @@
|
|
| 1 |
-
torch
|
| 2 |
-
transformers
|
| 3 |
-
flask
|
| 4 |
-
flask-cors
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|