Spaces:
Running
A newer version of the Gradio SDK is available:
5.29.1
ChatDoctor: Your Custom Medical AI Assistant
Overview
ChatDoctor is an AI-powered medical conversation assistant built on advanced language model technology. It provides informative responses to health-related queries while maintaining appropriate medical disclaimers. This project adapts the ChatDoctor model from Hugging Face into an accessible, user-friendly interface.
Features
- Medical Question Answering: Get informative responses about symptoms, conditions, treatments, and general health information
- Conversational Interface: Natural dialogue-based interaction for a seamless experience
- Educational Support: Explanations of medical terminology, conditions, and procedures
- Responsible AI: Clear disclaimers and ethical boundaries for medical information
- Examples: Pre-loaded sample questions to help users get started
Live Demo
Try the live demo on Hugging Face Spaces: Your ChatDoctor Demo
How It Works
Technology Stack
- Base Model: Fine-tuned medical language model from zl111/ChatDoctor
- Framework: Built with Hugging Face Transformers and Gradio
- Deployment: Hosted on Hugging Face Spaces
Key Components
- Language Model: Powers the understanding of medical queries and generation of appropriate responses
- Context Management: Maintains conversation history for coherent multi-turn interactions
- User Interface: Clean, intuitive interface for asking questions and receiving answers
- Disclaimer System: Ensures users understand the educational nature of responses
How to Use
- Type your medical question in the text box
- Click "Send" or press Enter
- Read the AI's response
- Continue the conversation with follow-up questions
- Use "Clear Conversation" to start fresh
Example Interactions
Example 1: Understanding Symptoms
User: "What are the common symptoms of diabetes?"
ChatDoctor: "Diabetes presents with several characteristic symptoms:
- Increased thirst (polydipsia) and frequent urination (polyuria)
- Unexplained weight loss despite increased hunger
- Fatigue and weakness
- Blurred vision
- Slow-healing sores or frequent infections
- Tingling or numbness in hands or feet (for Type 2 diabetes)
Type 1 diabetes symptoms often develop quickly over weeks, while Type 2 diabetes symptoms may develop gradually or be subtle. If you're experiencing these symptoms, it's important to consult with a healthcare provider for proper evaluation and diagnosis. Early detection and management are crucial for preventing complications."
Example 2: Medication Information
User: "What are the side effects of ibuprofen?"
ChatDoctor: "Ibuprofen is a nonsteroidal anti-inflammatory drug (NSAID) commonly used to treat pain, inflammation, and fever. Possible side effects include:
Common side effects:
- Stomach pain, heartburn, or indigestion
- Nausea or vomiting
- Headache or dizziness
- Mild rash
More serious side effects (less common):
- Stomach bleeding or ulcers
- Kidney problems
- Liver problems
- Allergic reactions
- Increased risk of heart attack or stroke with long-term use
To minimize risks, take ibuprofen with food, use the lowest effective dose for the shortest duration needed, and consult with a healthcare provider before use if you have underlying health conditions or take other medications.
Disclaimer: This information is for educational purposes only and not a substitute for professional medical advice."
Technical Details
Model Specifications
- Base Model: ChatDoctor is a next-generation AI doctor model that is based on the LLaMA model
- Model Type: Causal Language Model (CLM)
- Response Generation: Temperature=0.7, Top-p=0.9
- Context Window: 512 tokens
- Architecture: Transformer-based neural network
Conversation Processing
def generate_response(user_input):
# Add user input to history
conversation_history.append(f"User: {user_input}")
# Construct the prompt with system instructions and conversation history
prompt = system_prompt + "\n\n"
prompt += "\n".join(conversation_history[-10:])
prompt += "\nAI Assistant: "
# Generate the response using the model
inputs = tokenizer(prompt, return_tensors="pt").to(device)
outputs = model.generate(
input_ids=inputs.input_ids,
attention_mask=inputs.attention_mask,
max_new_tokens=512,
temperature=0.7,
top_p=0.9,
do_sample=True
)
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
# Add response to history
conversation_history.append(f"AI Assistant: {response}")
return response
Interface Components
- Chatbot Interface: Displays the conversation history
- Input Box: Text field for user questions
- Send Button: Submits the user question
- Clear Button: Resets the conversation
- Examples Section: Pre-populated example questions
- Disclaimer: Medical information advisory
Limitations and Ethical Guidelines
- Not a Diagnostic Tool: ChatDoctor cannot diagnose medical conditions
- Educational Purposes Only: Information is provided for learning, not as medical advice
- No Emergency Services: Not suitable for emergency situations
- Not a Replacement: Does not replace consultation with qualified healthcare professionals
- Knowledge Limitations: May not have information about very recent medical developments
- Privacy: No personal medical data is stored
Deployment
This project is deployed on Hugging Face Spaces, providing a scalable and accessible platform for users worldwide. The deployment uses:
- Gradio Web Interface: For user interaction
- Hugging Face Transformers: For model serving
- GPU Acceleration: For faster response generation
Future Improvements
- Specialization: Adding support for specific medical specialties
- Multilingual Support: Expanding to multiple languages
- Image Analysis: Adding capability to discuss uploaded medical images
- Voice Interface: Adding speech recognition and text-to-speech
- Medical Reference Links: Providing citations to trusted medical resources
Disclaimer
This AI assistant provides information for educational purposes only. It is not a substitute for professional medical advice, diagnosis, or treatment. Always seek the advice of your physician or other qualified health provider with any questions you may have regarding a medical condition. Never disregard professional medical advice or delay in seeking it because of something you have read or heard from this AI assistant.
Acknowledgments
- Hugging Face for the model hosting and Spaces platform
- ChatDoctor Team for the base model
- The open-source AI community for tools and resources