qpave / app.py
kassemsabeh
Add examples
fd637c4
import gradio as gr
import torch
import os
from transformers import AutoTokenizer, T5ForConditionalGeneration
model_id = 'ksabeh/qpave'
max_input_length = 512
max_target_length = 20
auth_token = os.environ.get('TOKEN')
model = T5ForConditionalGeneration.from_pretrained(model_id, use_auth_token=auth_token)
tokenizer = AutoTokenizer.from_pretrained(model_id, use_auth_token=auth_token)
def predict(cg_attribute, text, fg_attribute, category):
input = f"{fg_attribute}: {text}"
model_input = tokenizer(input, max_length=max_input_length, truncation=True,
padding="max_length")
model_input = {k:torch.unsqueeze(torch.tensor(v),dim=0) for k,v in model_input.items()}
predictions = model.generate(**model_input, num_beams=4, do_sample=True, max_length=10)
return tokenizer.batch_decode(predictions, skip_special_tokens=True)[0]
# iface = gr.Interface(
# predict,
# inputs=["text", "text", "text", "text"],
# outputs=['text'],
# title="QPAVE",
# examples=[["Arriba Salsa Garlic and Cilantro, 16 oz", "Food"],
# ["MV Verholen Black GPS Ball Mount for BMW K1200S K1200R K1300S K1300R Black GPS Ball Mount VER-4901-10181", "Toys"],
# ["Mitsubishi 3000GT License Plate Frame (Zince Metal)", "Automotive"],
# ["Fun Fire Truck Pinata Personalized", "Toys"],
# ["White Chocolate Caramel Gourmet Popcorn Kelly", "Food"]
# ]
# )
# iface.launch()
demo = gr.Interface(
predict,
[
gr.Textbox(
label = "Coarse-grained Attribute",
info = "The coarse-grained attribute name",
lines = 1,
),
gr.Textbox(
label = "Context",
info = "The value of the coarse-grained attribute",
lines = 1,
),
gr.Textbox(
label = "Fine-grained Attribute",
info = "The target fine-grained attribute name",
lines = 1,
),
gr.Textbox(
label = "Category",
info = "The product category",
lines = 1,
)
],
"textbox",
title="QPAVE",
examples=[["Processor", "3ghz intel core i5", "Brand Name", "Computers & Tablets"],
["Special Feature", "Electric Razor for Men,Beard Trimmer,Rechargeable,Wet and Dry,Cordles", "Uses", "Electric Shavers"],
["Special Feature", "Electric Razor for Men,Beard Trimmer,Rechargeable,Wet and Dry,Cordles", "Skin Type", "Electric Shavers"],
["Color", "Black Foil Razor", "Head Type", "Electric Shavers"],
["Color", "2 ustzc-541 black with silver wood", "Material Type", "Office Electronics Accessories"],
["Brand Name", "beiter gray battery power", "Power Source", "Laptop Accessories"],
['Color', '14.5-inch red color spectrum', 'Size', 'Novelty Lighting'],
['Fixture Features', 'wattage 21w type 1200 mm input end', 'Wattage', 'Fluorescent Tubes'],
['Fixture Features', 'wattage 21w type 1200 mm input end', 'Size', 'Fluorescent Tubes']
]
)
demo.launch()