Mir Mohammed Mohiuddin
Update app.py
27b685f verified
Raw
History Blame Contribute Delete
2.59 kB
import gradio as gr
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
MODEL_NAME = "ViteMamba/TigerLLM-Medical-Bengali"
print("Loading tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, use_fast=False)
print("Loading model...")
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
torch_dtype=torch.float32,
low_cpu_mem_usage=True,
device_map="cpu"
)
model.eval()
print("✅ Ready!")
def ask(question, max_tokens=256, temperature=0.7):
if not question.strip():
return "অনুগ্রহ করে একটি প্রশ্ন লিখুন।"
prompt = f"""<bos><start_of_turn>system
আপনি একজন বাংলা চিকিৎসা সহকারী। নিচের প্রশ্নের বিস্তারিত উত্তর দিন।<end_of_turn>
<start_of_turn>user
{question}<end_of_turn>
<start_of_turn>model
"""
inputs = tokenizer(prompt, return_tensors="pt")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=int(max_tokens),
temperature=float(temperature),
do_sample=True,
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id
)
generated = outputs[0][inputs["input_ids"].shape[1]:]
return tokenizer.decode(generated, skip_special_tokens=True)
demo = gr.Interface(
fn=ask,
inputs=[
gr.Textbox(
label="বাংলা চিকিৎসা প্রশ্ন",
placeholder="যেমন: ডায়াবেটিসের লক্ষণ কী?",
lines=3
),
gr.Slider(50, 512, value=256, step=1, label="Max Tokens"),
gr.Slider(0.1, 1.0, value=0.7, step=0.1, label="Temperature"),
],
outputs=gr.Textbox(label="উত্তর", lines=10),
title="🏥 TigerLLM Bengali Medical Assistant",
description="বাংলায় চিকিৎসা প্রশ্নের উত্তর পান।",
examples=[
["ডায়াবেটিসের প্রধান লক্ষণগুলো কী কী?"],
["উচ্চ রক্তচাপ কমানোর উপায় কী?"],
["নিউমোনিয়া কীভাবে ছড়ায়?"],
["হার্ট অ্যাটাকের লক্ষণগুলো কী?"],
],
)
demo.launch(server_name="0.0.0.0", server_port=7860)