import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM import torch import os # Retrieve the token from environment variables api_token = os.getenv("HF_TOKEN") # Load the Hugging Face model and tokenizer with authentication model_name = "ContactDoctor/Bio-Medical-MultiModal-Llama-3-8B-V1" tokenizer = AutoTokenizer.from_pretrained(model_name, use_auth_token=api_token) model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, use_auth_token=api_token) # Define the function to process user input def generate_response(input_text): try: # Tokenize the input text inputs = tokenizer(input_text, return_tensors="pt") # Generate a response using the model outputs = model.generate( inputs["input_ids"], max_length=256, # Limit the output length num_return_sequences=1, # Generate a single response temperature=0.7, # Adjust for creativity vs. determinism top_p=0.9, # Nucleus sampling top_k=50 # Top-k sampling ) # Decode and return the generated text response = tokenizer.decode(outputs[0], skip_special_tokens=True) return response except Exception as e: return f"Error: {str(e)}" # Create a Gradio interface with API enabled iface = gr.Interface( fn=generate_response, inputs="text", outputs="text", title="ContactDoctor Medical Assistant", description="Provide input symptoms or queries and get AI-powered medical advice.", enable_api=True # Enables API for external calls ) # Launch the Gradio app if __name__ == "__main__": iface.launch()