conceptt / interface.py
Liyew's picture
Moved all contents from concept--main to root directory
25baf69
from flask import Flask, request, jsonify
from Vit_concept import run_inference, model
from GP import genetic_programming
import traceback
import os
app = Flask(__name__)
@app.route('/')
def home():
return "API is running."
@app.route('/run', methods=['POST'])
def run_model():
try:
data = request.get_json(force=True) # force=True handles edge cases where headers are weird
input_output_pairs = []
predicted_HLCs = []
# Debugging: Log sample count
print(f"Received {len(data.get('train', []))} training samples")
for sample in data["train"]:
input_grid = sample["input"]
output_grid = sample["output"]
# Debug step
print("Running run_inference on a sample...")
concept_label, *_ = run_inference(model, input_grid, output_grid)
predicted_HLCs.append(concept_label)
input_output_pairs.append((input_grid, output_grid))
predicted_HLCs = list(set(predicted_HLCs))
print("Calling genetic_programming...")
best_program, generations = genetic_programming(
input_output_pairs=input_output_pairs,
population_size=30,
generations=10,
mutation_rate=0.2,
crossover_rate=0.7,
max_depth=3,
predicted_HLCs=predicted_HLCs
)
print("Returning response...")
return jsonify({
"best_program": str(best_program)
})
except Exception as e:
print("πŸ”₯ ERROR in /run route!")
print(traceback.format_exc()) # Show full error trace in Render logs
return jsonify({"error": str(e)}), 500
if __name__ == "__main__":
port = int(os.environ.get("PORT", 10000))
print(f"Starting server on port {port}...")
app.run(host="0.0.0.0", port=port)