Spaces:
Build error
Build error
| import gradio as gr | |
| from llama_cpp import Llama | |
| import os | |
| # Initialize the model | |
| print("Loading model...") | |
| llm = Llama( | |
| model_path="Medical-Guide-COT-llama3.2-1B.Q5_K_M.gguf", | |
| n_ctx=2048, | |
| n_threads=4, | |
| n_gpu_layers=0 # CPU only for Spaces | |
| ) | |
| def chat(message, history): | |
| """ | |
| Chat function that maintains conversation history | |
| """ | |
| # Build the prompt with conversation history | |
| prompt = "" | |
| # Add system message | |
| prompt += "You are a helpful medical assistant. Provide informative responses about medical topics, but always remind users to consult healthcare professionals for actual medical advice.\n\n" | |
| # Add conversation history | |
| for user_msg, bot_msg in history: | |
| prompt += f"User: {user_msg}\n" | |
| prompt += f"Assistant: {bot_msg}\n" | |
| # Add current message | |
| prompt += f"User: {message}\n" | |
| prompt += "Assistant:" | |
| # Generate response | |
| response = llm( | |
| prompt, | |
| max_tokens=512, | |
| temperature=0.7, | |
| top_p=0.9, | |
| stop=["User:", "\n\n\n"], | |
| echo=False | |
| ) | |
| bot_message = response['choices'][0]['text'].strip() | |
| return bot_message | |
| # Custom CSS | |
| custom_css = """ | |
| .gradio-container { | |
| max-width: 900px !important; | |
| } | |
| #chatbot { | |
| height: 500px !important; | |
| } | |
| """ | |
| # Create Gradio interface | |
| with gr.Blocks(css=custom_css, theme=gr.themes.Soft()) as demo: | |
| gr.Markdown( | |
| """ | |
| # 🏥 Medical Guide Chatbot | |
| This chatbot uses the Medical-Guide-COT-llama3.2-1B model to answer medical questions. | |
| ⚠️ **Disclaimer**: This is for informational purposes only. Always consult with qualified healthcare professionals for medical advice. | |
| """ | |
| ) | |
| chatbot = gr.Chatbot( | |
| elem_id="chatbot", | |
| bubble_full_width=False, | |
| avatar_images=(None, "🏥") | |
| ) | |
| with gr.Row(): | |
| msg = gr.Textbox( | |
| placeholder="Ask a medical question...", | |
| show_label=False, | |
| scale=4 | |
| ) | |
| submit = gr.Button("Send", scale=1, variant="primary") | |
| with gr.Row(): | |
| clear = gr.Button("Clear Conversation") | |
| gr.Markdown( | |
| """ | |
| ### Example Questions: | |
| - What are the symptoms of diabetes? | |
| - How can I improve my sleep quality? | |
| - What is hypertension and how is it treated? | |
| """ | |
| ) | |
| # Event handlers | |
| msg.submit(chat, inputs=[msg, chatbot], outputs=[chatbot]) | |
| submit.click(chat, inputs=[msg, chatbot], outputs=[chatbot]) | |
| clear.click(lambda: None, None, chatbot, queue=False) | |
| msg.submit(lambda: "", None, msg) | |
| submit.click(lambda: "", None, msg) | |
| if __name__ == "__main__": | |
| demo.launch() |