SalZa2004 commited on
Commit
9bfeace
·
1 Parent(s): 632bf13

updated app.py to use flask

Browse files
Files changed (2) hide show
  1. app.py +34 -29
  2. requirements.txt +1 -1
app.py CHANGED
@@ -1,23 +1,45 @@
1
  import os
2
- import gradio as gr
 
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
- from core.config import EvolutionConfig
 
 
 
 
 
 
 
 
 
 
10
 
11
 
12
- def pure_predict(smiles):
 
 
 
13
  config = {
14
  "mode": "1",
15
  "smiles": smiles,
16
  }
17
- return run_pure_predictor(config)
 
 
18
 
19
 
20
- def generate_molecules(target_cn, generations, population_size):
 
 
 
 
 
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
- with gr.Blocks(title="Biofuel Optimiser – Generator Debug UI") as demo:
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
- out_final = gr.Dataframe(label="Final Population")
47
- out_pareto = gr.Dataframe(label="Pareto Front")
 
 
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
- demo.launch()
 
 
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
- gradio==6.2.0
 
15
  tqdm==4.67.1
16
  huggingface_hub==1.2.1
17
  pytest==9.0.2
18
+ flask