extraction du nom du modèle utilisé
This commit is contained in:
parent
1f0c73e0c9
commit
b2b688fc6d
42
main.py
42
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}<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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user