Spaces:
Sleeping
Sleeping
| # app.py | |
| import streamlit as st | |
| from transformers import pipeline | |
| import torch | |
| # Initialize the BioGPT model using the Hugging Face pipeline | |
| generator = pipeline("text-generation", model="microsoft/BioGPT") | |
| # Streamlit app title and description | |
| st.title("24/7Dr. Health Chatbot") | |
| st.markdown(""" | |
| This is a health chatbot that can provide responses based on the symptoms you describe. | |
| It uses a medical GPT model to generate responses and help guide your understanding. | |
| """) | |
| # Initialize session state for conversation history if it does not exist | |
| if 'history' not in st.session_state: | |
| st.session_state.history = [] | |
| # Function to generate chatbot responses using BioGPT | |
| def generate_medical_response(user_input): | |
| """ | |
| Generates a response using BioGPT model based on user input (symptoms). | |
| Args: | |
| user_input (str): The symptoms or health-related query from the user. | |
| Returns: | |
| str: The generated response from the BioGPT model. | |
| """ | |
| response = generator(user_input, | |
| max_length=150, | |
| num_return_sequences=1, | |
| pad_token_id=50256, | |
| truncation=True, | |
| temperature=0.7, | |
| top_k=50, | |
| top_p=0.95) | |
| return response[0]['generated_text'] | |
| def display_conversation_history(): | |
| """Display the conversation history in the app.""" | |
| if st.session_state.history: | |
| st.subheader("Conversation History") | |
| for message in st.session_state.history: | |
| st.write(message) | |
| def main(): | |
| """Main function to run the Streamlit app.""" | |
| # Input box for user to describe symptoms | |
| user_input = st.text_input("Describe your symptoms:") | |
| # When the 'Ask' button is pressed | |
| if st.button("Ask"): | |
| if user_input: # Check if user input is not empty | |
| # Store the user's input in the conversation history | |
| st.session_state.history.append(f"You: {user_input}") | |
| # Generate the chatbot's response using BioGPT | |
| bot_response = generate_medical_response(user_input) | |
| # Store the chatbot's response in the conversation history | |
| st.session_state.history.append(f"Bot: {bot_response}") | |
| # Clear the input box after submission (optional for improved UX) | |
| st.text_input("Describe your symptoms:", "", key="clear_input") | |
| # Display the conversation history on the Streamlit app | |
| display_conversation_history() | |
| if __name__ == "__main__": | |
| main() | |