Spaces:
Sleeping
Sleeping
updated app.py to use flask
Browse files- app.py +34 -29
- requirements.txt +1 -1
app.py
CHANGED
|
@@ -1,23 +1,45 @@
|
|
| 1 |
import os
|
| 2 |
-
import
|
|
|
|
| 3 |
|
|
|
|
| 4 |
os.environ["HF_HUB_DISABLE_PROGRESS_BARS"] = "1"
|
| 5 |
os.environ["HF_HUB_DISABLE_TELEMETRY"] = "1"
|
| 6 |
|
| 7 |
from applications.pure_predictor.main import run as run_pure_predictor
|
| 8 |
from applications.molecule_generator.main import run as run_molecule_generator
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
|
| 11 |
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
| 13 |
config = {
|
| 14 |
"mode": "1",
|
| 15 |
"smiles": smiles,
|
| 16 |
}
|
| 17 |
-
|
|
|
|
|
|
|
| 18 |
|
| 19 |
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
config = EvolutionConfig(
|
| 22 |
target_cn=target_cn,
|
| 23 |
generations=generations,
|
|
@@ -25,32 +47,15 @@ def generate_molecules(target_cn, generations, population_size):
|
|
| 25 |
minimize_ysi=False,
|
| 26 |
maximize_cn=False,
|
| 27 |
)
|
| 28 |
-
final_df, pareto_df = run_molecule_generator(config)
|
| 29 |
-
|
| 30 |
-
return final_df, pareto_df
|
| 31 |
-
|
| 32 |
|
| 33 |
-
|
| 34 |
-
gr.Markdown("# 🧪 Molecule Generator Sanity Check")
|
| 35 |
-
|
| 36 |
-
with gr.Tab("Pure Predictor"):
|
| 37 |
-
smiles = gr.Textbox(label="SMILES", value="CCC")
|
| 38 |
-
out_json = gr.JSON()
|
| 39 |
-
gr.Button("Predict").click(pure_predict, smiles, out_json)
|
| 40 |
-
|
| 41 |
-
with gr.Tab("Molecule Generator"):
|
| 42 |
-
target_cn = gr.Number(label="Target CN", value=55)
|
| 43 |
-
generations = gr.Slider(1, 5, value=1, step=1)
|
| 44 |
-
pop_size = gr.Slider(10, 200, value=50, step=10)
|
| 45 |
|
| 46 |
-
|
| 47 |
-
|
|
|
|
|
|
|
| 48 |
|
| 49 |
-
gr.Button("Generate").click(
|
| 50 |
-
generate_molecules,
|
| 51 |
-
inputs=[target_cn, generations, pop_size],
|
| 52 |
-
outputs=[out_final, out_pareto],
|
| 53 |
-
)
|
| 54 |
|
| 55 |
if __name__ == "__main__":
|
| 56 |
-
|
|
|
|
|
|
| 1 |
import os
|
| 2 |
+
from flask import Flask, jsonify, request
|
| 3 |
+
from core.config import EvolutionConfig
|
| 4 |
|
| 5 |
+
# Silence HF noise
|
| 6 |
os.environ["HF_HUB_DISABLE_PROGRESS_BARS"] = "1"
|
| 7 |
os.environ["HF_HUB_DISABLE_TELEMETRY"] = "1"
|
| 8 |
|
| 9 |
from applications.pure_predictor.main import run as run_pure_predictor
|
| 10 |
from applications.molecule_generator.main import run as run_molecule_generator
|
| 11 |
+
|
| 12 |
+
app = Flask(__name__)
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
@app.route("/")
|
| 16 |
+
def home():
|
| 17 |
+
return {
|
| 18 |
+
"status": "ok",
|
| 19 |
+
"message": "Biofuel Optimiser HF Space is running",
|
| 20 |
+
"endpoints": ["/pure", "/generate"]
|
| 21 |
+
}
|
| 22 |
|
| 23 |
|
| 24 |
+
@app.route("/pure", methods=["GET"])
|
| 25 |
+
def pure_predict():
|
| 26 |
+
smiles = request.args.get("smiles", "CCC")
|
| 27 |
+
|
| 28 |
config = {
|
| 29 |
"mode": "1",
|
| 30 |
"smiles": smiles,
|
| 31 |
}
|
| 32 |
+
|
| 33 |
+
result = run_pure_predictor(config)
|
| 34 |
+
return jsonify(result)
|
| 35 |
|
| 36 |
|
| 37 |
+
@app.route("/generate", methods=["GET"])
|
| 38 |
+
def generate():
|
| 39 |
+
target_cn = float(request.args.get("target_cn", 55))
|
| 40 |
+
generations = int(request.args.get("generations", 1))
|
| 41 |
+
population_size = int(request.args.get("population_size", 50))
|
| 42 |
+
|
| 43 |
config = EvolutionConfig(
|
| 44 |
target_cn=target_cn,
|
| 45 |
generations=generations,
|
|
|
|
| 47 |
minimize_ysi=False,
|
| 48 |
maximize_cn=False,
|
| 49 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
|
| 51 |
+
final_df, pareto_df = run_molecule_generator(config)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
+
return {
|
| 54 |
+
"final_population": final_df.to_dict(orient="records"),
|
| 55 |
+
"pareto_front": pareto_df.to_dict(orient="records"),
|
| 56 |
+
}
|
| 57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
|
| 59 |
if __name__ == "__main__":
|
| 60 |
+
# HF Spaces expects port 7860
|
| 61 |
+
app.run(host="0.0.0.0", port=7860)
|
requirements.txt
CHANGED
|
@@ -15,4 +15,4 @@ joblib==1.5.2
|
|
| 15 |
tqdm==4.67.1
|
| 16 |
huggingface_hub==1.2.1
|
| 17 |
pytest==9.0.2
|
| 18 |
-
|
|
|
|
| 15 |
tqdm==4.67.1
|
| 16 |
huggingface_hub==1.2.1
|
| 17 |
pytest==9.0.2
|
| 18 |
+
flask
|