Spaces:
Runtime error
Runtime error
import gradio as gr | |
import torch | |
from src.data.preprocessing_utils import DataPreprocessor | |
MODEL_FILEPATH = 'models/nnet/nnet.pt' | |
device = 'cuda' if torch.cuda.is_available() else 'cpu' | |
with open(MODEL_FILEPATH, 'rb') as file: | |
clf = torch.load(file, map_location=device) | |
preprocessor = DataPreprocessor() | |
strings = { | |
'nationality': 'Есть предпочтения по национальности', | |
'families': 'Есть предпочтение семьям', | |
'sex': 'Есть предпочтения по полу' | |
} | |
examples = [ | |
'''Просьба посредников не беспокоить. Ищем ОДНУ ДЕВУШКУ. | |
Сдаётся в аренду на длительный срок светлая и уютная квартира - студия | |
общей площадью 33м2, находящаяся на 4м этаже 5и этажного теплого кирпичного дома. Современный ремонт! | |
Рядом в пешей доступности парк Красная Пресня (5 мин)/ Красногвардейские Пруды (2 мин)/ | |
Москва-Сити (10 мин)! Магазины/кофейни/рестораны! 10 мин на машине до любой точки в центре города! | |
В квартире есть вся необходимая для проживания мебель и техника. | |
Строго без животных, строго Славян. Просмотр в любое время - ключи на руках. | |
''', | |
'''Сдам на длительный срок семейной паре, только с гражданством РФ. | |
Квартира после косметического ремонта. Без мебели. | |
Есть кухонная мебель и мебель в ванной комнате. | |
Бытовая техника для проживания присутствует. | |
Оплата = аренда + счётчики (свет, вода). | |
''', | |
'''В современном доме. Собственник без комиссии. | |
Закрытая территория. Доступ через охрану. | |
М Прокшино 10 мин пешком. | |
Без детей и животных. | |
Возможно без залога. | |
Счетчики и интернет включены в стоимость | |
''' | |
] | |
def make_output_string(labels): | |
output_list = [] | |
for label in strings.keys(): | |
if labels[label]: | |
output_list.append(strings[label]) | |
if output_list: | |
output_str = ', '.join(output_list).capitalize() | |
else: | |
output_str = 'Нет особенностей' | |
return output_str | |
def predict_label(text): | |
preprocessed_text = preprocessor.preprocess_texts([text]) | |
print(preprocessed_text) | |
if preprocessed_text == [[]]: | |
return 'Введите текст объявления!' | |
labels = clf.predict_labels(preprocessed_text) | |
output_str = make_output_string(labels) | |
return output_str | |
demo = gr.Interface(fn=predict_label, inputs=[gr.Text(label="Текст объявления", lines=5)], | |
outputs=[gr.Textbox(label="Особенности объявления")], | |
examples=examples) | |
demo.launch() | |