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() | |