Download app.py from sksayril/testing-2-kitpot: direct link, hf CLI and curl.
- Browser
- Download file 2.66 kB
-
https://huggingface.co/sksayril/testing-2-kitpot/resolve/main/app.py
- Command line
-
hf download hf://sksayril/testing-2-kitpot/app.py
-
curl -L -o app.py https://huggingface.co/sksayril/testing-2-kitpot/resolve/main/app.py
2.66 kB
| from flask import Flask, request, jsonify | |
| from model import load_model, find_similar_images,extract_filenames | |
| import os | |
| import difflib | |
| import pandas as pd | |
| from flask_cors import CORS | |
| import json | |
| app = Flask(__name__) | |
| CORS(app) | |
| data = pd.read_csv('kitpot.categoriesNew.csv', encoding='ISO-8859-1') | |
| titles = data['DATA'].tolist() | |
| lowercase_titles = [str(title).lower() if isinstance(title, str) else '' for title in titles] | |
| data = list(filter(None, lowercase_titles)) | |
| def find_closest_match(input_word, data): | |
| if input_word in data: | |
| return [input_word] | |
| closest_match = difflib.get_close_matches(input_word, data) | |
| return closest_match | |
| def process_search_term(search_term, data): | |
| words = search_term.split(' ') | |
| processed_words = [] | |
| for word in words: | |
| if word.lower() in data: | |
| processed_words.append(word) | |
| else: | |
| closest_match = find_closest_match(word.lower(), data) | |
| processed_words.append(closest_match[0] if closest_match else word) | |
| processed_sentence = ' '.join(processed_words) | |
| return processed_sentence | |
| def get_closest_match(): | |
| search_term = request.args.get('search_key', default='', type=str) | |
| if not search_term: | |
| response = { | |
| 'message': 'Search term is empty.', | |
| } | |
| return jsonify(response) | |
| processed_sentence = process_search_term(search_term, data) | |
| if processed_sentence: | |
| response = { | |
| 'result': processed_sentence, | |
| } | |
| else: | |
| response = { | |
| 'message': 'No similar words found.', | |
| } | |
| return jsonify(response) | |
| def get_similar_images(): | |
| if 'imageSearch' not in request.files: | |
| return jsonify({'error': 'No file part'}) | |
| file = request.files['imageSearch'] | |
| if file.filename == '': | |
| return jsonify({'error': 'No selected file'}) | |
| if file: | |
| filename = file.filename | |
| upload_folder = 'uploads' | |
| if not os.path.exists(upload_folder): | |
| os.makedirs(upload_folder) | |
| filepath = os.path.join(upload_folder, filename) | |
| file.save(filepath) | |
| similar_images = find_similar_images(filepath) | |
| actualFormatedData=extract_filenames(similar_images) | |
| # actualFormatedData = convert_file_paths(similar_images) | |
| os.remove(filepath) | |
| return jsonify({'result': actualFormatedData}) | |
| else: | |
| return jsonify({'error': 'File format not supported'}) | |
| if __name__ == '__main__': | |
| app.run(host='0.0.0.0',port=8000,debug=True) | |