|
# Descripción del Código: |
|
|
|
1. Importación de Bibliotecas: |
|
|
|
from huggingface_hub import InferenceClient |
|
|
|
import gradio as gr |
|
|
|
* InferenceClient: Se utiliza para realizar inferencias (generación de texto en este caso) con modelos alojados en Hugging Face Hub. |
|
* gr (Gradio): Es una biblioteca que facilita la creación de interfaces de usuario para modelos de aprendizaje automático. |
|
|
|
2. Inicialización del Cliente de Inferencia: |
|
|
|
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1") |
|
|
|
* Se crea un cliente de inferencia para el modelo específico "Mistral-7B-Instruct-v0.2" alojado en Hugging Face Hub. |
|
|
|
3. Función para Formatear el Prompt: |
|
|
|
def format_prompt(message, history): |
|
|
|
... (ver código para detalles) |
|
|
|
* Esta función toma un mensaje, junto con la historia de conversación, y lo formatea adecuadamente para el modelo. |
|
|
|
4. Función para Generar Texto: |
|
|
|
def generate(prompt, history, system_prompt, temperature=0.9, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0): |
|
|
|
... (ver código para detalles) |
|
|
|
|
|
* La función principal para generar texto. Toma varios parámetros, incluyendo el prompt del usuario, historial de conversación, temperatura, etc. |
|
|
|
5. Definición de Inputs Adicionales: |
|
|
|
additional_inputs = [ |
|
|
|
... (ver código para detalles) |
|
|
|
] |
|
|
|
* Se definen inputs adicionales para la interfaz Gradio. Estos permiten al usuario ajustar configuraciones como la temperatura, la longitud máxima del texto generado, etc. |
|
|
|
6. Ejemplos para la Interfaz Gradio: |
|
|
|
examples = [ |
|
|
|
... (ver código para detalles) |
|
|
|
] |
|
|
|
* Se proporcionan ejemplos que serán mostrados en la interfaz Gradio para ayudar a los usuarios a comenzar. |
|
|
|
7. Creación de la Interfaz Gradio: |
|
|
|
gr.ChatInterface( |
|
|
|
fn=generate, |
|
|
|
chatbot=gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, likeable=True, layout="panel"), |
|
|
|
additional_inputs=additional_inputs, |
|
|
|
title="Mixtral-8x7B-Instruct-v0.1 Fines didácticos", |
|
|
|
description='Autor: ... (ver código para detalles)', |
|
|
|
examples=examples, |
|
|
|
concurrency_limit=20, |
|
|
|
).launch(show_api=False) |
|
|
|
* Se crea la interfaz Gradio para la función de generación de texto. Incluye la entrada del usuario, las inputs adicionales configuradas y otros elementos visuales. |
|
|
|
# Inputs Adicionales en la Interfaz Gradio: |
|
|
|
* System Prompt (Entrada de Texto): Permite al usuario ingresar un prompt del sistema para contextualizar la conversación. |
|
|
|
* Temperature (Control Deslizante): Ajusta la "temperatura" del modelo, afectando la diversidad de las respuestas. |
|
|
|
* Max New Tokens (Control Deslizante): Controla la longitud máxima del texto generado. |
|
|
|
* Top-p (Nucleus Sampling) (Control Deslizante): Regula el muestreo de tokens basado en la probabilidad acumulativa. |
|
|
|
* Repetition Penalty (Control Deslizante): Penaliza la repetición de tokens en el texto generado. |
|
|
|
Estas inputs adicionales permiten a los usuarios personalizar la generación de texto según sus preferencias y necesidades. |