Spaces:
Sleeping
Sleeping
File size: 2,780 Bytes
78300fa a48d950 ac877e3 78300fa ca9adf5 78300fa ca9adf5 78300fa 596e12a ac877e3 4c0c8ad 9d6b1a8 4c0c8ad ac877e3 ca9adf5 590695e ac877e3 ca9adf5 590695e ac877e3 ca9adf5 ac877e3 ca9adf5 a48d950 ac877e3 ca9adf5 ac877e3 ca9adf5 ac877e3 590695e ca9adf5 ac877e3 ca9adf5 590695e ac877e3 590695e ac877e3 ca9adf5 9d6b1a8 ca9adf5 9d6b1a8 ca9adf5 9d6b1a8 ac877e3 8fcb8ea 590695e ca9adf5 a48d950 ca9adf5 ac877e3 590695e 9d6b1a8 590695e 9d6b1a8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
import os
import requests
import streamlit as st
from dotenv import load_dotenv
# Load environment variables from the .env file
load_dotenv()
# Get the API key from the .env file
API_KEY = os.getenv("GEMINI_API_KEY")
if API_KEY is None:
st.error("API key not found! Please set the GEMINI_API_KEY in your .env file.")
st.stop()
# Define the 3 questions for mood analysis
questions = [
"How are you feeling today in one word?",
"What's currently on your mind?",
"Do you feel calm or overwhelmed right now?",
]
# Function to query the Gemini API
def query_gemini_api(user_answers):
# Correct API URL
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key={API_KEY}"
headers = {'Content-Type': 'application/json'}
# Combine user responses into a single input
input_text = " ".join(user_answers)
# Payload for the API request
payload = {
"contents": [
{
"parts": [
{"text": f"Analyze the mood based on these inputs: {input_text}. Provide recommendations."}
]
}
]
}
try:
# Send POST request
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
result = response.json()
# Extract recommendations from the response
recommendations = result.get("contents", [{}])[0].get("parts", [{}])[0].get("text", "")
return recommendations
else:
# Handle API error
st.error(f"API Error {response.status_code}: {response.text}")
return None
except requests.exceptions.RequestException as e:
st.error(f"An error occurred: {e}")
return None
# Streamlit app
def main():
st.title("Mood Analysis and Suggestions")
st.write("Answer the following 3 questions to help us understand your mood:")
# Collect user responses
responses = []
for i, question in enumerate(questions):
response = st.text_input(f"{i+1}. {question}")
if response:
responses.append(response)
# Query the API if all questions are answered
if len(responses) == len(questions):
st.write("Processing your answers...")
# Query the Gemini API
recommendations = query_gemini_api(responses)
if recommendations:
st.write("### Recommendations to Improve Your Mood:")
st.write(recommendations)
else:
st.warning("Could not generate mood analysis. Please try again later.")
else:
st.info("Please answer all 3 questions to receive suggestions.")
if __name__ == "__main__":
main()
|