Docfile commited on
Commit
114b9ec
·
verified ·
1 Parent(s): 5e68f4c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -7
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
- import google.generativeai as genai
9
- import google.generativeai.types as genai_types # Important pour FileData, Part, etc.
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
- genai.configure(api_key=gemini_api_key)
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 = genai.GenerativeModel(
388
  model_name=selected_model_name,
389
- safety_settings=SAFETY_SETTINGS,
390
- system_instruction=SYSTEM_INSTRUCTION
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.generate_content(contents_for_gemini)
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 = ""