Enzo Reis de Oliveira commited on
Commit
2af5b7d
·
1 Parent(s): 075858d

fixing path error

Browse files
Files changed (1) hide show
  1. app.py +12 -23
app.py CHANGED
@@ -1,57 +1,46 @@
1
  import os
2
  import sys
3
- import tempfile
4
- import pandas as pd
5
- import gradio as gr
6
- from smi_ted_light.load import load_smi_ted
7
 
8
- # 1) Ajusta o path para o inference do SMI-TED
9
  BASE_DIR = os.path.dirname(__file__)
10
  INFERENCE_DIR = os.path.join(BASE_DIR, "smi-ted", "inference")
11
  sys.path.append(INFERENCE_DIR)
12
 
 
 
 
 
 
 
13
  # 2) Caminho onde estão pesos e vocabulário
14
  MODEL_DIR = os.path.join("smi-ted", "inference", "smi_ted_light")
15
 
16
- # 3) Carrega o modelo SMI-TED (Light)
17
  model = load_smi_ted(
18
  folder=MODEL_DIR,
19
  ckpt_filename="smi-ted-Light_40.pt",
20
  vocab_filename="bert_vocab_curated.txt",
21
  )
22
 
23
- # 4) Função utilizada pela interface Gradio
24
  def gerar_embedding(smiles: str):
25
  smiles = smiles.strip()
26
  if not smiles:
27
  return {"erro": "digite uma sequência SMILES primeiro"}, None
28
  try:
29
  vetor = model.encode(smiles, return_torch=True)[0]
30
- embedding = vetor.tolist()
31
- # monta um CSV temporário
32
- df = pd.DataFrame([embedding])
33
- tmp = tempfile.NamedTemporaryFile(delete=False, suffix=".csv", prefix="embedding_")
34
  df.to_csv(tmp.name, index=False)
35
  tmp.close()
36
- return embedding, tmp.name
37
  except Exception as e:
38
  return {"erro": str(e)}, None
39
 
40
- # 5) Interface com JSON + botão de download
41
  demo = gr.Interface(
42
  fn=gerar_embedding,
43
  inputs=gr.Textbox(label="SMILES", placeholder="Ex.: CCO"),
44
- outputs=[
45
- gr.JSON(label="Embedding (lista de floats)"),
46
- gr.File(label="Baixar embedding em CSV"),
47
- ],
48
  title="SMI-TED Embedding Generator",
49
- description=(
50
- "Cole uma sequência SMILES e receba o embedding gerado pelo modelo "
51
- "SMI-TED Light. Você também pode baixar o embedding em CSV."
52
- ),
53
  )
54
-
55
-
56
  if __name__ == "__main__":
57
  demo.launch(show_api=False)
 
1
  import os
2
  import sys
 
 
 
 
3
 
4
+ # 1) Ajusta o path para o inference do SMI-TED **antes** de importar anything
5
  BASE_DIR = os.path.dirname(__file__)
6
  INFERENCE_DIR = os.path.join(BASE_DIR, "smi-ted", "inference")
7
  sys.path.append(INFERENCE_DIR)
8
 
9
+ # Agora o python já sabe onde achar smi_ted_light
10
+ import tempfile
11
+ import pandas as pd
12
+ import gradio as gr
13
+ from smi_ted_light.load import load_smi_ted
14
+
15
  # 2) Caminho onde estão pesos e vocabulário
16
  MODEL_DIR = os.path.join("smi-ted", "inference", "smi_ted_light")
17
 
 
18
  model = load_smi_ted(
19
  folder=MODEL_DIR,
20
  ckpt_filename="smi-ted-Light_40.pt",
21
  vocab_filename="bert_vocab_curated.txt",
22
  )
23
 
 
24
  def gerar_embedding(smiles: str):
25
  smiles = smiles.strip()
26
  if not smiles:
27
  return {"erro": "digite uma sequência SMILES primeiro"}, None
28
  try:
29
  vetor = model.encode(smiles, return_torch=True)[0]
30
+ emb = vetor.tolist()
31
+ df = pd.DataFrame([emb])
32
+ tmp = tempfile.NamedTemporaryFile(delete=False, suffix=".csv", prefix="emb_")
 
33
  df.to_csv(tmp.name, index=False)
34
  tmp.close()
35
+ return emb, tmp.name
36
  except Exception as e:
37
  return {"erro": str(e)}, None
38
 
 
39
  demo = gr.Interface(
40
  fn=gerar_embedding,
41
  inputs=gr.Textbox(label="SMILES", placeholder="Ex.: CCO"),
42
+ outputs=[gr.JSON(), gr.File(label="Baixar CSV")],
 
 
 
43
  title="SMI-TED Embedding Generator",
 
 
 
 
44
  )
 
 
45
  if __name__ == "__main__":
46
  demo.launch(show_api=False)