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})