Просмотр исходного кода

extraction du nom du modèle utilisé

main
Alex 2 недель назад
Родитель
Сommit
b2b688fc6d
1 измененных файлов: 34 добавлений и 8 удалений
  1. 34
    8
      main.py

+ 34
- 8
main.py Просмотреть файл

return parameters return parameters


def get_llm_model_info(model=OLLAMA_MODEL): 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: 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 # URL pour obtenir les informations du modèle
info_url = OLLAMA_URL.replace("/api/generate", "/api/show") info_url = OLLAMA_URL.replace("/api/generate", "/api/show")
payload = {"name": model} payload = {"name": model}
response = requests.post(info_url, json=payload) response = requests.post(info_url, json=payload)
if response.status_code == 200: if response.status_code == 200:
model_data = response.json() model_data = response.json()
# Gère le cas où model_data est une chaîne # Gère le cas où model_data est une chaîne
if isinstance(model_data, str): if isinstance(model_data, str):
model_data = json.loads(model_data) model_data = json.loads(model_data)
# Extrait les paramètres du template # Extrait les paramètres du template
parameters = model_data.get('parameters', '') parameters = model_data.get('parameters', '')
parsed_params = extract_parameters_from_template(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 # Extraction des informations principales
info = { info = {
"temperature": parsed_params.get('temperature', model_data.get("temperature", "Not available")), "temperature": parsed_params.get('temperature', model_data.get("temperature", "Not available")),
"name": model_name,
"num_ctx": parsed_params.get('num_ctx', "Not available"), "num_ctx": parsed_params.get('num_ctx', "Not available"),
"top_k": parsed_params.get('top_k', "Not available"), "top_k": parsed_params.get('top_k', "Not available"),
"top_p": parsed_params.get('top_p', "Not available"), "top_p": parsed_params.get('top_p', "Not available"),
"system": model_data.get("system", "Not available"), "system": model_data.get("system", "Not available"),
"modified_at": model_data.get("modified_at", "Not available"), "modified_at": model_data.get("modified_at", "Not available"),
} }
print(f"Informations du modèle récupérées : {info}")
return info return info
else: else:
print(f"Erreur lors de la récupération du modèle : {response.text}") print(f"Erreur lors de la récupération du modèle : {response.text}")
else: else:
formatted_date = 'Not available' 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: else:
return "Informations du modèle non disponibles" return "Informations du modèle non disponibles"


# Traitement des paragraphes complets # Traitement des paragraphes complets
for i, paragraph_text in enumerate(paragraphs, start=1): for i, paragraph_text in enumerate(paragraphs, start=1):
if( i > 2): break
print(f"{15 * '-'} Traduction du paragraphe {i}/{len(paragraphs)}...") print(f"{15 * '-'} Traduction du paragraphe {i}/{len(paragraphs)}...")
try: try:
result = send_to_ollama(paragraph_text, target_lang=TARGET_LANGUAGE) result = send_to_ollama(paragraph_text, target_lang=TARGET_LANGUAGE)

Загрузка…
Отмена
Сохранить