Update app.py
Browse files
app.py
CHANGED
|
@@ -126,9 +126,6 @@ def cleanup_gemini_file(file_uri):
|
|
| 126 |
# Initialize database on startup
|
| 127 |
init_db()
|
| 128 |
|
| 129 |
-
# --- Prompts - À REMPLACER PAR VOS VRAIS PROMPTS ---
|
| 130 |
-
|
| 131 |
-
|
| 132 |
|
| 133 |
# --- Prompts (Keep them as they are) ---
|
| 134 |
prompt_tableau = """
|
|
@@ -226,8 +223,6 @@ Ainsi, ... (axe 2) est lié (e) à ... (sous-axe 1) et à ... (sous-axe 2).
|
|
| 226 |
|
| 227 |
Somme toute, ... (titre du texte) organise son sens autour de … (axe 1) et de ... (axe 2). De ces deux centres d'intérêt découlent respectivement, d'une part, … (sous-axe 1 de l'axe 1) et ... (sous-axe 2 de l'axe 1) et, d'autre part, … (sous-axe 1 de l'axe 2) et … (sous-axe 2 de l'axe 2). À travers ce texte, ...(nom de l'auteur) nous ... (opinion personnelle). Une telle optique est perceptible dans la logique de... (nom de l'auteur nous permettant de faire un rapprochement thématique), dans son œuvre ...(titre de l'œuvre), dans lequel il aborde… (bref résumé de l'œuvre en question qui peut être facultatif).
|
| 228 |
"""
|
| 229 |
-
|
| 230 |
-
|
| 231 |
# --- End Prompts ---
|
| 232 |
|
| 233 |
generate_config = types.GenerateContentConfig(
|
|
@@ -393,7 +388,19 @@ def analyze():
|
|
| 393 |
|
| 394 |
# Convert image to base64 for storage
|
| 395 |
img_buffer = io.BytesIO()
|
| 396 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 397 |
image_base64 = base64.b64encode(img_buffer.getvalue()).decode('utf-8')
|
| 398 |
|
| 399 |
except (IOError, SyntaxError) as e:
|
|
|
|
| 126 |
# Initialize database on startup
|
| 127 |
init_db()
|
| 128 |
|
|
|
|
|
|
|
|
|
|
| 129 |
|
| 130 |
# --- Prompts (Keep them as they are) ---
|
| 131 |
prompt_tableau = """
|
|
|
|
| 223 |
|
| 224 |
Somme toute, ... (titre du texte) organise son sens autour de … (axe 1) et de ... (axe 2). De ces deux centres d'intérêt découlent respectivement, d'une part, … (sous-axe 1 de l'axe 1) et ... (sous-axe 2 de l'axe 1) et, d'autre part, … (sous-axe 1 de l'axe 2) et … (sous-axe 2 de l'axe 2). À travers ce texte, ...(nom de l'auteur) nous ... (opinion personnelle). Une telle optique est perceptible dans la logique de... (nom de l'auteur nous permettant de faire un rapprochement thématique), dans son œuvre ...(titre de l'œuvre), dans lequel il aborde… (bref résumé de l'œuvre en question qui peut être facultatif).
|
| 225 |
"""
|
|
|
|
|
|
|
| 226 |
# --- End Prompts ---
|
| 227 |
|
| 228 |
generate_config = types.GenerateContentConfig(
|
|
|
|
| 388 |
|
| 389 |
# Convert image to base64 for storage
|
| 390 |
img_buffer = io.BytesIO()
|
| 391 |
+
|
| 392 |
+
# Convert RGBA to RGB if necessary for JPEG compatibility
|
| 393 |
+
if image.mode in ('RGBA', 'LA', 'P'):
|
| 394 |
+
# Create white background
|
| 395 |
+
background = Image.new('RGB', image.size, (255, 255, 255))
|
| 396 |
+
if image.mode == 'P':
|
| 397 |
+
image = image.convert('RGBA')
|
| 398 |
+
background.paste(image, mask=image.split()[-1] if image.mode == 'RGBA' else None)
|
| 399 |
+
image = background
|
| 400 |
+
elif image.mode != 'RGB':
|
| 401 |
+
image = image.convert('RGB')
|
| 402 |
+
|
| 403 |
+
image.save(img_buffer, format='JPEG', quality=95)
|
| 404 |
image_base64 = base64.b64encode(img_buffer.getvalue()).decode('utf-8')
|
| 405 |
|
| 406 |
except (IOError, SyntaxError) as e:
|