Spaces:
Running
Running
# 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() | |