Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| # Load the tokenizer and model | |
| tokenizer = AutoTokenizer.from_pretrained("sergeantson/GPT2_Small_General_Law") | |
| model = AutoModelForCausalLM.from_pretrained("sergeantson/GPT2_Small_General_Law") | |
| def generate_text(input_text, max_length, num_return_sequences, temperature, top_k, top_p): | |
| inputs = tokenizer(input_text, return_tensors="pt") | |
| output = model.generate( | |
| **inputs, | |
| max_length=max_length, | |
| num_return_sequences=num_return_sequences, | |
| temperature=temperature, | |
| top_k=top_k, | |
| top_p=top_p, | |
| no_repeat_ngram_size=2 # Prevents repeating n-grams | |
| ) | |
| generated_texts = [tokenizer.decode(output[i], skip_special_tokens=True) for i in range(num_return_sequences)] | |
| return "\n\n".join(generated_texts) | |
| # Set up the Gradio interface | |
| iface = gr.Interface( | |
| fn=generate_text, | |
| inputs=[ | |
| gr.Textbox(lines=2, placeholder="Enter a prompt here...", label="Input Text"), | |
| gr.Slider(minimum=10, maximum=200, value=50, step=1, label="Max Length"), | |
| gr.Slider(minimum=1, maximum=5, value=1, step=1, label="Number of Return Sequences"), | |
| gr.Slider(minimum=0.1, maximum=1.0, value=0.7, step=0.1, label="Temperature"), | |
| gr.Slider(minimum=1, maximum=100, value=50, step=1, label="Top-k"), | |
| gr.Slider(minimum=0.1, maximum=1.0, value=0.9, step=0.1, label="Top-p") | |
| ], | |
| outputs="text", | |
| title="Legal Text Generator", | |
| description="Enter a prompt to generate legal text based on the input." | |
| ) | |
| # Launch the interface | |
| iface.launch(share=False) |