Public Access
33 lines
1.6 KiB
Python
33 lines
1.6 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
from openai import OpenAI
|
|
from groq import Groq
|
|
from google import genai
|
|
|
|
# Chargement des variables d'environnement en premier
|
|
load_dotenv()
|
|
|
|
local_client = OpenAI(base_url="http://192.168.1.20:11434/v1", api_key="ollama")
|
|
groq_client = Groq(api_key=os.getenv("GROQ_API_KEY"))
|
|
gemini_client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))
|
|
|
|
def interroger_gemini_cascade(prompt):
|
|
modeles_a_tester = ["gemini-3.1-pro-preview", "gemini-3.1-pro", "gemini-2.5-pro", "gemini-3.7-flash", "gemini-3.6-flash"]
|
|
for nom_modele in modeles_a_tester:
|
|
try:
|
|
config = {"system_instruction": "Réponds toujours dans la langue de l'utilisateur. Utilise exclusivement le format Markdown pour les tableaux et la mise en forme. N'utilise JAMAIS de code LaTeX."}
|
|
chat = gemini_client.chats.create(model=nom_modele, config=config)
|
|
ia_response = chat.send_message(prompt)
|
|
if not ia_response.text:
|
|
raise Exception("Réponse vide de Google.")
|
|
return ia_response.text, nom_modele
|
|
except Exception:
|
|
continue
|
|
raise Exception("Tous les modèles Gemini sont indisponibles actuellement.")
|
|
|
|
def appeler_groq_api(prompt_text):
|
|
resp = groq_client.chat.completions.create(
|
|
messages=[{"role": "system", "content": "Réponds dans la langue de l'utilisateur. Tu as accès aux recherches web fournies. Utilise uniquement Markdown. Pas de code LaTeX."}, {"role": "user", "content": prompt_text}],
|
|
model="llama-3.3-70b-versatile"
|
|
)
|
|
return resp.choices[0].message.content, "#f97316", "GROQ", "llama-3.3-70b" |