from src.services.utils import * from src.services.processor import * dataset = load_data() def process_input(data, dataset, data_type): print(data) if data_type == "problem": prompt = set_prompt(data.problem) constraints = retrieve_constraints(prompt) elif data_type == "constraints": constraints = data.constraints constraints_stemmed = stem(constraints, "constraints") result_similarities, matrix = get_contrastive_similarities(constraints_stemmed, dataset) save_to_pickle(result_similarities) if data.forced_technologies: forced_technologies = search_technology_by_name(data.forced_technologies, dataset) res,forced_matrix = get_contrastive_similarities(constraints_stemmed, dataset) forced_combination = find_best_list_combinations(constraints_stemmed, forced_technologies, forced_matrix) else: forced_combination = [] best_combinations = find_best_list_combinations(constraints_stemmed, dataset, matrix) best_technologies_id = select_technologies(best_combinations, forced_combination) best_technologies = get_technologies_by_id(best_technologies_id, dataset) return best_technologies def process_prior_art(technologies, data, data_type, techno_type): try: prior_art_reponse = search_prior_art(technologies, data, data_type, techno_type) prior_art_search = add_citations_and_collect_uris(prior_art_reponse) except Exception as e: print(f"An error occured during the process, trying again : {e}") prior_art_reponse = search_prior_art(technologies, data, data_type, techno_type) prior_art_search = add_citations_and_collect_uris(prior_art_reponse) print("PRIOR ART SEARCH") print(prior_art_reponse) print(prior_art_search) return prior_art_search