Ali2206 commited on
Commit
2debc41
·
verified ·
1 Parent(s): 3454516

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -13
app.py CHANGED
@@ -97,29 +97,43 @@ def validate_tool_file(file_path):
97
  with open(file_path, 'r') as f:
98
  data = json.load(f)
99
  if isinstance(data, list):
100
- assert all(isinstance(t, dict) and "name" in t for t in data), "Invalid tool list format"
101
  elif isinstance(data, dict):
102
  assert "tools" in data and isinstance(data["tools"], list), "'tools' field missing or invalid"
103
- assert all(isinstance(t, dict) and "name" in t for t in data["tools"]), "Invalid tools inside 'tools' field"
104
  else:
105
- raise ValueError("Tool file is neither a list nor a dict with 'tools'")
106
  return True
107
  except Exception as e:
108
- print(f"❌ Error validating tool file {file_path}: {e}")
109
  return False
110
 
111
  def init_agent():
112
- tool_path = os.path.join(tool_cache_dir, "new_tool.json")
113
- if not os.path.exists(tool_path):
114
- shutil.copy(os.path.abspath("data/new_tool.json"), tool_path)
 
 
 
 
115
 
116
- if not validate_tool_file(tool_path):
117
- raise ValueError("Tool file format invalid, cannot initialize agent.")
 
 
 
 
 
 
 
 
 
 
118
 
119
  agent = TxAgent(
120
  model_name="mims-harvard/TxAgent-T1-Llama-3.1-8B",
121
  rag_model_name="mims-harvard/ToolRAG-T1-GTE-Qwen2-1.5B",
122
- tool_files_dict={"new_tool": tool_path},
123
  force_finish=True,
124
  enable_checker=True,
125
  step_rag_num=4,
@@ -220,9 +234,8 @@ def create_ui(agent):
220
  background: linear-gradient(135deg, #37b6e9, #4b4ced);
221
  }
222
  """) as demo:
223
- gr.Markdown("""# 🧠 Clinical Reasoning Assistant
224
- Upload clinical Excel records below and click **Analyze** to generate a medical summary.
225
- """)
226
  file_upload = gr.File(label="Upload Excel File", file_types=[".xlsx"])
227
  analyze_btn = gr.Button("Analyze")
228
  report_output_markdown = gr.Markdown(elem_classes="output-markdown")
 
97
  with open(file_path, 'r') as f:
98
  data = json.load(f)
99
  if isinstance(data, list):
100
+ assert all(isinstance(t, dict) and "name" in t for t in data), "Invalid list format"
101
  elif isinstance(data, dict):
102
  assert "tools" in data and isinstance(data["tools"], list), "'tools' field missing or invalid"
103
+ assert all(isinstance(t, dict) and "name" in t for t in data["tools"]), "Invalid item in 'tools'"
104
  else:
105
+ raise ValueError("Unexpected structure")
106
  return True
107
  except Exception as e:
108
+ print(f"❌ Tool validation failed for {file_path}: {e}")
109
  return False
110
 
111
  def init_agent():
112
+ all_tool_paths = {
113
+ "opentarget": "/home/user/.pyenv/versions/3.10.17/lib/python3.10/site-packages/tooluniverse/data/opentarget_tools.json",
114
+ "fda_drug_label": "/home/user/.pyenv/versions/3.10.17/lib/python3.10/site-packages/tooluniverse/data/fda_drug_labeling_tools.json",
115
+ "special_tools": "/home/user/.pyenv/versions/3.10.17/lib/python3.10/site-packages/tooluniverse/data/special_tools.json",
116
+ "monarch": "/home/user/.pyenv/versions/3.10.17/lib/python3.10/site-packages/tooluniverse/data/monarch_tools.json",
117
+ "new_tool": os.path.join(tool_cache_dir, "new_tool.json"),
118
+ }
119
 
120
+ if not os.path.exists(all_tool_paths["new_tool"]):
121
+ shutil.copy(os.path.abspath("data/new_tool.json"), all_tool_paths["new_tool"])
122
+
123
+ valid_tool_paths = {}
124
+ for key, path in all_tool_paths.items():
125
+ if validate_tool_file(path):
126
+ valid_tool_paths[key] = path
127
+ else:
128
+ print(f"⚠️ Skipping invalid tool file: {path}")
129
+
130
+ if not valid_tool_paths:
131
+ raise RuntimeError("❌ No valid tool files found to load into TxAgent.")
132
 
133
  agent = TxAgent(
134
  model_name="mims-harvard/TxAgent-T1-Llama-3.1-8B",
135
  rag_model_name="mims-harvard/ToolRAG-T1-GTE-Qwen2-1.5B",
136
+ tool_files_dict=valid_tool_paths,
137
  force_finish=True,
138
  enable_checker=True,
139
  step_rag_num=4,
 
234
  background: linear-gradient(135deg, #37b6e9, #4b4ced);
235
  }
236
  """) as demo:
237
+ gr.Markdown("""# 🧠 Clinical Reasoning Assistant
238
+ Upload clinical Excel records below and click **Analyze** to generate a medical summary.""")
 
239
  file_upload = gr.File(label="Upload Excel File", file_types=[".xlsx"])
240
  analyze_btn = gr.Button("Analyze")
241
  report_output_markdown = gr.Markdown(elem_classes="output-markdown")