from flask import Flask, render_template, request, jsonify import os from PIL import Image import tempfile from google import genai from google.genai import types app = Flask(__name__) # Configuration Gemini token = os.environ.get("TOKEN") client = genai.Client(api_key=token) safety_settings = [ {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"}, ] mm = """resous cet exercice. tu répondras en détaillant au maximum ton procédé de calcul.En français stp et sachant qu'il s'agit d'un devoir niveau terminal s je veux donc une présentation type de cela. Réponds donc en me donnant directement le devoir et rien d'autre. """ model_name = "gemini-2.0-flash-thinking-exp" #model = genai.GenerativeModel( # model_name="gemini-2.0-flash-thinking-exp", # safety_settings=safety_settings #) @app.route('/') def home(): return render_template('index.html') @app.route('/generate', methods=['POST']) def generate(): if 'image' not in request.files: return jsonify({'error': 'No image uploaded'}), 400 image_file = request.files['image'] # Sauvegarder temporairement l'image with tempfile.NamedTemporaryFile(delete=False) as temp_file: image_file.save(temp_file.name) try: image = Image.open(temp_file.name) # Générer le contenu #response = model.generate_content([mm, image]) response = client.models.generate_content( model=model_name, contents=[ image, mm ] ) #result = response.text result = response.candidates[0].content.parts[1].text print(result) return jsonify({"result": result}) except Exception as e: return jsonify({'error': str(e)}), 500 finally: # Nettoyer le fichier temporaire os.unlink(temp_file.name) if __name__ == '__main__': app.run(debug=True)