Spaces:
Sleeping
Sleeping
Update src/streamlit_app.py
Browse files- src/streamlit_app.py +18 -6
src/streamlit_app.py
CHANGED
|
@@ -100,14 +100,25 @@ def invocar_modelo_transformers(model_id: str, prompt: str, instruccion_sistema:
|
|
| 100 |
{"role": "user", "content": prompt},
|
| 101 |
]
|
| 102 |
|
|
|
|
| 103 |
if hasattr(tokenizer, "apply_chat_template"):
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
)
|
| 109 |
-
|
| 110 |
-
inputs = tokenizer(prompt, return_tensors="pt")["input_ids"]
|
| 111 |
|
| 112 |
device = model.device
|
| 113 |
inputs = inputs.to(device)
|
|
@@ -148,6 +159,7 @@ modo = st.radio(
|
|
| 148 |
format_func=lambda x: "Evaluaci贸n por defecto" if x == ModoEvaluacion.POR_DEFECTO.value else "Evaluaci贸n personalizada",
|
| 149 |
)
|
| 150 |
|
|
|
|
| 151 |
timeout_segundos = st.slider("Timeout por llamada (segundos)", min_value=10, max_value=300, value=120)
|
| 152 |
|
| 153 |
if modo == ModoEvaluacion.PERSONALIZADA.value:
|
|
|
|
| 100 |
{"role": "user", "content": prompt},
|
| 101 |
]
|
| 102 |
|
| 103 |
+
inputs = None
|
| 104 |
if hasattr(tokenizer, "apply_chat_template"):
|
| 105 |
+
try:
|
| 106 |
+
inputs = tokenizer.apply_chat_template(
|
| 107 |
+
mensajes,
|
| 108 |
+
return_tensors="pt",
|
| 109 |
+
add_generation_prompt=True,
|
| 110 |
+
)
|
| 111 |
+
except Exception:
|
| 112 |
+
# Fallback para tokenizers sin chat_template definido (ej. modelos base/instruct antiguos).
|
| 113 |
+
inputs = None
|
| 114 |
+
|
| 115 |
+
if inputs is None:
|
| 116 |
+
prompt_plano = (
|
| 117 |
+
f"Sistema: {contenido_sistema}\n\n"
|
| 118 |
+
f"Usuario: {prompt}\n\n"
|
| 119 |
+
"Respuesta:"
|
| 120 |
)
|
| 121 |
+
inputs = tokenizer(prompt_plano, return_tensors="pt")["input_ids"]
|
|
|
|
| 122 |
|
| 123 |
device = model.device
|
| 124 |
inputs = inputs.to(device)
|
|
|
|
| 159 |
format_func=lambda x: "Evaluaci贸n por defecto" if x == ModoEvaluacion.POR_DEFECTO.value else "Evaluaci贸n personalizada",
|
| 160 |
)
|
| 161 |
|
| 162 |
+
# Unico parametro editable en UI para ambos modos.
|
| 163 |
timeout_segundos = st.slider("Timeout por llamada (segundos)", min_value=10, max_value=300, value=120)
|
| 164 |
|
| 165 |
if modo == ModoEvaluacion.PERSONALIZADA.value:
|