diff --git a/main.py b/main.py index c0b0684..5c2d670 100644 --- a/main.py +++ b/main.py @@ -54,35 +54,60 @@ def extract_parameters_from_template(template_str): return parameters def get_llm_model_info(model=OLLAMA_MODEL): - """Extrait les informations du modèle LLM depuis Ollama.""" + """ + Extrait les informations du modèle LLM depuis Ollama, y compris le nom depuis la ligne FROM du Modelfile. + + @param model: Nom du modèle à interroger. + @type model: str + @return: Dictionnaire contenant les informations du modèle, ou None en cas d'erreur. + @rtype: dict | None + """ try: + # Chemin vers le fichier Modelfile (supposé être dans le même répertoire que le script) + modelfile_path = os.path.join(os.path.dirname(__file__), "Modelfile") + + # Initialisation de model_name + model_name = "none" + + # Lecture du fichier Modelfile pour extraire le nom du modèle + if os.path.exists(modelfile_path): + with open(modelfile_path, 'r', encoding='utf-8') as file: + for line in file: + if line.strip().startswith('FROM '): + model_name = line.strip().split('FROM ')[1].strip() + break + # URL pour obtenir les informations du modèle info_url = OLLAMA_URL.replace("/api/generate", "/api/show") payload = {"name": model} - + response = requests.post(info_url, json=payload) - + if response.status_code == 200: model_data = response.json() - + # Gère le cas où model_data est une chaîne if isinstance(model_data, str): model_data = json.loads(model_data) - + # Extrait les paramètres du template parameters = model_data.get('parameters', '') parsed_params = extract_parameters_from_template(parameters) - + + # Extraction du nom depuis la ligne FROM + modelfile_content = model_data.get('Modelfile', '') + # Extraction des informations principales info = { "temperature": parsed_params.get('temperature', model_data.get("temperature", "Not available")), + "name": model_name, "num_ctx": parsed_params.get('num_ctx', "Not available"), "top_k": parsed_params.get('top_k', "Not available"), "top_p": parsed_params.get('top_p', "Not available"), "system": model_data.get("system", "Not available"), "modified_at": model_data.get("modified_at", "Not available"), } - + print(f"Informations du modèle récupérées : {info}") return info else: print(f"Erreur lors de la récupération du modèle : {response.text}") @@ -111,7 +136,7 @@ def display_llm_info(): else: formatted_date = 'Not available' - return f"LLM Modèle: {OLLAMA_MODEL}
\nSystem: {info['system']}
\nTemperature: {info['temperature']}
\nDate de modification: {formatted_date}" + return f"LLM Modèle: {info['name']}
\nDate de modification: {formatted_date}
\nSystem: {info['system']}
\nTemperature: {info['temperature']}" else: return "Informations du modèle non disponibles" @@ -265,6 +290,7 @@ def main(): # Traitement des paragraphes complets for i, paragraph_text in enumerate(paragraphs, start=1): + if( i > 2): break print(f"{15 * '-'} Traduction du paragraphe {i}/{len(paragraphs)}...") try: result = send_to_ollama(paragraph_text, target_lang=TARGET_LANGUAGE)