Corregidos algunos errores para Siemens

This commit is contained in:
Miguel 2024-12-18 16:31:30 +01:00
parent 2d21e09f19
commit f2a410485b
7 changed files with 30 additions and 23 deletions

View File

@ -1,12 +1,12 @@
{ {
"codigo_tipo_PLC": "allenbradley", "codigo_tipo_PLC": "siemens",
"codigo_columna_maestra": "en-US", "codigo_columna_maestra": "it-IT",
"codigo_idioma_seleccionado": "it-IT", "codigo_idioma_seleccionado": "es-ES",
"codigo_idioma_secundario": "en-US", "codigo_idioma_secundario": "en-GB",
"work_dir": "C:/Trabajo/VM/35 - 9.4023 - Shibuya - Mayo - Usa/Reporte/Language", "work_dir": "C:/Trabajo/VM/38 - 93998 - Sipa - PortoRico/Reporte/Language",
"master_name": "1_hmi_master_translates_allenbradley.xlsx", "master_name": "1_hmi_master_translates_siemens.xlsx",
"translate_name": "2_master_export2translate_allenbradley_it-IT.xlsx", "translate_name": "2_master_export2translate_siemens_es-ES.xlsx",
"auto_translate_name": "3_master_export2translate_translated_allenbradley_it-IT.xlsx", "auto_translate_name": "3_master_export2translate_translated_siemens_es-ES.xlsx",
"nivel_afinidad_minimo": 0.5, "nivel_afinidad_minimo": 0.5,
"traducir_todo": false "traducir_todo": false
} }

View File

@ -6,12 +6,10 @@ import langid
from openpyxl import load_workbook from openpyxl import load_workbook
from openpyxl.styles import PatternFill, Alignment, Font from openpyxl.styles import PatternFill, Alignment, Font
from collections import defaultdict from collections import defaultdict
from openai import OpenAI
from openai_api_key import openai_api_key from openai_api_key import openai_api_key
# Definir el logger a nivel de módulo # Definir el logger a nivel de módulo
logger = None logger = None
openai_client = OpenAI(api_key=openai_api_key())
def configurar_detector_idiomas(): def configurar_detector_idiomas():
@ -153,6 +151,10 @@ def exportar_para_traduccion(config: TranslationConfig):
progress_bar.finish() progress_bar.finish()
# Configurar el modelo a usar
modelo_llm = fc.LLM_MODELS["OpenAI"] # o el que se prefiera
api_key = openai_api_key() # solo necesario para OpenAI y Grok
# Segunda fase: Procesar textos idénticos y calcular afinidades en lote # Segunda fase: Procesar textos idénticos y calcular afinidades en lote
if config.codigo_columna_maestra != config.codigo_idioma_seleccionado: if config.codigo_columna_maestra != config.codigo_idioma_seleccionado:
# Asignar afinidad 1 a textos idénticos # Asignar afinidad 1 a textos idénticos
@ -165,11 +167,13 @@ def exportar_para_traduccion(config: TranslationConfig):
if texts_to_check: if texts_to_check:
logger.info(f"Calculando afinidad para {len(texts_to_check)} textos diferentes") logger.info(f"Calculando afinidad para {len(texts_to_check)} textos diferentes")
try: try:
affinities = fc.calculate_batch_affinities( # Calcular afinidades
affinities = fc.calcular_afinidad_batch(
texts_to_check, texts_to_check,
config.codigo_tipo_PLC, config.codigo_tipo_PLC,
openai_client, modelo_llm,
logger logger,
api_key
) )
# Aplicar resultados de afinidad # Aplicar resultados de afinidad

View File

@ -15,13 +15,15 @@ from translation_config import TranslationConfig
from openpyxl.styles import PatternFill, Alignment from openpyxl.styles import PatternFill, Alignment
import sys import sys
openai_client = OpenAI(api_key=openai_api_key())
GOOGLE_APPLICATION_CREDENTIALS = "translate-431108-020c17463fbb.json" GOOGLE_APPLICATION_CREDENTIALS = "translate-431108-020c17463fbb.json"
batch_size = 20 batch_size = 20
# Definir el logger a nivel de módulo # Definir el logger a nivel de módulo
logger = None logger = None
# Crear el cliente OpenAI
openai_client = OpenAI(api_key=openai_api_key())
def init_google_translate_client(): def init_google_translate_client():
if os.path.exists(GOOGLE_APPLICATION_CREDENTIALS): if os.path.exists(GOOGLE_APPLICATION_CREDENTIALS):
@ -232,6 +234,10 @@ def main(config: TranslationConfig):
update_progress.finish() update_progress.finish()
# Configurar el modelo a usar
modelo_llm = fc.LLM_MODELS["OpenAI"] # o el que se prefiera
api_key = openai_api_key() # solo necesario para OpenAI y Grok
# Afinidades # Afinidades
# Los textos ya vienen del proceso de traducción # Los textos ya vienen del proceso de traducción
texts_to_check = {} texts_to_check = {}
@ -240,11 +246,8 @@ def main(config: TranslationConfig):
texts_to_check[key] = translated_text texts_to_check[key] = translated_text
# Calcular afinidades usando LLM # Calcular afinidades usando LLM
affinities_dict = fc.calculate_batch_affinities( affinities_dict = fc.calcular_afinidad_batch(
texts_to_check, texts_to_check, config.codigo_tipo_PLC, modelo_llm, logger, api_key
config.codigo_tipo_PLC,
openai_client,
logger
) )
# Asignar resultados al DataFrame # Asignar resultados al DataFrame

View File

@ -79,10 +79,10 @@ def update_from_master(config: TranslationConfig, archivo_to_update):
nuevo_nombre = f"{nombre}_import{extension}" nuevo_nombre = f"{nombre}_import{extension}"
with pd.ExcelWriter(nuevo_nombre, engine='openpyxl') as writer: with pd.ExcelWriter(nuevo_nombre, engine='openpyxl') as writer:
df_to_update.to_excel(writer, index=False) df_to_update.to_excel(writer, sheet_name="User Texts", index=False)
workbook = writer.book workbook = writer.book
worksheet = writer.sheets['Sheet1'] worksheet = writer.sheets["User Texts"]
# Format columns # Format columns
from openpyxl.utils import get_column_letter from openpyxl.utils import get_column_letter
@ -113,7 +113,7 @@ def update_from_master(config: TranslationConfig, archivo_to_update):
df_changes.to_excel(writer, index=False) df_changes.to_excel(writer, index=False)
workbook = writer.book workbook = writer.book
worksheet = writer.sheets["Sheet1"] worksheet = writer.sheets["User Texts"]
light_blue = PatternFill(start_color="ADD8E6", end_color="ADD8E6", fill_type="solid") light_blue = PatternFill(start_color="ADD8E6", end_color="ADD8E6", fill_type="solid")