salomonsky commited on
Commit
b676cee
verified
1 Parent(s): bb2d94c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -2
app.py CHANGED
@@ -2,10 +2,14 @@ import streamlit as st
2
  from huggingface_hub import InferenceClient
3
  from gtts import gTTS
4
 
 
5
  client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
 
 
6
  system_prompt = "Tu nombre es Xaman 3.0"
7
  system_prompt_sent = False
8
 
 
9
  def format_prompt(message, history):
10
  global system_prompt_sent
11
  prompt = "<s>"
@@ -22,11 +26,13 @@ def format_prompt(message, history):
22
  prompt += f"[INST] {message} [/INST]"
23
  return prompt
24
 
 
25
  def text_to_speech(text, speed=1.5):
26
  tts = gTTS(text=text, lang='es', speed=speed)
27
  tts.save('output.mp3')
28
  return 'output.mp3'
29
 
 
30
  def generate(
31
  user_input, history, temperature=None, max_new_tokens=2048, top_p=0.95, repetition_penalty=1.0,
32
  ):
@@ -49,26 +55,34 @@ def generate(
49
  stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=True)
50
  response = " ".join(response.token.text for response in stream)
51
 
52
- st.text(response)
 
 
 
53
  audio_file = text_to_speech(response, speed=1.2)
54
  st.audio(audio_file, format="audio/mp3", start_time=0, key='audio')
55
 
56
  return response
57
 
 
58
  if "history" not in st.session_state:
59
  st.session_state.history = []
60
 
 
61
  st.title("Chatbot Interactivo")
62
  user_input = st.text_area(label="Usuario", value="Escribe aqu铆 tu mensaje", height=200)
63
 
 
64
  st.subheader("Historial de Conversaci贸n")
65
  for user_prompt, bot_response in st.session_state.history:
66
  st.write(f"Usuario: {user_prompt}")
67
  st.write(f"Bot: {bot_response}")
68
  st.markdown("---")
69
 
 
70
  output = generate(user_input, history=st.session_state.history)
71
  st.session_state.history.append((user_input, output))
72
 
 
73
  audio_file = text_to_speech(output, speed=1.2)
74
- st.audio(audio_file, format="audio/mp3", start_time=0, key='audio')
 
2
  from huggingface_hub import InferenceClient
3
  from gtts import gTTS
4
 
5
+ # Inicializar el cliente de inferencia
6
  client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
7
+
8
+ # Definir el prompt del sistema
9
  system_prompt = "Tu nombre es Xaman 3.0"
10
  system_prompt_sent = False
11
 
12
+ # Funci贸n para formatear el prompt
13
  def format_prompt(message, history):
14
  global system_prompt_sent
15
  prompt = "<s>"
 
26
  prompt += f"[INST] {message} [/INST]"
27
  return prompt
28
 
29
+ # Funci贸n para convertir texto a audio
30
  def text_to_speech(text, speed=1.5):
31
  tts = gTTS(text=text, lang='es', speed=speed)
32
  tts.save('output.mp3')
33
  return 'output.mp3'
34
 
35
+ # Funci贸n para generar respuesta
36
  def generate(
37
  user_input, history, temperature=None, max_new_tokens=2048, top_p=0.95, repetition_penalty=1.0,
38
  ):
 
55
  stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=True)
56
  response = " ".join(response.token.text for response in stream)
57
 
58
+ # Mostrar respuesta en un 谩rea de texto
59
+ st.text_area("Bot:", value=response, height=200, key='response_area')
60
+
61
+ # Convertir respuesta a audio y reproducirlo
62
  audio_file = text_to_speech(response, speed=1.2)
63
  st.audio(audio_file, format="audio/mp3", start_time=0, key='audio')
64
 
65
  return response
66
 
67
+ # Inicializar historial si no existe
68
  if "history" not in st.session_state:
69
  st.session_state.history = []
70
 
71
+ # Interfaz de usuario con Streamlit
72
  st.title("Chatbot Interactivo")
73
  user_input = st.text_area(label="Usuario", value="Escribe aqu铆 tu mensaje", height=200)
74
 
75
+ # Mostrar historial de conversaci贸n
76
  st.subheader("Historial de Conversaci贸n")
77
  for user_prompt, bot_response in st.session_state.history:
78
  st.write(f"Usuario: {user_prompt}")
79
  st.write(f"Bot: {bot_response}")
80
  st.markdown("---")
81
 
82
+ # Generar respuesta y actualizar historial
83
  output = generate(user_input, history=st.session_state.history)
84
  st.session_state.history.append((user_input, output))
85
 
86
+ # Reproducir respuesta en formato de audio
87
  audio_file = text_to_speech(output, speed=1.2)
88
+ st.audio(audio_file, format="audio/mp3", start_time=0, key='audio')