import gradio as gr from huggingface_hub import InferenceClient from typing import List, Dict # Response function for the chatbot def respond( message: str, history: List[Dict[str, str]], system_message: str, max_tokens: int, temperature: float, top_p: float, hf_token: gr.OAuthToken, ): """ Sends a user input to the summarization model using text-to-text interface. """ client = InferenceClient( token=hf_token.token, model="Bocklitz-Lab/lit2vec-tldr-bart-model" ) # You can prepend the system message if needed input_text = f"{system_message}\n\n{message}" response = client.text_to_text( input=input_text, max_new_tokens=max_tokens, temperature=temperature, top_p=top_p ) yield response # Define the Gradio interface chatbot = gr.ChatInterface( fn=respond, type="messages", additional_inputs=[ gr.Textbox( value="You are a friendly chatbot.", label="System message", lines=1 ), gr.Slider( minimum=1, maximum=2048, value=512, step=1, label="Max new tokens" ), gr.Slider( minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature" ), gr.Slider( minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)" ), ], ) # Set up the full Gradio Blocks layout with login with gr.Blocks() as demo: with gr.Row(): with gr.Column(scale=1): gr.LoginButton() chatbot.render() # Run the app if __name__ == "__main__": demo.launch()