AIdeaText commited on
Commit
b96e11f
1 Parent(s): 12f4845

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -15
app.py CHANGED
@@ -127,9 +127,15 @@ def main():
127
 
128
  # Interface de chat
129
  if prompt := st.chat_input("Escribe tu mensaje aquí"):
130
- st.session_state.messages.append({"role": "user", "content": prompt})
131
- with st.chat_message("user"):
132
- st.markdown(prompt)
 
 
 
 
 
 
133
 
134
  with st.chat_message("assistant"):
135
  try:
@@ -139,21 +145,60 @@ def main():
139
  except Exception as e:
140
  st.error(f"Error generando respuesta: {str(e)}")
141
 
142
- # Sidebar con información y controles
143
  with st.sidebar:
144
- st.markdown("""
145
- ### Acerca de
146
- Este demo usa Llama 3.2-3B-Instruct, el nuevo modelo de Meta.
147
 
148
- ### Características
149
- - Modelo de 3B parámetros
150
- - Optimizado para diálogo
151
- - Cuantización de 8-bits
152
- """)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
 
154
- if st.button("Limpiar Chat"):
155
- st.session_state.messages = []
156
- st.experimental_rerun()
 
 
 
157
 
158
  if __name__ == "__main__":
159
  main()
 
127
 
128
  # Interface de chat
129
  if prompt := st.chat_input("Escribe tu mensaje aquí"):
130
+ with st.chat_message("assistant"):
131
+ try:
132
+ response = st.session_state.llama.generate_response(
133
+ prompt,
134
+ **generation_params
135
+ )
136
+ st.markdown(response)
137
+ except Exception as e:
138
+ st.error(f"Error: {str(e)}")
139
 
140
  with st.chat_message("assistant"):
141
  try:
 
145
  except Exception as e:
146
  st.error(f"Error generando respuesta: {str(e)}")
147
 
148
+ # Sidebar con controles de generación
149
  with st.sidebar:
150
+ st.markdown("### Parámetros de Generación")
 
 
151
 
152
+ generation_params = {
153
+ 'temperature': st.slider(
154
+ "Temperatura (creatividad vs precisión)",
155
+ min_value=0.1,
156
+ max_value=1.0,
157
+ value=0.6,
158
+ step=0.1,
159
+ help="Valores más bajos = respuestas más precisas"
160
+ ),
161
+ 'max_new_tokens': st.slider(
162
+ "Longitud máxima",
163
+ min_value=64,
164
+ max_value=1024,
165
+ value=512,
166
+ step=64,
167
+ help="Longitud máxima de la respuesta"
168
+ ),
169
+ 'top_p': st.slider(
170
+ "Top-p (núcleo de probabilidad)",
171
+ min_value=0.1,
172
+ max_value=1.0,
173
+ value=0.85,
174
+ step=0.05
175
+ )
176
+ }
177
+
178
+ with st.expander("Parámetros Avanzados"):
179
+ generation_params.update({
180
+ 'repetition_penalty': st.slider(
181
+ "Penalización por repetición",
182
+ min_value=1.0,
183
+ max_value=2.0,
184
+ value=1.2,
185
+ step=0.1
186
+ ),
187
+ 'top_k': st.slider(
188
+ "Top-k tokens",
189
+ min_value=1,
190
+ max_value=100,
191
+ value=50,
192
+ step=1
193
+ )
194
+ })
195
 
196
+ st.markdown("""
197
+ ### Guía de Parámetros
198
+ - **Temperatura**: Menor = más preciso, Mayor = más creativo
199
+ - **Top-p**: Control sobre la variabilidad de respuestas
200
+ - **Longitud**: Ajustar según necesidad de detalle
201
+ """)
202
 
203
  if __name__ == "__main__":
204
  main()