Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -248,58 +248,30 @@ Focus sur la Problématique : Gardez toujours à l'esprit la question centrale e
|
|
248 |
|
249 |
@app.route('/api/etude-texte', methods=['POST'])
|
250 |
def gpt_francais_cc():
|
251 |
-
"""Handles text analysis for French with multiple images (uses default model)."""
|
252 |
-
logging.info("Received request at /api/etude-texte")
|
253 |
if 'images' not in request.files:
|
254 |
-
logging.warning("No images were uploaded.")
|
255 |
return jsonify({"output": "Aucune image n'a été téléchargée."}), 400
|
256 |
|
257 |
images = request.files.getlist('images')
|
258 |
-
if not images
|
259 |
-
|
260 |
-
return jsonify({"output": "Aucune image sélectionnée ou les fichiers sont vides."}), 400
|
261 |
-
|
262 |
-
pre_prompt = "Analyse de manière exhaustive et structurée le contenu du devoir présenté dans les images suivantes. Identifie les questions, extrais le texte si présent, et réponds aux questions de manière détaillée en te basant uniquement sur les informations fournies dans les images."
|
263 |
-
|
264 |
-
contents = [pre_prompt]
|
265 |
-
valid_images_found = False
|
266 |
-
for image in images:
|
267 |
-
if image and image.filename:
|
268 |
-
logging.info(f"Processing image: {image.filename}")
|
269 |
-
try:
|
270 |
-
img_bytes = image.read()
|
271 |
-
if not img_bytes:
|
272 |
-
logging.warning(f"Skipping empty file: {image.filename}")
|
273 |
-
continue
|
274 |
-
|
275 |
-
img = Image.open(io.BytesIO(img_bytes))
|
276 |
-
img.verify()
|
277 |
-
img = Image.open(io.BytesIO(img_bytes))
|
278 |
-
|
279 |
-
contents.append(img)
|
280 |
-
valid_images_found = True
|
281 |
-
|
282 |
-
except (IOError, SyntaxError) as e:
|
283 |
-
logging.error(f"Error processing image {image.filename}: {e}. It might be corrupted or not a valid image format.")
|
284 |
-
except Exception as e:
|
285 |
-
logging.exception(f"Unexpected error processing image {image.filename}: {e}")
|
286 |
-
|
287 |
-
if not valid_images_found:
|
288 |
-
logging.warning("No valid images were found among the uploaded files.")
|
289 |
-
return jsonify({"output": "Aucune image valide n'a été trouvée parmi les fichiers téléchargés."}), 400
|
290 |
|
|
|
|
|
291 |
try:
|
292 |
-
#
|
293 |
-
|
294 |
-
|
295 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
296 |
return jsonify({"output": response.text}), 200
|
297 |
-
|
298 |
-
logging.warning(f"Content generation blocked: {e}")
|
299 |
-
return jsonify({"output": "La génération de contenu a été bloquée car la requête ou les images contenaient potentiellement du contenu non autorisé."}), 400
|
300 |
except Exception as e:
|
301 |
-
|
302 |
-
return jsonify({"output":"Une erreur interne est survenue lors de l'analyse des images.Veuillez réessayer."}), 500
|
303 |
|
304 |
|
305 |
if __name__ == '__main__':
|
|
|
248 |
|
249 |
@app.route('/api/etude-texte', methods=['POST'])
|
250 |
def gpt_francais_cc():
|
|
|
|
|
251 |
if 'images' not in request.files:
|
|
|
252 |
return jsonify({"output": "Aucune image n'a été téléchargée."}), 400
|
253 |
|
254 |
images = request.files.getlist('images')
|
255 |
+
if not images:
|
256 |
+
return jsonify({"output": "Aucune image sélectionnée."}), 400
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
257 |
|
258 |
+
prompt = "réponds aux questions présentes."
|
259 |
+
|
260 |
try:
|
261 |
+
# Préparer les images pour Gemini
|
262 |
+
content = [prompt]
|
263 |
+
for image in images:
|
264 |
+
if image.filename:
|
265 |
+
img_data = image.read()
|
266 |
+
img = Image.open(io.BytesIO(img_data))
|
267 |
+
content.append(img)
|
268 |
+
|
269 |
+
# Générer la réponse
|
270 |
+
response = default_model.generate_content(content)
|
271 |
return jsonify({"output": response.text}), 200
|
272 |
+
|
|
|
|
|
273 |
except Exception as e:
|
274 |
+
return jsonify({"output": "Erreur lors de l'analyse des images."}), 500
|
|
|
275 |
|
276 |
|
277 |
if __name__ == '__main__':
|