Compare commits
2 Commits
d338d4c9c2
...
57c40fc346
Author | SHA1 | Date |
---|---|---|
Miguel | 57c40fc346 | |
Miguel | 9d2dba334f |
Binary file not shown.
|
@ -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)
|
|
@ -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)
|
|
@ -4,7 +4,8 @@ import os
|
|||
import re
|
||||
import logging
|
||||
from openai_api_key import api_key
|
||||
from 2_master_export2translate import transformar_texto
|
||||
from x2_master_export2translate import transformar_texto
|
||||
import ollama
|
||||
|
||||
client = OpenAI(api_key=api_key())
|
||||
|
||||
|
@ -22,7 +23,8 @@ IDIOMAS = {
|
|||
def configurar_logger():
|
||||
logger = logging.getLogger("translate_logger")
|
||||
logger.setLevel(logging.DEBUG) # Cambiado a DEBUG para más información
|
||||
fh = logging.FileHandler("/data/translate_log.log", encoding="utf-8")
|
||||
os.makedirs(".\\data", exist_ok=True)
|
||||
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)
|
||||
|
@ -67,14 +69,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(texts, source_lang, target_lang):
|
||||
def translate_batch_openai(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-3.5-turbo",
|
||||
model= "gpt-4o-mini", # "gpt-3.5-turbo",
|
||||
messages=[
|
||||
{"role": "system", "content": system_prompt},
|
||||
{
|
||||
|
@ -89,6 +91,17 @@ def translate_batch(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)
|
||||
|
@ -137,11 +150,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):
|
||||
for start_idx in range(0, num_texts , batch_size): # num_texts
|
||||
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(batch_texts, 'Italian', target_lang)
|
||||
batch_translations = translate_batch_openai(batch_texts, 'Italian', target_lang)
|
||||
translations.extend(batch_translations)
|
||||
|
||||
logger.info(f"Número total de traducciones recibidas: {len(translations)}")
|
||||
|
@ -155,15 +168,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), '/data/3_master_export2translate_translated.xlsx')
|
||||
output_path = os.path.join(os.path.dirname(file_path), '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 = 20
|
||||
translate_file = "/data/2_master_export2translate.xlsx"
|
||||
batch_size = 5
|
||||
translate_file = ".\\data\\2_master_export2translate.xlsx"
|
||||
|
||||
mostrar_idiomas()
|
||||
seleccion_idioma = int(input("Introduce el número del idioma de destino: "))
|
|
@ -5,7 +5,8 @@ import logging
|
|||
from manejoArchivos import select_file
|
||||
|
||||
def configurar_logger(ruta_log):
|
||||
logger = logging.getLogger('/data/importacion_logger')
|
||||
os.makedirs(".\\data", exist_ok=True)
|
||||
logger = logging.getLogger('.\\data\\importacion_logger')
|
||||
logger.setLevel(logging.INFO)
|
||||
fh = logging.FileHandler(ruta_log, encoding='utf-8')
|
||||
fh.setLevel(logging.INFO)
|
||||
|
@ -63,6 +64,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)
|
|
@ -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)
|
Loading…
Reference in New Issue