Chat_with_Doctor / readme-file.md
HaryaniAnjali's picture
Update readme-file.md
29c30f2 verified

A newer version of the Gradio SDK is available: 5.29.1

Upgrade

ChatDoctor: Your Custom Medical AI Assistant

ChatDoctor Logo Status Python Hugging Face

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

  1. Language Model: Powers the understanding of medical queries and generation of appropriate responses
  2. Context Management: Maintains conversation history for coherent multi-turn interactions
  3. User Interface: Clean, intuitive interface for asking questions and receiving answers
  4. Disclaimer System: Ensures users understand the educational nature of responses

How to Use

  1. Type your medical question in the text box
  2. Click "Send" or press Enter
  3. Read the AI's response
  4. Continue the conversation with follow-up questions
  5. 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:

  1. Increased thirst (polydipsia) and frequent urination (polyuria)
  2. Unexplained weight loss despite increased hunger
  3. Fatigue and weakness
  4. Blurred vision
  5. Slow-healing sores or frequent infections
  6. 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

  1. Chatbot Interface: Displays the conversation history
  2. Input Box: Text field for user questions
  3. Send Button: Submits the user question
  4. Clear Button: Resets the conversation
  5. Examples Section: Pre-populated example questions
  6. 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