DaniCode commited on
Commit
70e88f5
·
verified ·
1 Parent(s): eac1a57

Update app.py

Browse files

Añadiendo detector de idioma + control de temperatura y longitud de respuesta

Files changed (1) hide show
  1. app.py +32 -3
app.py CHANGED
@@ -7,6 +7,7 @@ from langchain_openai import ChatOpenAI
7
  from langchain_community.llms import HuggingFaceEndpoint
8
  from langchain_core.output_parsers import StrOutputParser
9
  from langchain_core.prompts import ChatPromptTemplate
 
10
  import langchain_community.llms as llms
11
 
12
  from dotenv import load_dotenv
@@ -37,6 +38,9 @@ model_class = st.selectbox(
37
  index=0 # opción por defecto
38
  )
39
 
 
 
 
40
  # estableceremos 3 maneras de conexion a LLM ( 1. con la api deHuggingFace, 2 Con CHATGPT (hay que tener un usuario de pago ) y 3 con Ollama de forma local)
41
 
42
  def model_hf_hub(model="google/shieldgemma-27b", temperature=0.1):
@@ -62,7 +66,6 @@ def model_openai(model="gpt-4o-mini", temperature=0.1):
62
  )
63
  return llm
64
 
65
-
66
  def model_ollama(model="phi3:latest", temperature=0.1,): # probar con 27b
67
  llm = ChatOllama(
68
  model=model,
@@ -71,8 +74,34 @@ def model_ollama(model="phi3:latest", temperature=0.1,): # probar con 27b
71
  )
72
  return llm
73
 
74
-
75
- def model_response(user_query,chat_history, model_class):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  # hay que poner un if para que llame a las 3 funciones anteriores segun el valor de la variable model_class
77
  #llm = model_ollama()
78
  # Cargar el modelo correspondiente según model_class
 
7
  from langchain_community.llms import HuggingFaceEndpoint
8
  from langchain_core.output_parsers import StrOutputParser
9
  from langchain_core.prompts import ChatPromptTemplate
10
+ from langdetect import detect
11
  import langchain_community.llms as llms
12
 
13
  from dotenv import load_dotenv
 
38
  index=0 # opción por defecto
39
  )
40
 
41
+ temperature = st.slider("Temperatura", 0.0, 1.0, 0.5, 0.05)
42
+ max_tokens = st.slider("Longitud máxima de respuesta (tokens)", 10, 1024, 100, 10)
43
+
44
  # estableceremos 3 maneras de conexion a LLM ( 1. con la api deHuggingFace, 2 Con CHATGPT (hay que tener un usuario de pago ) y 3 con Ollama de forma local)
45
 
46
  def model_hf_hub(model="google/shieldgemma-27b", temperature=0.1):
 
66
  )
67
  return llm
68
 
 
69
  def model_ollama(model="phi3:latest", temperature=0.1,): # probar con 27b
70
  llm = ChatOllama(
71
  model=model,
 
74
  )
75
  return llm
76
 
77
+ #Antes de generar la respuesta se comprueba el idioma del usuario que hace la consulta
78
+ def detectar_idioma(text):
79
+ try:
80
+ return detect(text)
81
+ except:
82
+ return "error"
83
+
84
+ def model_response(user_query,chat_history, model_class,input_text):
85
+
86
+ # Detecto el idioma
87
+ idioma = detectar_idioma(input_text)
88
+ print(f"Idioma detectado: {idioma}")
89
+
90
+ # Traduce códigos de idioma a nombres legibles
91
+ idioma_nombres = {
92
+ "es": "Spanish",
93
+ "en": "English",
94
+ "fr": "French",
95
+ "de": "German",
96
+ "it": "Italian",
97
+ "pt": "Portuguese"
98
+ }
99
+ # Si el idioma detectado no está en el diccionario, por defecto será español
100
+ language = idioma_nombres.get(idioma, "Spanish")
101
+
102
+ # Mostrar el idioma detectado en la interfaz
103
+ st.write(f"Idioma detectado: {language}")
104
+
105
  # hay que poner un if para que llame a las 3 funciones anteriores segun el valor de la variable model_class
106
  #llm = model_ollama()
107
  # Cargar el modelo correspondiente según model_class