Shreyash Indurkar
Modified app.py v3
12478ef
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torch
import gradio as gr
# Load model and tokenizer
model_name = "Amitabhdas/code-summarizer-python"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
# Define summarization function
def summarize_code_with_attention(code_snippet):
inputs = tokenizer(
code_snippet,
max_length=512,
truncation=True,
padding="max_length",
return_tensors="pt"
)
with torch.no_grad():
outputs = model.generate(
inputs.input_ids,
max_length=150,
num_beams=4,
early_stopping=True,
output_attentions=True,
return_dict_in_generate=True
)
summary = tokenizer.decode(outputs.sequences[0], skip_special_tokens=True)
attention = str(outputs.encoder_attentions) # Convert to string for safe JSON
input_shape = list(inputs.input_ids.shape)
return {
"summary": summary,
"attention": attention,
"input_shape": input_shape
}
# Launch the Gradio interface
demo = gr.Interface(
fn=summarize_code_with_attention,
inputs=gr.Textbox(lines=10, label="Enter Python code"),
outputs="json",
title="Code Summarizer API"
)
demo.launch(share=True)