Public Access
36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
import os
|
|
from openai import OpenAI
|
|
from modules.logger import log_event
|
|
|
|
def interroger_openrouter(prompt_securise):
|
|
"""Module dédié à OpenRouter.ai pour accéder à +100 modèles gratuitement."""
|
|
api_key = os.getenv("OPENROUTER_API_KEY")
|
|
if not api_key: raise Exception("Clé API OpenRouter manquante.")
|
|
|
|
# Client compatible OpenAI pointant vers l'agrégateur OpenRouter
|
|
client = OpenAI(base_url="https://openrouter.ai/api/v1", api_key=api_key)
|
|
|
|
# Liste de modèles 100% gratuits et performants sur OpenRouter
|
|
modeles = [
|
|
"meta-llama/llama-3.1-8b-instruct:free",
|
|
"mistralai/mistral-7b-instruct:free",
|
|
"google/gemma-2-9b-it:free",
|
|
"microsoft/phi-3-mini-128k-instruct:free"
|
|
]
|
|
|
|
for modele in modeles:
|
|
try:
|
|
resp = client.chat.completions.create(
|
|
model=modele,
|
|
messages=[
|
|
{"role": "system", "content": "Réponds en français et en format Markdown."},
|
|
{"role": "user", "content": prompt_securise}
|
|
]
|
|
)
|
|
if resp and resp.choices:
|
|
log_event("INFO", f"OPENROUTER-{modele}", "Succès de la requête.")
|
|
return resp.choices[0].message.content, "#8b5cf6", "OPENROUTER (Gratuit)", modele
|
|
except Exception as e:
|
|
log_event("WARNING", f"OPENROUTER-{modele}", f"Erreur: {e}")
|
|
|
|
raise Exception("Tous les modèles gratuits OpenRouter ont échoué.") |