kavinila0501's picture
initial commit with app and requirements
836c74b verified
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import gradio as gr
# Load the CodeT5 small model (lightweight)
model_name = "Salesforce/codet5-small"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
def fix_output(output):
# Simple cleanups and common fixes
output = output.replace("importsync_playwright", "import sync_playwright")
output = output.replace("\n\n", "\n")
lines = output.split("\n")
seen = set()
filtered = []
for line in lines:
if line.strip() not in seen:
filtered.append(line)
seen.add(line.strip())
output = "\n".join(filtered)
output = output.replace('.locator("//button[@type=\'submit\']").fill(', '.locator("//button[@type=\'submit\']").click(')
return output
def convert_selenium_to_playwright(selenium_code):
prompt = f"""
Convert the following Selenium Python code to Playwright Python code.
Return complete working Playwright code with proper syntax, including imports, browser launch, navigation, actions, and close.
Example:
Selenium:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com")
element = driver.find_element(By.ID, "username")
element.send_keys("myusername")
driver.quit()
Playwright:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
page.locator("#username").fill("myusername")
browser.close()
Now convert:
Selenium:
{selenium_code}
Playwright:
"""
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=512)
outputs = model.generate(**inputs, max_length=512, num_beams=5, early_stopping=True)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
return fix_output(result)
iface = gr.Interface(
fn=convert_selenium_to_playwright,
inputs=gr.Textbox(lines=15, placeholder="Paste your Selenium Python code here..."),
outputs="textbox",
title="Selenium to Playwright Code Converter",
description="Paste your Selenium Python code and get the equivalent Playwright Python code."
)
if __name__ == "__main__":
iface.launch()