Spaces:
Sleeping
Sleeping
from flask import Flask, render_template, request, jsonify | |
import requests | |
import os | |
app = Flask(__name__) | |
# Get the API key from an environment variable (more secure) | |
GEMINI_API_KEY = os.environ.get("GEMINI_API_KEY") | |
if not GEMINI_API_KEY: | |
raise ValueError("No GEMINI_API_KEY environment variable set!") | |
def index(): | |
if request.method == 'POST': | |
user_message = request.form.get('message') | |
if not user_message: | |
return "No message provided", 400 | |
# Construct the Gemini API request | |
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={GEMINI_API_KEY}" | |
headers = {'Content-Type': 'application/json'} | |
data = { | |
"contents": [{ | |
"parts": [{"text": user_message}] | |
}] | |
} | |
try: | |
response = requests.post(url, headers=headers, json=data) | |
response.raise_for_status() # Raise an exception for bad status codes | |
# Extract text from AI response (adjust based on actual response format) | |
ai_response_data = response.json() | |
try: | |
ai_text = ai_response_data['candidates'][0]['content']['parts'][0]['text'] | |
except (KeyError, IndexError): | |
ai_text = "Error extracting text from AI response." | |
return render_template('index.html', message=user_message, ai_response=ai_text) | |
except requests.exceptions.RequestException as e: | |
print(f"API request failed: {e}") | |
return f"API request failed: {e}", 500 | |
else: | |
return render_template('index.html') | |
if __name__ == '__main__': | |
app.run(debug=False, host="0.0.0.0", port=7860) #Remove debug=True for production | |