Spaces:
Runtime error
Runtime error
import gradio as gr | |
import torch | |
from transformers import AutoTokenizer, AutoModelForCausalLM | |
# Load CodeGen model and tokenizer | |
model_name = "Salesforce/codegen-2B-mono" | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
model = AutoModelForCausalLM.from_pretrained(model_name) | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
model = model.to(device) | |
def generate_response(input_text, max_length=250, temperature=0.7, top_p=0.9, top_k=50): | |
""" | |
Generate response using the CodeGen model based on user input and selected parameters. | |
""" | |
try: | |
# Encode input and prepare input tensor | |
inputs = tokenizer(input_text, return_tensors="pt").to(device) | |
# Generate text based on model output | |
outputs = model.generate( | |
inputs.input_ids, | |
max_length=max_length, | |
temperature=temperature, | |
top_p=top_p, | |
top_k=top_k, | |
do_sample=True, | |
num_return_sequences=1, | |
no_repeat_ngram_size=2 | |
) | |
# Decode and return the generated text | |
response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
return response | |
except Exception as e: | |
return f"Error generating response: {str(e)}" | |
# Create Gradio interface | |
with gr.Blocks() as codegen_app: | |
gr.Markdown("# CodeGen-powered Text Generation") | |
# Input box for user prompt | |
input_text = gr.Textbox( | |
label="Input Text", | |
placeholder="Type your question or prompt here", | |
lines=3 | |
) | |
# Sliders for customization | |
max_length = gr.Slider( | |
label="Max Length", | |
minimum=50, | |
maximum=1024, | |
step=10, | |
value=250 | |
) | |
temperature = gr.Slider( | |
label="Temperature", | |
minimum=0.1, | |
maximum=1.0, | |
step=0.1, | |
value=0.7 | |
) | |
top_p = gr.Slider( | |
label="Top-p (Nucleus Sampling)", | |
minimum=0.1, | |
maximum=1.0, | |
step=0.1, | |
value=0.9 | |
) | |
top_k = gr.Slider( | |
label="Top-k (Sampling Limit)", | |
minimum=0, | |
maximum=100, | |
step=5, | |
value=50 | |
) | |
# Output box | |
output_text = gr.Textbox( | |
label="Generated Response", | |
placeholder="The model's response will appear here", | |
lines=15 | |
) | |
# Generate button | |
generate_button = gr.Button("Generate Response") | |
generate_button.click( | |
fn=generate_response, | |
inputs=[input_text, max_length, temperature, top_p, top_k], | |
outputs=output_text | |
) | |
# Launch the app | |
codegen_app.launch() | |