Spaces:
Sleeping
Sleeping
File size: 2,251 Bytes
b87d52c 131144c 0c97a7e 131144c a5fcb71 131144c 0c97a7e dbbcf45 a5fcb71 131144c 9d20c0e 131144c a5fcb71 dbbcf45 5fe3cd7 5e3ae64 dbbcf45 0c97a7e b87d52c 0c97a7e b87d52c cbc4beb b87d52c 131144c b87d52c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
import gradio
import logging
import time
from transformers import pipeline
logger = logging.getLogger("gradio_test_001")
logger.setLevel(logging.INFO)
logging.debug("Starting logging for gradio_test_001.")
classifier = pipeline("zero-shot-classification",
model="facebook/bart-large-mnli")
# sequence_to_classify = "one day I will see the world"
# candidate_labels = ['travel', 'cooking', 'dancing']
# CATEGORIES = ['doc_type.jur', 'doc_type.Spec', 'doc_type.ZDF', 'doc_type.Publ',
# 'doc_type.Scheme', 'content_type.Alt', 'content_type.Krypto',
# 'content_type.Karte', 'content_type.Banking', 'content_type.Reg',
# 'content_type.Konto']
categories = [
"Legal", "Specification", "Facts and Figures",
"Publication", "Payment Scheme",
"Alternative Payment Systems", "Crypto Payments",
"Card Payments", "Banking", "Regulations", "Account Payments"
]
def transform_output(res: dict) -> list:
return list(
sorted(
zip(res["labels"], res["scores"]),
key=lambda tpl: tpl[1],
reverse=True
)
)
def clf_text(txt: str | list[str]):
logger.info("Classify: " + repr(txt))
t0 = time.time()
res = classifier(txt, categories, multi_label=True)
elapsed = time.time() - t0
logger.info(f"Done. {elapsed:.02f}s")
logger.info(f"Result(s): " + repr(res))
if isinstance(res, list):
return [ transform_output(dct) for dct in res ]
else:
return transform_output(res)
# items = sorted(zip(res["labels"], res["scores"]), key=lambda tpl: tpl[1], reverse=True)
# d = dict(zip(res["labels"], res["scores"]))
# output = [f"{lbl}:\t{score}" for lbl, score in items]
# return "\n".join(output)
# return list(items)
# classifier(sequence_to_classify, candidate_labels)
#{'labels': ['travel', 'dancing', 'cooking'],
# 'scores': [0.9938651323318481, 0.0032737774308770895, 0.002861034357920289],
# 'sequence': 'one day I will see the world'}
def my_inference_function(name):
return "Hello " + name + "!"
gradio_interface = gradio.Interface(
# fn = my_inference_function,
fn = clf_text,
inputs = "text",
outputs = gradio.JSON()
)
logger.debug("Launch app.")
gradio_interface.launch() |