llm_ticket3/llm_classes/mistral_large.py
2025-04-30 17:45:17 +02:00

55 lines
1.8 KiB
Python

from .base_llm import BaseLLM
import requests
import os
class MistralLarge(BaseLLM):
def __init__(self):
super().__init__("mistral-large-latest")
self.configurer(temperature=0.2, top_p=1, n=1)
def urlBase(self) -> str:
return "https://api.mistral.ai/v1/"
def cleAPI(self) -> str:
return "2iGzTzE9csRQ9IoASoUjplHwEjA200Vh"
def urlFonction(self) -> str:
return "chat/completions"
def _preparer_contenu(self, question: str) -> dict:
return {
"model": self.modele,
"messages": [
{"role": "system", "content": self.prompt_system},
{"role": "user", "content": question}
],
**self.params
}
def _traiter_reponse(self, reponse: requests.Response) -> str:
data = reponse.json()
return data["choices"][0]["message"]["content"]
def interroger_avec_image(self, image_path: str, question: str) -> str:
"""
Ce modèle ne supporte pas directement l'analyse d'images, cette méthode est fournie
pour la compatibilité avec l'interface BaseLLM mais utilise uniquement le texte.
Args:
image_path: Chemin vers l'image à analyser (ignoré par ce modèle)
question: Question ou instructions pour l'analyse
Returns:
Réponse du modèle à la question, en indiquant que l'analyse d'image n'est pas supportée
"""
image_name = os.path.basename(image_path)
prompt = f"""[Note: Ce modèle n'a pas accès à l'image demandée: {image_name}]
Question concernant l'image:
{question}
Veuillez noter que je ne peux pas traiter directement les images. Voici une réponse basée uniquement sur le texte de la question."""
return self.interroger(prompt)