Spaces:
Sleeping
Sleeping
File size: 1,973 Bytes
7d2c473 8160127 a79a56f 4a766c1 5100159 f8a4c47 946827a 1fe1359 a0a031a c501864 a0a031a c501864 af78765 c501864 af78765 c501864 a0a031a a79a56f c4ecf05 4a766c1 1fe1359 c501864 3bbf5c2 d9f7657 4a766c1 1fe1359 a0a031a 1fe1359 5100159 a0a031a 1fe1359 7d2c473 0fa2257 5c113c1 7d2c473 |
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 |
import streamlit as st
from huggingface_hub import InferenceClient
from gtts import gTTS
import IPython.display as ipd
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
system_prompt = "Tu nombre es Xaman 3.0"
system_prompt_sent = False
def format_prompt(message, history):
global system_prompt_sent
prompt = "<s>"
if history is not None and isinstance(history, list):
if not any(f"[INST] {system_prompt} [/INST]" in user_prompt for user_prompt, _ in history):
prompt += f"[INST] {system_prompt} [/INST]"
system_prompt_sent = True
for user_prompt, bot_response in history:
prompt += f"[INST] {user_prompt} [/INST]"
prompt += f" {bot_response}</s> "
prompt += f"[INST] {message} [/INST]"
return prompt
def text_to_speech(text):
tts = gTTS(text=text, lang='es')
tts.save('output.mp3')
return 'output.mp3'
def generate(
user_input, history, temperature=None, max_new_tokens=2048, top_p=0.95, repetition_penalty=1.0,
):
global system_prompt_sent
temperature = float(temperature) if temperature is not None else 0.9
if temperature < 1e-2:
temperature = 1e-2
top_p = float(top_p)
generate_kwargs = dict(
temperature=temperature,
max_new_tokens=max_new_tokens,
top_p=top_p,
repetition_penalty=repetition_penalty,
do_sample=True,
seed=42,
)
formatted_prompt = format_prompt(user_input, history)
stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=True)
output = ""
for response in stream:
output += response.token.text
st.text(output)
ipd.Audio(text_to_speech(output), autoplay=True)
return output
user_input = st.text_input(label="Usuario", value="Escribe aquí tu mensaje")
output = generate(user_input, history=None) # Ajusta 'history' según sea necesario |