Spaces:
Running
Running
from text_generator import TextGenerationTool | |
# Create an instance of the tool with a safer default model | |
text_gen_tool = TextGenerationTool(default_model="distilgpt2") | |
# Launch the Gradio interface | |
if __name__ == "__main__": | |
import gradio as gr | |
with gr.Blocks(title="Text Generation Tool") as demo: | |
# Add a warning about authentication | |
gr.Markdown(""" | |
# Text Generation Tool | |
> **Note:** This application can run without a Hugging Face token, but some models may require authentication. | |
> For best results with larger models, set the `HF_TOKEN` environment variable with your token. | |
""") | |
with gr.Row(): | |
with gr.Column(): | |
prompt_input = gr.Textbox( | |
label="Enter your prompt", | |
placeholder="Write a short story about a robot learning to paint.", | |
lines=5 | |
) | |
model_dropdown = gr.Dropdown( | |
choices=list(text_gen_tool.models.keys()), | |
value=text_gen_tool.default_model, | |
label="Select Model" | |
) | |
with gr.Row(): | |
generate_btn = gr.Button("Generate Text") | |
clear_btn = gr.Button("Clear") | |
with gr.Column(): | |
output = gr.Textbox(label="Generated Text", lines=15) | |
def generate_with_model(prompt, model_key): | |
return text_gen_tool.generate_text(prompt, model_key) | |
generate_btn.click( | |
fn=generate_with_model, | |
inputs=[prompt_input, model_dropdown], | |
outputs=output | |
) | |
clear_btn.click( | |
fn=lambda: ("", None), | |
inputs=None, | |
outputs=[prompt_input, output] | |
) | |
gr.Examples( | |
examples=[ | |
["Write a short story about a robot learning to paint.", "distilgpt2"], | |
["Explain quantum computing to a 10-year-old.", "gpt2-small"], | |
["Write a poem about the changing seasons.", "distilgpt2"] | |
], | |
inputs=[prompt_input, model_dropdown] | |
) | |
demo.launch(share=True) |