Update app.py
Browse files
app.py
CHANGED
|
@@ -5,8 +5,8 @@ import time
|
|
| 5 |
import re # Pour la détection d'URL YouTube
|
| 6 |
from flask import Flask, request, session, jsonify, redirect, url_for, flash, render_template
|
| 7 |
from dotenv import load_dotenv
|
| 8 |
-
|
| 9 |
-
|
| 10 |
import requests
|
| 11 |
from werkzeug.utils import secure_filename
|
| 12 |
import markdown # Pour convertir la réponse Markdown en HTML
|
|
@@ -55,7 +55,7 @@ try:
|
|
| 55 |
# Initialise le client pour les opérations sur les fichiers (upload vidéo avec polling)
|
| 56 |
gemini_client = genai.Client(api_key=gemini_api_key)
|
| 57 |
# Configure également l'espace de noms global pour GenerativeModel, etc.
|
| 58 |
-
|
| 59 |
|
| 60 |
# Vérifie si les modèles requis sont disponibles
|
| 61 |
print("Vérification des modèles Gemini disponibles...")
|
|
@@ -384,15 +384,37 @@ Réponse:"""
|
|
| 384 |
print(f" Modèle sélectionné: {selected_model_name}")
|
| 385 |
|
| 386 |
# Crée l'instance du modèle spécifique pour cette requête
|
| 387 |
-
active_model =
|
| 388 |
model_name=selected_model_name,
|
| 389 |
-
|
| 390 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 391 |
)
|
| 392 |
|
| 393 |
print(f" Envoi de la requête à {selected_model_name} ({len(contents_for_gemini)} messages/tours)...")
|
| 394 |
# Appel API (non-streamé pour correspondre au code précédent)
|
| 395 |
-
response = active_model
|
| 396 |
|
| 397 |
# --- Traitement de la Réponse ---
|
| 398 |
response_text_raw = ""
|
|
|
|
| 5 |
import re # Pour la détection d'URL YouTube
|
| 6 |
from flask import Flask, request, session, jsonify, redirect, url_for, flash, render_template
|
| 7 |
from dotenv import load_dotenv
|
| 8 |
+
from google import genai
|
| 9 |
+
from google.genai import types
|
| 10 |
import requests
|
| 11 |
from werkzeug.utils import secure_filename
|
| 12 |
import markdown # Pour convertir la réponse Markdown en HTML
|
|
|
|
| 55 |
# Initialise le client pour les opérations sur les fichiers (upload vidéo avec polling)
|
| 56 |
gemini_client = genai.Client(api_key=gemini_api_key)
|
| 57 |
# Configure également l'espace de noms global pour GenerativeModel, etc.
|
| 58 |
+
|
| 59 |
|
| 60 |
# Vérifie si les modèles requis sont disponibles
|
| 61 |
print("Vérification des modèles Gemini disponibles...")
|
|
|
|
| 384 |
print(f" Modèle sélectionné: {selected_model_name}")
|
| 385 |
|
| 386 |
# Crée l'instance du modèle spécifique pour cette requête
|
| 387 |
+
active_model = gemini_client.models.generate_content(
|
| 388 |
model_name=selected_model_name,
|
| 389 |
+
contents = contents_for_gemini
|
| 390 |
+
config = types.GenerateContentConfig(
|
| 391 |
+
system_instruction=SYSTEM_INSTRUCTION,
|
| 392 |
+
safety_settings=[
|
| 393 |
+
|
| 394 |
+
types.SafetySetting(
|
| 395 |
+
category=types.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
|
| 396 |
+
threshold=types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
|
| 397 |
+
),
|
| 398 |
+
types.SafetySetting(
|
| 399 |
+
category=types.HarmCategory.HARM_CATEGORY_HARASSMENT,
|
| 400 |
+
threshold=types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
|
| 401 |
+
),
|
| 402 |
+
types.SafetySetting(
|
| 403 |
+
category=types.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
|
| 404 |
+
threshold=types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
|
| 405 |
+
),
|
| 406 |
+
types.SafetySetting(
|
| 407 |
+
category=types.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
|
| 408 |
+
threshold=types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
|
| 409 |
+
)
|
| 410 |
+
]
|
| 411 |
+
)
|
| 412 |
+
),
|
| 413 |
)
|
| 414 |
|
| 415 |
print(f" Envoi de la requête à {selected_model_name} ({len(contents_for_gemini)} messages/tours)...")
|
| 416 |
# Appel API (non-streamé pour correspondre au code précédent)
|
| 417 |
+
response = active_model
|
| 418 |
|
| 419 |
# --- Traitement de la Réponse ---
|
| 420 |
response_text_raw = ""
|