Compare commits

..

No commits in common. "57c40fc346a98d994a4f18fa9bca12804f2d7624" and "d338d4c9c20847bcf0ff9d25d36f6690e03cd84f" have entirely different histories.

6 changed files with 16 additions and 30 deletions

View File

@ -84,7 +84,7 @@ def importar(archivo_maestro, archivo_importacion):
if __name__ == "__main__":
# Cargar el archivo maestro y el archivo de importación
archivo_maestro = ".\\data\\1_hmi_master_translates.xlsx"
archivo_maestro = "/data/1_hmi_master_translates.xlsx"
archivo_importacion = select_file("xlsx")
if archivo_importacion:
importar(archivo_maestro, archivo_importacion)

View File

@ -28,10 +28,10 @@ def exportar_para_traduccion(archivo_maestro):
df_export[columna] = df_maestro[columna].apply(lambda x: transformar_texto(str(x)) if pd.notnull(x) else x)
# Guardar el archivo exportado
ruta_export = os.path.join(os.path.dirname(archivo_maestro), '.\\data\\2_master_export2translate.xlsx')
ruta_export = os.path.join(os.path.dirname(archivo_maestro), '/data/2_master_export2translate.xlsx')
df_export.to_excel(ruta_export, index=False)
print(f"Archivo exportado para traducción: {ruta_export}")
if __name__ == "__main__":
archivo_maestro = ".\\data\\1_hmi_master_translates.xlsx"
archivo_maestro = "/data/1_hmi_master_translates.xlsx"
exportar_para_traduccion(archivo_maestro)

View File

@ -4,8 +4,7 @@ import os
import re
import logging
from openai_api_key import api_key
from x2_master_export2translate import transformar_texto
import ollama
from 2_master_export2translate import transformar_texto
client = OpenAI(api_key=api_key())
@ -23,8 +22,7 @@ IDIOMAS = {
def configurar_logger():
logger = logging.getLogger("translate_logger")
logger.setLevel(logging.DEBUG) # Cambiado a DEBUG para más información
os.makedirs(".\\data", exist_ok=True)
fh = logging.FileHandler(".\\data\\translate_log.log", encoding="utf-8")
fh = logging.FileHandler("/data/translate_log.log", encoding="utf-8")
fh.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
fh.setFormatter(formatter)
@ -69,14 +67,14 @@ def read_system_prompt():
logger.warning("Archivo system_prompt.txt no encontrado. Usando prompt por defecto.")
return "You are a translator."
def translate_batch_openai(texts, source_lang, target_lang):
def translate_batch(texts, source_lang, target_lang):
joined_text = "\n".join(texts)
system_prompt = read_system_prompt()
logger.info(
f"Solicitando traducción de {source_lang} a {target_lang} para el lote de textos:\n{joined_text}"
)
response = client.chat.completions.create(
model= "gpt-4o-mini", # "gpt-3.5-turbo",
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": system_prompt},
{
@ -91,17 +89,6 @@ def translate_batch_openai(texts, source_lang, target_lang):
logger.info(f"Respuestas recibidas:\n{translations}")
return translations
def translate_batch(texts, source_lang, target_lang):
joined_text = "\n".join(texts)
system_prompt = read_system_prompt()
logger.info(
f"Solicitando traducción de {source_lang} a {target_lang} para el lote de textos:\n{joined_text}"
)
response = ollama.generate(model='llama3.1', prompt=f"Translate the following texts from {source_lang} to {target_lang} while preserving special fields like <> and <#>. {system_prompt}: \n\n{joined_text}")
translations = response['response'].strip().split("\n")
logger.info(f"Respuestas recibidas:\n{translations}")
return translations
def texto_requiere_traduccion(texto):
palabras = re.findall(r"\b\w{4,}\b", texto)
@ -150,11 +137,11 @@ def main(file_path, target_lang_code,target_lang, traducir_todo, batch_size=10):
print(f"Número total de textos a traducir: {num_texts}")
translations = []
for start_idx in range(0, num_texts , batch_size): # num_texts
for start_idx in range(0, num_texts, batch_size):
end_idx = min(start_idx + batch_size, num_texts)
batch_texts = texts_to_translate[start_idx:end_idx]
print(f"Traduciendo : celdas desde: {start_idx} a :{end_idx}.")
batch_translations = translate_batch_openai(batch_texts, 'Italian', target_lang)
batch_translations = translate_batch(batch_texts, 'Italian', target_lang)
translations.extend(batch_translations)
logger.info(f"Número total de traducciones recibidas: {len(translations)}")
@ -168,15 +155,15 @@ def main(file_path, target_lang_code,target_lang, traducir_todo, batch_size=10):
else:
logger.error(f"No hay traducción disponible para el índice {index}")
output_path = os.path.join(os.path.dirname(file_path), '3_master_export2translate_translated.xlsx')
output_path = os.path.join(os.path.dirname(file_path), '/data/3_master_export2translate_translated.xlsx')
df.to_excel(output_path, index=False)
logger.info(f"Archivo traducido guardado en: {output_path}")
print(f"Archivo traducido guardado en: {output_path}")
if __name__ == "__main__":
batch_size = 5
translate_file = ".\\data\\2_master_export2translate.xlsx"
batch_size = 20
translate_file = "/data/2_master_export2translate.xlsx"
mostrar_idiomas()
seleccion_idioma = int(input("Introduce el número del idioma de destino: "))

View File

@ -5,8 +5,7 @@ import logging
from manejoArchivos import select_file
def configurar_logger(ruta_log):
os.makedirs(".\\data", exist_ok=True)
logger = logging.getLogger('.\\data\\importacion_logger')
logger = logging.getLogger('/data/importacion_logger')
logger.setLevel(logging.INFO)
fh = logging.FileHandler(ruta_log, encoding='utf-8')
fh.setLevel(logging.INFO)
@ -64,6 +63,6 @@ def importar_traduccion(archivo_maestro, archivo_traduccion):
if __name__ == "__main__":
archivo_maestro = ".\\data\\1_hmi_master_translates.xlsx"
archivo_traduccion = ".\\data\\2_master_export2translate.xlsx"
archivo_maestro = "/data/1_hmi_master_translates.xlsx"
archivo_traduccion = "/data/2_master_export2translate.xlsx"
importar_traduccion(archivo_maestro, archivo_traduccion)

View File

@ -96,7 +96,7 @@ def update_from_master(archivo_maestro, archivo_to_update):
print(f"Se han actualizado las filas en {archivo_to_update} desde el archivo maestro. Detalles de los cambios en {nombre_log}")
if __name__ == "__main__":
archivo_maestro = ".\\data\\1_hmi_master_translates.xlsx"
archivo_maestro = "/data/1_hmi_master_translates.xlsx"
archivo_to_update = select_file("xlsx")
if archivo_to_update:
update_from_master(archivo_maestro, archivo_to_update)