| | import gradio as gr |
| | from transformers import AutoModelForCausalLM, AutoTokenizer |
| | import torch |
| |
|
| | |
| | device = torch.device("cuda" if torch.cuda.is_available() else "cpu") |
| | if device.type == "cpu": |
| | print("Warning: CUDA is not available. Running on CPU, which may be slow.") |
| |
|
| | |
| | model_name = "ruslanmv/ai-medical-model-32bit" |
| | tokenizer = AutoTokenizer.from_pretrained(model_name) |
| | model = model = AutoModelForCausalLM.from_pretrained( |
| | model_name, |
| | device_map="auto", |
| | load_in_8bit=True |
| | ).to(device) |
| |
|
| |
|
| |
|
| | |
| | def ask_medical_question(question): |
| | prompt = f"<|start_header_id|>system<|end_header_id|> You are a Medical AI chatbot assistant. <|eot_id|><|start_header_id|>User: <|end_header_id|>This is the question: {question}<|eot_id|>" |
| |
|
| | inputs = tokenizer(prompt, return_tensors="pt").to(device) |
| | outputs = model.generate( |
| | **inputs, |
| | max_new_tokens=100, |
| | temperature=0.7, |
| | do_sample=True, |
| | top_p=0.9, |
| | top_k=30, |
| | ) |
| | response = tokenizer.decode(outputs[0], skip_special_tokens=True) |
| | return response |
| |
|
| |
|
| | |
| | iface = gr.Interface(fn=ask_medical_question, inputs="text", outputs="text") |
| | iface.launch() |
| |
|