| import gradio as gr |
| import os |
|
|
| |
| try: |
| from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline |
| TRANSFORMERS_AVAILABLE = True |
| except ImportError: |
| TRANSFORMERS_AVAILABLE = False |
| print("Transformers not available - running in demo mode") |
|
|
| def load_model(): |
| """Load the model if transformers is available""" |
| if not TRANSFORMERS_AVAILABLE: |
| return None |
| |
| try: |
| model_id = "aliarsal1512/clarifai_java_code_commenter" |
| print(f"Loading model: {model_id}") |
| |
| tokenizer = AutoTokenizer.from_pretrained(model_id) |
| model = AutoModelForSeq2SeqLM.from_pretrained(model_id) |
| |
| pipe = pipeline( |
| "text2text-generation", |
| model=model, |
| tokenizer=tokenizer, |
| max_length=64, |
| num_beams=1, |
| do_sample=False |
| ) |
| |
| print("✅ Model loaded successfully!") |
| return pipe |
| except Exception as e: |
| print(f"❌ Error loading model: {e}") |
| return None |
|
|
| |
| pipe = load_model() |
|
|
| def generate_comment(code): |
| """Generate comment for Java code""" |
| if pipe is None: |
| if not TRANSFORMERS_AVAILABLE: |
| return "⚠️ Transformers library not installed. Please check requirements.txt" |
| return "⚠️ Model failed to load. Check logs above." |
| |
| try: |
| |
| code = code.strip() |
| if not code: |
| return "Please provide some Java code" |
| |
| |
| result = pipe(code) |
| comment = result[0]['generated_text'] |
| |
| return comment |
| except Exception as e: |
| return f"❌ Error: {str(e)}" |
|
|
| |
| demo = gr.Interface( |
| fn=generate_comment, |
| inputs=gr.Textbox( |
| label="Java Code", |
| lines=10, |
| placeholder="Paste your Java code here...\nExample: public class Hello { public static void main(String[] args) { } }" |
| ), |
| outputs=gr.Textbox( |
| label="Generated Comment", |
| lines=4 |
| ), |
| title="Java Code Comment Generator", |
| description="Generates comments for Java code using a fine-tuned T5 model", |
| examples=[ |
| ["public class Calculator {\n public int add(int a, int b) {\n return a + b;\n }\n}"], |
| ["public class Main {\n public static void main(String[] args) {\n System.out.println(\"Hello, World!\");\n }\n}"] |
| ], |
| theme="soft" |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch(debug=True) |