|
|
|
@ -54,8 +54,29 @@ 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} |
|
|
|
@ -73,16 +94,20 @@ def get_llm_model_info(model=OLLAMA_MODEL): |
|
|
|
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}<br//>\nSystem: {info['system']}<br//>\nTemperature: {info['temperature']}<br//>\nDate de modification: {formatted_date}" |
|
|
|
return f"LLM Modèle: {info['name']}<br//>\nDate de modification: {formatted_date}<br//>\nSystem: {info['system']}<br//>\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) |
|
|
|
|