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 | |