Spaces:
Sleeping
Sleeping
import streamlit as st | |
import torch | |
from transformers import AutoTokenizer, AutoModelForCausalLM | |
# Cargar modelo | |
model_name = "Qwen/Qwen3-1.7B" | |
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) | |
model = AutoModelForCausalLM.from_pretrained( | |
model_name, | |
torch_dtype="auto", | |
device_map="auto", | |
trust_remote_code=True | |
) | |
# Cargar prompt base | |
with open("SeguroCargo.txt", "r", encoding="utf-8") as f: | |
prompt_base = f.read().strip() | |
# Funci贸n para generar respuesta con "thinking" opcional | |
def generar_respuesta(pregunta): | |
contexto = f"{prompt_base}\nUsuario: {pregunta}\nAsistente:" | |
messages = [{"role": "user", "content": contexto}] | |
text = tokenizer.apply_chat_template( | |
messages, | |
tokenize=False, | |
add_generation_prompt=True, | |
enable_thinking=False | |
) | |
model_inputs = tokenizer([text], return_tensors="pt").to(model.device) | |
generated_ids = model.generate( | |
**model_inputs, | |
max_new_tokens=1024, | |
do_sample=True, | |
temperature=0.7, | |
top_p=0.8 | |
) | |
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist() | |
try: | |
index = len(output_ids) - output_ids[::-1].index(151668) | |
except ValueError: | |
index = 0 | |
content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n") | |
return content.strip() | |
# Configuraci贸n de Streamlit | |
st.set_page_config(page_title="Asistente SeguroCargo2", page_icon="馃摝") | |
st.title("馃摝 Bienvenido a SeguroCargo2") | |
st.markdown("Hola, yo soy **SEGU**, asistente virtual de SeguroCargo sin el modo de pensamiento!") | |
st.markdown("Consulta sobre tus **env铆os nacionales e internacionales** de manera r谩pida y profesional.") | |
if "messages" not in st.session_state: | |
st.session_state.messages = [] | |
# Mostrar historial de mensajes | |
for msg in st.session_state.messages: | |
role, text = msg | |
with st.chat_message(role): | |
st.markdown(text) | |
# Entrada del usuario | |
user_input = st.chat_input("Escribe tu mensaje...") | |
if user_input: | |
st.session_state.messages.append(("user", user_input)) | |
with st.chat_message("user"): | |
st.markdown(user_input) | |
# Generar y mostrar respuesta | |
respuesta = generar_respuesta(user_input) | |
st.session_state.messages.append(("assistant", respuesta)) | |
with st.chat_message("assistant"): | |
st.markdown(respuesta) | |