Spaces:
Runtime error
Runtime error
File size: 3,706 Bytes
46e7aa4 b91e1d6 46e7aa4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
import streamlit as st
import os
import sys
sys.path.append('/mount/src/chatbot/pages/libraries')
from text_processing import *
from text_translation import *
## Inicialize session state
if "idioma" not in st.session_state:
st.session_state.idioma = "Inglés"
if "modelo" not in st.session_state:
st.session_state.modelo = "gpt2-medium"
if "lan_en" not in st.session_state:
st.session_state.lan_en = False
if "en_lan" not in st.session_state:
st.session_state.en_lan = False
if "process" not in st.session_state:
st.session_state.process = False
if "messages" not in st.session_state:
st.session_state.messages = []
## Variables
idioma_a_abreviacion = {
"Inglés": "en",
"Español": "es",
"Francés": "fr",
"Alemán": "de",
"Italiano": "it",
"Ruso": "ru",
"Chino (Mandarín)": "zh",
"Árabe": "ar",
"Hindi": "hi"
}
modelos = {
"gpt2": "openai-community/gpt2",
"Qwen-VL": "Qwen/Qwen-VL-Chat",
"dolly-v2-7b": "databricks/dolly-v2-7b"
}
## APP
st.title("Chatbot")
# Sidebar
st.sidebar.title('Opciones')
st.sidebar.subheader('Idioma')
idioma = st.sidebar.selectbox(
"Seleccionar idioma",
("Español", "Inglés", "Francés",
"Aleman", "Italiano","Ruso",
"Chino (Mandarín)", "Árabe", "Hindi"),
)
st.sidebar.subheader('Configuraciones del Chat')
# Opción para activar/desactivar RAG
RAG = st.sidebar.checkbox("Activar RAG", key="enabled_RAG")
# Opción para activar/desactivar prompts avanzados
Adv_prompts = st.sidebar.checkbox("Activar prompts avanzadas", key="enabled_prompts")
# Selección del modelo de lenguaje en la barra lateral
mod_selec = st.sidebar.selectbox(
"Select LLM",
("gpt2-medium", "banana phone", "dolly-v2-7b"),
)
# Botón para confirmar configuraciones
cols = st.columns(2)
with cols[0]:
set_button = st.sidebar.button("Confirmar Configuraciones")
with cols[1]:
clc_historial = st.sidebar.button("Limpiar historial")
if clc_historial:
# Reset the chat history
st.session_state.messages = []
if set_button:
# Reset the chat history
st.session_state.messages = []
# Set selected configurations
modelo = modelos.get(mod_selec)
if modelo != st.session_state.process:
st.session_state.process = model_loading(modelo)
if idioma != "Inglés":
lan1 = idioma_a_abreviacion.get(idioma)
lan2 = "en"
st.session_state.lan_en = load_translator(lan1, lan2)
st.session_state.en_lan = load_translator(lan2, lan1)
# Create space for the chatbot
prompt = st.chat_input('Envía un mensaje')
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
if prompt:
if st.session_state.process:
if idioma:
if idioma != "Inglés":
translated_prompt = translator(prompt, st.session_state.lan_en)
solution = data_processing(translated_prompt, st.session_state.process, RAG, Adv_prompts)
response = translator(solution, st.session_state.en_lan)
else:
response = data_processing(prompt, st.session_state.process, RAG, Adv_prompts)
st.session_state.messages.append({"role": "user", "content": prompt})
st.session_state.messages.append({"role": "assistant", "content": response})
st.rerun()
else:
st.warning("Idioma no especificado. Por favor, seleccione un idioma y confirme las configuraciones.")
else:
st.warning("El modelo no está cargado. Por favor, seleccione el modelo y confirme las configuraciones.")
|