Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import torch | |
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| # Ensure you're logged in | |
| tokenizer = AutoTokenizer.from_pretrained("google/gemma-7b-it", use_auth_token=True) | |
| model = AutoModelForCausalLM.from_pretrained("google/gemma-7b-it", use_auth_token=True) | |
| # Set up the Streamlit page configuration | |
| st.set_page_config(page_title="AI Companion Chatbot", layout="centered") | |
| # Title of the application | |
| st.title("AI Companion Chatbot") | |
| # Add a brief description | |
| st.markdown(""" | |
| Welcome to the AI Companion Chatbot! This chatbot is designed to offer therapeutic conversations, | |
| providing a safe and empathetic space for you to express your feelings. | |
| """) | |
| # Create a text input box for user input | |
| user_input = st.text_area("How are you feeling today?", "") | |
| # Define the function to generate the response | |
| def generate_response(user_input): | |
| prompt = f""" | |
| You are a therapist with a strong focus on providing practical, actionable advice. | |
| Rules: | |
| 1. Respond in a supportive, empathetic, and non-judgmental manner to the following statement. | |
| 2. Offer at least 3 **specific** strategies or coping techniques that the user can try immediately to manage or alleviate their anxiety. | |
| These could include emotional regulation techniques (like grounding exercises, breathing techniques), | |
| self-care practices (like self-compassion or taking breaks), or mindset shifts (like reframing negative thoughts or focusing on what can be controlled). | |
| 3. Be very descriptive. Use bullet points to clearly state actionable steps. | |
| 4. Do not use "I" or reference the first person perspective. | |
| Base your response on how the user is feeling: {user_input} | |
| """ | |
| inputs = tokenizer(prompt, return_tensors="pt").to("cuda") | |
| # Generate the output | |
| outputs = model.generate(**inputs, max_length=350, num_return_sequences=1) | |
| response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| return response | |
| # Display chatbot's response | |
| if st.button("Send"): | |
| if user_input: # Check if the user has provided input | |
| # Get the response from the model | |
| response = generate_response(user_input) | |
| # Show the response | |
| st.text_area("AI Companion Response:", response, height=200) | |
| else: | |
| st.warning("Please enter something to continue the conversation.") | |