reshma-05 commited on
Commit
9d31a93
Β·
verified Β·
1 Parent(s): e6d1ef0

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -58
app.py CHANGED
@@ -3,11 +3,11 @@ import gradio as gr
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
4
  import torch
5
 
6
- # βœ… Correct IBM Granite model
7
  model_id = "ibm-granite/granite-3.3-2b-instruct"
8
- token = os.getenv("HF_TOKEN") # Load from Hugging Face Secrets
9
 
10
- # βœ… Load model and tokenizer using the updated syntax
11
  tokenizer = AutoTokenizer.from_pretrained(model_id, token=token)
12
  model = AutoModelForCausalLM.from_pretrained(
13
  model_id,
@@ -16,78 +16,52 @@ model = AutoModelForCausalLM.from_pretrained(
16
  torch_dtype=torch.float32
17
  )
18
 
 
19
  def query_granite(prompt):
20
  inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
21
  outputs = model.generate(**inputs, max_new_tokens=100)
22
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
23
 
24
- # Pages
25
- def home():
26
- with gr.Blocks() as demo:
27
- gr.Markdown("# πŸ₯ Welcome to HealthAI")
28
- gr.Markdown("Your intelligent healthcare assistant using IBM Granite 3.3-2B Instruct.")
29
- return demo
30
 
31
- def symptoms_app():
32
- def identify(symptom):
33
- return query_granite(f"What illness could cause: {symptom}?")
34
- with gr.Blocks() as demo:
35
- gr.Markdown("## 🩺 Symptom Identifier")
36
  symptom = gr.Textbox(label="Enter your symptom")
37
  output = gr.Textbox(label="AI Diagnosis")
38
  btn = gr.Button("Analyze")
39
  btn.click(identify, inputs=symptom, outputs=output)
40
- return demo
41
 
42
- def remedies_app():
43
- def get_remedies(issue):
44
- return query_granite(f"What are home remedies for {issue}?")
45
- with gr.Blocks() as demo:
46
- gr.Markdown("## 🌿 Home Remedies")
47
  issue = gr.Textbox(label="What are you suffering from?")
48
- output = gr.Textbox(label="Suggested Remedy")
49
- btn = gr.Button("Suggest")
50
- btn.click(get_remedies, inputs=issue, outputs=output)
51
- return demo
52
 
53
- def diet_app():
54
- def suggest(goal):
55
- return query_granite(f"Suggest a diet for: {goal}")
56
- with gr.Blocks() as demo:
57
- gr.Markdown("## πŸ₯— Diet Suggestions")
58
  goal = gr.Textbox(label="Your health goal")
59
- output = gr.Textbox(label="Diet Plan")
60
- btn = gr.Button("Get Plan")
61
- btn.click(suggest, inputs=goal, outputs=output)
62
- return demo
63
 
64
- def mental_app():
65
- def tip(topic):
66
- return query_granite(f"Mental health advice about: {topic}")
67
- with gr.Blocks() as demo:
68
- gr.Markdown("## 🧠 Mental Wellness")
69
  topic = gr.Textbox(label="Enter mental health topic")
70
- output = gr.Textbox(label="Wellness Tip")
71
- btn = gr.Button("Get Tip")
72
- btn.click(tip, inputs=topic, outputs=output)
73
- return demo
74
 
75
- def faqs_app():
76
- with gr.Blocks() as demo:
77
- gr.Markdown("## ❓ FAQs")
78
  gr.Markdown("**Q1:** What is HealthAI?")
79
  gr.Markdown("**A:** It's an AI assistant to help with health-related queries using IBM Granite 3.3-2B.")
80
- return demo
81
 
82
- # App configuration
83
- pages = [
84
- gr.Page(title="🏠 Home", path="/", block=home),
85
- gr.Page(title="🩺 Symptoms", path="/symptoms", block=symptoms_app),
86
- gr.Page(title="🌿 Remedies", path="/remedies", block=remedies_app),
87
- gr.Page(title="πŸ₯— Diet", path="/diet", block=diet_app),
88
- gr.Page(title="🧠 Mental Wellness", path="/mental", block=mental_app),
89
- gr.Page(title="❓ FAQs", path="/faqs", block=faqs_app),
90
- ]
91
-
92
- app = gr.App(pages=pages)
93
- app.launch()
 
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
4
  import torch
5
 
6
+ # βœ… IBM Granite model setup
7
  model_id = "ibm-granite/granite-3.3-2b-instruct"
8
+ token = os.getenv("HF_TOKEN") # Ensure your Hugging Face token is set in the environment
9
 
10
+ # βœ… Load model and tokenizer
11
  tokenizer = AutoTokenizer.from_pretrained(model_id, token=token)
12
  model = AutoModelForCausalLM.from_pretrained(
13
  model_id,
 
16
  torch_dtype=torch.float32
17
  )
18
 
19
+ # βœ… Query function
20
  def query_granite(prompt):
21
  inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
22
  outputs = model.generate(**inputs, max_new_tokens=100)
23
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
24
 
25
+ # βœ… Gradio UI using Tabs (instead of Pages)
26
+ with gr.Blocks() as demo:
27
+ gr.Markdown("# πŸ₯ Welcome to HealthAI")
28
+ gr.Markdown("Your intelligent healthcare assistant using IBM Granite 3.3-2B Instruct.")
 
 
29
 
30
+ with gr.Tab("🩺 Symptoms"):
31
+ def identify(symptom):
32
+ return query_granite(f"What illness could cause: {symptom}?")
 
 
33
  symptom = gr.Textbox(label="Enter your symptom")
34
  output = gr.Textbox(label="AI Diagnosis")
35
  btn = gr.Button("Analyze")
36
  btn.click(identify, inputs=symptom, outputs=output)
 
37
 
38
+ with gr.Tab("🌿 Remedies"):
39
+ def get_remedies(issue):
40
+ return query_granite(f"What are home remedies for {issue}?")
 
 
41
  issue = gr.Textbox(label="What are you suffering from?")
42
+ remedy_output = gr.Textbox(label="Suggested Remedy")
43
+ remedy_btn = gr.Button("Suggest")
44
+ remedy_btn.click(get_remedies, inputs=issue, outputs=remedy_output)
 
45
 
46
+ with gr.Tab("πŸ₯— Diet"):
47
+ def suggest(goal):
48
+ return query_granite(f"Suggest a diet for: {goal}")
 
 
49
  goal = gr.Textbox(label="Your health goal")
50
+ diet_output = gr.Textbox(label="Diet Plan")
51
+ diet_btn = gr.Button("Get Plan")
52
+ diet_btn.click(suggest, inputs=goal, outputs=diet_output)
 
53
 
54
+ with gr.Tab("🧠 Mental Wellness"):
55
+ def tip(topic):
56
+ return query_granite(f"Mental health advice about: {topic}")
 
 
57
  topic = gr.Textbox(label="Enter mental health topic")
58
+ tip_output = gr.Textbox(label="Wellness Tip")
59
+ tip_btn = gr.Button("Get Tip")
60
+ tip_btn.click(tip, inputs=topic, outputs=tip_output)
 
61
 
62
+ with gr.Tab("❓ FAQs"):
63
+ gr.Markdown("### ❓ FAQs")
 
64
  gr.Markdown("**Q1:** What is HealthAI?")
65
  gr.Markdown("**A:** It's an AI assistant to help with health-related queries using IBM Granite 3.3-2B.")
 
66
 
67
+ demo.launch()