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() |