Spaces:
Sleeping
Sleeping
| # from transformers import pipeline | |
| # import gradio as gr | |
| # pipe = pipeline("translation", model="Helsinki-NLP/opus-mt-en-es") | |
| # demo = gr.Interface.from_pipeline(pipe) | |
| # demo.launch() | |
| import gradio as gr | |
| from transformers import pipeline | |
| import torch | |
| # Define the model to use. | |
| MODEL_NAME = "google/flan-t5-small" | |
| # Set up the pipeline, specifying the task and the model. | |
| # The pipeline handles tokenization and model inference. | |
| # Using device="cuda" if a GPU is available, otherwise falls back to CPU. | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| pipe = pipeline("text2text-generation", model=MODEL_NAME, device=device) | |
| # Define the function that constructs the prompt and calls the pipeline. | |
| def generate_text(user_input, prompt_template): | |
| """ | |
| Combines user input with a template and calls the Hugging Face transformers pipeline. | |
| """ | |
| # Create the full prompt based on the template and user input. | |
| full_prompt = prompt_template.format(user_input=user_input) | |
| # Use the pipeline to generate text. | |
| try: | |
| # The pipeline returns a list of dictionaries; we extract the generated text. | |
| response = pipe(full_prompt, max_new_tokens=100) | |
| return response[0]['generated_text'] | |
| except Exception as e: | |
| return f"Error: {e}" | |
| # Define the Gradio interface. | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# Lightweight LLM Demo") | |
| gr.Markdown("Enter text and select a prompt to generate an AI response.") | |
| with gr.Row(): | |
| with gr.Column(scale=1): | |
| # Textbox for user input | |
| user_input = gr.Textbox( | |
| label="Your Input Text", | |
| placeholder="Type here...", | |
| lines=5 | |
| ) | |
| # Dropdown to select a prompt template | |
| prompt_template = gr.Dropdown( | |
| label="Choose a Prompt Template", | |
| choices=[ | |
| "Summarize this: {user_input}", | |
| "Answer the following question: {user_input}", | |
| "Rewrite this text to be more formal: {user_input}" | |
| ], | |
| value="Summarize this: {user_input}" | |
| ) | |
| # Button to trigger the generation | |
| generate_button = gr.Button("Generate") | |
| with gr.Column(scale=2): | |
| # Textbox to display the output | |
| output_text = gr.Textbox( | |
| label="Generated Output", | |
| lines=10 | |
| ) | |
| # Define the action for the button click | |
| generate_button.click( | |
| fn=generate_text, | |
| inputs=[user_input, prompt_template], | |
| outputs=output_text | |
| ) | |
| demo.launch() |