michaelmosesbot / app.py
micymike's picture
Update app.py
a2f5314 verified
Raw
History Blame Contribute Delete
3.36 kB
import os
import time
import random
from flask import Flask, render_template, jsonify, request
from dotenv import load_dotenv
from flask_cors import CORS
import google.generativeai as genai
# Initialize Flask app
app = Flask(__name__)
CORS(app)
load_dotenv()
# Configure the API key
genai.configure(api_key=os.getenv('GEMINI_API_KEY'))
model = genai.GenerativeModel('gemini-pro')
vision_model = genai.GenerativeModel('gemini-pro-vision')
def generate_question_suggestion():
suggestions = [
"What are some simple exercises I can do at home?",
"How can I improve my sleep quality?",
"What are the signs of dehydration I should watch out for?",
"Can you explain the importance of regular health check-ups?",
"What are some heart-healthy foods I should include in my diet?",
"How can I manage stress effectively?",
"What are the common side effects of my medications?",
"How can I maintain good hygiene to prevent infections?",
"What are some memory exercises I can practice daily?",
"How can I make my home safer to prevent falls?",
"What should I include in a balanced meal for my age?",
"How often should I have my vision and hearing checked?",
"What are some social activities suitable for seniors in my area?",
"How can I keep my brain active and healthy?",
"What are the benefits of staying socially active in old age?"
]
return random.choice(suggestions)
# Flask routes
@app.route("/")
def index():
return render_template('chat.html')
@app.route("/get", methods=["POST"])
def chat():
try:
msg = request.form["msg"]
input_text = msg
print(f"Received message: {input_text}")
# Simulate processing delay
time.sleep(1)
# Retrieve response from the Gemini model
response = model.generate_content(input_text)
generated_text = response.text
print(f"Response: {generated_text}")
return jsonify({"response": generated_text})
except Exception as e:
print(f"Error: {e}")
return jsonify({"error": "An error occurred while processing your request. Please try again."}), 500
@app.route("/get_suggestion", methods=["GET"])
def get_suggestion():
try:
suggestion = generate_question_suggestion()
return jsonify({"suggestion": suggestion})
except Exception as e:
print(f"Error generating suggestion: {e}")
return jsonify({"error": "Unable to generate a suggestion at this time."}), 500
# Route to handle voice input
@app.route("/voice_input", methods=["POST"])
def voice_input():
try:
data = request.json
voice_input_text = data["voice_input"]
print(f"Voice input received: {voice_input_text}")
# Simulate processing delay
time.sleep(1)
# Retrieve response from the Gemini model
response = model.generate_content(voice_input_text)
generated_text = response.text
print(f"Response: {generated_text}")
return jsonify({"response": generated_text})
except Exception as e:
print(f"Error: {e}")
return jsonify({"error": "An error occurred while processing your voice input. Please try again."}), 500
if __name__ == '__main__':
app.run(host="0.0.0.0", port=8080, debug=True)