Spaces:
Runtime error
Runtime error
File size: 4,395 Bytes
13a7a5d c0311b6 13a7a5d c0311b6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
import os
import logging
from flask import Flask, request, jsonify, render_template
from dotenv import load_dotenv
from supplemental import EnhancedAIAgent, ProjectConfig
# Load environment variables
load_dotenv()
# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# Initialize Flask app
app = Flask(__name__)
# Initialize EnhancedAIAgent
agent = EnhancedAIAgent(
name="WebDevMaster",
description="Expert in full-stack web development",
skills=["HTML", "CSS", "JavaScript", "React", "Node.js"],
model_name="gpt2"
)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/generate_project_config', methods=['POST'])
def generate_project_config():
try:
project_description = request.json['project_description']
config = agent.generate_project_config(project_description)
return jsonify(config.__dict__), 200
except Exception as e:
logger.error(f"Error generating project config: {str(e)}")
return jsonify({"error": str(e)}), 400
@app.route('/create_project_structure', methods=['POST'])
def create_project_structure():
try:
config_dict = request.json
config = ProjectConfig(**config_dict)
structure = agent.create_project_structure(config)
return jsonify(structure), 200
except Exception as e:
logger.error(f"Error creating project structure: {str(e)}")
return jsonify({"error": str(e)}), 400
@app.route('/implement_feature', methods=['POST'])
def implement_feature():
try:
feature_description = request.json['feature_description']
existing_code = request.json.get('existing_code')
new_code = agent.implement_feature(feature_description, existing_code)
return jsonify({"code": new_code}), 200
except Exception as e:
logger.error(f"Error implementing feature: {str(e)}")
return jsonify({"error": str(e)}), 400
@app.route('/review_code', methods=['POST'])
def review_code():
try:
code = request.json['code']
review = agent.review_code(code)
return jsonify({"review": review}), 200
except Exception as e:
logger.error(f"Error reviewing code: {str(e)}")
return jsonify({"error": str(e)}), 400
@app.route('/optimize_code', methods=['POST'])
def optimize_code():
try:
code = request.json['code']
optimization_goal = request.json['optimization_goal']
optimized_code = agent.optimize_code(code, optimization_goal)
return jsonify({"optimized_code": optimized_code}), 200
except Exception as e:
logger.error(f"Error optimizing code: {str(e)}")
return jsonify({"error": str(e)}), 400
@app.route('/generate_documentation', methods=['POST'])
def generate_documentation():
try:
code = request.json['code']
documentation = agent.generate_documentation(code)
return jsonify({"documentation": documentation}), 200
except Exception as e:
logger.error(f"Error generating documentation: {str(e)}")
return jsonify({"error": str(e)}), 400
@app.route('/suggest_tests', methods=['POST'])
def suggest_tests():
try:
code = request.json['code']
test_suggestions = agent.suggest_tests(code)
return jsonify({"test_suggestions": test_suggestions}), 200
except Exception as e:
logger.error(f"Error suggesting tests: {str(e)}")
return jsonify({"error": str(e)}), 400
@app.route('/explain_code', methods=['POST'])
def explain_code():
try:
code = request.json['code']
explanation = agent.explain_code(code)
return jsonify({"explanation": explanation}), 200
except Exception as e:
logger.error(f"Error explaining code: {str(e)}")
return jsonify({"error": str(e)}), 400
@app.route('/suggest_refactoring', methods=['POST'])
def suggest_refactoring():
try:
code = request.json['code']
refactoring_suggestions = agent.suggest_refactoring(code)
return jsonify({"refactoring_suggestions": refactoring_suggestions}), 200
except Exception as e:
logger.error(f"Error suggesting refactoring: {str(e)}")
return jsonify({"error": str(e)}), 400
if __name__ == '__main__':
app.run(debug=os.getenv('FLASK_DEBUG', 'False') == 'True', host='0.0.0.0', port=int(os.getenv('PORT', 5000))) |