nehalelkaref's picture
Upload app.py
25f0ea1
raw
history blame
1.42 kB
from flask import Flask, jsonify, request
from transformers import AutoAdapterModel, AutoTokenizer, TextClassificationPipeline
from huggingface_hub import Repository
app = Flask(__name__)
#define model
tokenizer = AutoTokenizer.from_pretrained("UBC-NLP/MARBERT")
sarcasm_adapter = Repository(local_dir="sarcasm_adapter", clone_from="nehalelkaref/sarcasm_adapter")
aoc3_adapter = Repository(local_dir="aoc3_adapter", clone_from="nehalelkaref/aoc3_adapter")
aoc4_adapter = Repository(local_dir="aoc4_adapter", clone_from="nehalelkaref/aoc4_adapter")
fusion_adapter = Repository(local_dir="fusion_adapter", clone_from="nehalelkaref/region_fusion")
model = AutoAdapterModel.from_pretrained("UBC-NLP/MARBERT")
model.load_adapter("/code/aoc3_adapter", set_active=True, with_head=False)
model.load_adapter("/code/aoc4_adapter", set_active=True, with_head=False)
model.load_adapter("/code/sarcasm_adapter", set_active=True, with_head=False)
model.load_adapter_fusion("/code/fusion_adapter/aoc(3),aoc(4),sarcasm",with_head=True, set_active=True)
pipe = TextClassificationPipeline(tokenizer=tokenizer, model=model)
@app.route('/predict', methods=['POST'])
def predict():
text = request.json['inputs']
prediction = pipe(text)
labels = {"LABEL_0":"GULF", "LABEL_1":"LEVANT","LABEL_2":"EGYPT"}
regions = []
for res in prediction:
regions.append(labels[res['label']])
return jsonify({'response': regions})