File size: 2,005 Bytes
8387a13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e17e57c
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
import gradio as gr
from huggingface_hub import InferenceClient
import os

# Obt茅n el token de manera segura desde el entorno
hf_token = os.getenv("HF_API_TOKEN")
client = InferenceClient(
    "microsoft/Phi-3-mini-4k-instruct",
    token=hf_token
)

# Define la funci贸n de inferencia que usa la API
def generate_response(input_text):
    prompt = f"Debes de responder a cualquier pregunta:\nPregunta: {input_text}"
    try:
        # Realizar la inferencia usando el cliente de Hugging Face
        messages = [{"role": "user", "content": prompt}]
        response = client.chat_completion(messages=messages, max_tokens=500)
        
        # Extrae el texto generado
        if hasattr(response, 'choices') and response.choices:
            generated_text = response.choices[0].message.content
        else:
            generated_text = str(response)
            
        return generated_text
    except Exception as e:
        return f"Error al realizar la inferencia: {e}"

# Configura la interfaz en Gradio con un dise帽o m谩s interactivo
with gr.Blocks(title="LLM Chatbot con API de Inferencia") as demo:
    gr.Markdown(
        """
        ## Chatbot LLM - Pregunta y Respuesta
        Este chatbot utiliza un modelo de lenguaje para responder preguntas. 
        Ingresa tu consulta en el 谩rea de texto a continuaci贸n y presiona el bot贸n de enviar para obtener una respuesta.
        """
    )
    with gr.Row():
        with gr.Column():
            input_text = gr.Textbox(
                lines=5,
                placeholder="Escribe tu pregunta aqu铆...",
                label="Pregunta"
            )
        with gr.Column():
            output_text = gr.Textbox(
                lines=5,
                label="Respuesta",
                interactive=False
            )
    submit_button = gr.Button("Enviar")
    
    # Conecta la funci贸n a los componentes
    submit_button.click(fn=generate_response, inputs=input_text, outputs=output_text)

# Lanza la interfaz
demo.launch()