from flask import Flask, request, jsonify from transformers import AutoModel, AutoTokenizer import torch app = Flask(__name__) # Load the Nepali sentence similarity model model_name = "l3cube-pune/indic-sentence-similarity-sbert" model = AutoModel.from_pretrained(model_name) tokenizer = AutoTokenizer.from_pretrained(model_name) torch.save(model,"model.pt") model_2 = torch.load("model.pt") # Load your array of sentences sentence_array = [ "घर/जग्गा नामसारीको सिफारिस गरी पाऊँ", "मोही लगत कट्टाको सिफारिस पाउं", "घर कायम सिफारीस पाउं", "अशक्त सिफारिस", "छात्रबृत्तिको लागि सिफारिस पाऊँ", "आदिवासी जनजाति प्रमाणित गरी पाऊँ", "अस्थायी बसोबासको सिफारिस पाऊँ", "स्थायी बसोबासको सिफारिस गरी पाऊँ", "आर्थिक अवस्था कमजोर सिफारिस पाऊँ", "नयाँ घरमा विद्युत जडान सिफारिस पाऊँ", "धारा जडान सिफारिस पाऊँ", "दुबै नाम गरेको ब्यक्ति एक्कै हो भन्ने सिफारिस पाऊँ", "ब्यवसाय बन्द सिफारिस पाऊँ", "व्यवसाय ठाउँसारी सिफारिस पाऊँ", "कोर्ट–फिमिनाहा सिफारिस पाऊँ", "नाबालक सिफारिस पाऊँ", "चौपाया सिफारिस पाऊँ", "संस्था दर्ता गरी पाऊँ", "विद्यालय ठाउँसारी सिफारिस पाऊँ", "विद्यालय संचालन/कक्षा बृद्धिको सिफारिस पाऊँ", "जग्गा दर्ता सिफारिस पाऊँ", "संरक्षक सिफारिस पाऊँ", "बाटो कायम सिफारिस पाऊँ", "जिवित नाता प्रमाणित गरी पाऊँ", "मृत्यु नाता प्रमाणित गरी पाऊँ", "निःशुल्क स्वास्थ्य उपचारको लागि सिफारिस पाऊँ", "संस्था दर्ता सिफारिस पाऊँ", "घर बाटो प्रमाणित गरी पाऊँ", "चारकिल्ला प्रमाणित गरि पाउ", "जन्म मिति प्रमाणित गरि पाउ", "बिवाह प्रमाणित गरि पाऊँ", "घर पाताल प्रमाणित गरी पाऊँ", "हकदार प्रमाणित गरी पाऊँ", "अबिवाहित प्रमाणित गरी पाऊँ", "जग्गाधनी प्रमाण पूर्जा हराएको सिफारिस पाऊँ", "व्यवसाय दर्ता गरी पाऊँ", "मोही नामसारीको लागि सिफारिस गरी पाऊँ", "मूल्याङ्कन गरी पाऊँ", "तीन पुस्ते खोली सिफारिस गरी पाऊँ", "पुरानो घरमा विद्युत जडान सिफारिस पाऊँ", "सामाजिक सुरक्षा भत्ता नाम दर्ता सम्बन्धमा", "बहाल समझौता", "कोठा खोली पाऊँ", "अपाङ्ग सिफारिस पाऊँ", "नापी नक्सामा बाटो नभएको फिल्डमा बाटो भएको सिफारिस", "धारा नामसारी सिफारिस पाऊँ", "विद्युत मिटर नामसारी सिफारिस", "फोटो टाँसको लागि तीन पुस्ते खोली सिफारिस पाऊ", "कोठा बन्द सिफारिस पाऊँ", "अस्थाई टहराको सम्पत्ति कर तिर्न सिफारिस गरी पाऊँ", "औषधि उपचार बापत खर्च पाउँ भन्ने सम्वन्धमा", "नागरिकता र प्रतिलिपि सिफारिस", "अंग्रेजीमा सिफारिस" ] @app.route('/check_similarity', methods=['POST']) def check_similarity(): try: #get data from form data voice_text = request.form['voice_text'] # Sample voice input (replace this with your actual voice-to-text conversion) """ voice_text = "कस्तो सिफारिस गर्नुपर्छ अस्थायी बसोबासको?" """ # Tokenize the voice_text voice_inputs = tokenizer(voice_text, return_tensors="pt") # Get the model output (embedding) model_output = model(**voice_inputs).pooler_output # Calculate similarity scores similarity_scores = [] for sentence in sentence_array: sentence_inputs = tokenizer(sentence, return_tensors="pt") sentence_output = model(**sentence_inputs).pooler_output # You might want to use a different score if the model provides one similarity_score = torch.nn.functional.cosine_similarity(model_output, sentence_output).item() similarity_scores.append(similarity_score) # Find the most similar sentence max_similarity_index = similarity_scores.index(max(similarity_scores)) most_similar_sentence = sentence_array[max_similarity_index] result = { "voice_text": voice_text, "most_similar_sentence": most_similar_sentence, "max_similarity_index" : max_similarity_index, "similarity_score": max(similarity_scores) } return jsonify(result) except Exception as e: return jsonify({"error": str(e)}), 500 if __name__ == '__main__': app.run(port=5000, debug=True)