import streamlit as st import streamlit.components.v1 as components from transformers import AutoTokenizer, AutoModelForSequenceClassification, AutoModelForSeq2SeqLM from catboost import CatBoostRegressor import pandas as pd device = 'cpu' model = CatBoostRegressor() model.load_model("./model.cbm") @st.cache(allow_output_mutation=True) def language_model(): language_tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-ru-en") language_model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-ru-en") return language_model, language_tokenizer def prepare_data(text): text = text.lower() text = re.sub(r"[,.;#?!&$]+\ *", " ", text) return text def preapare_language(text, language_tokenizer, language_model): tokenized_text = language_tokenizer.prepare_seq2seq_batch([text], return_tensors='pt') translation = language_model.generate(**tokenized_text) text = language_tokenizer.batch_decode(translation, skip_special_tokens=False)[0][5:-4] return text def inference_sweets(): HtmlFile = open("index.html", 'r', encoding='utf-8') source_code = HtmlFile.read() print(source_code) components.html(source_code) inference_sweets() st.write('Select a language/ default is English') rus_buton = st.button('Russian') if rus_buton: ingredients = st.text_area("Write the ingredients of the dish") recipe = st.text_area("Write the recipe") language_model, language_tokenizer = language_model() ingredients = preapare_language(ingredients, language_tokenizer, language_model) recipe = preapare_language(recipe, language_tokenizer, language_model) servings = int(st.text_area("Write number of servings")) data = pd.DataFrame({'TranslatedInstructions':[recipe],'TranslatedIngredients':[ingredients],'Servings': [servings]}) result_button = st.button('Click') if result_button: time = model.predict(data)[0] st.write('The dish will be prepared') st.write(int(time)) else: ingredients = st.text_area("Write the ingredients of the dish") recipe = st.text_area("Write the recipe") servings = st.text_area("Write number of servings") if len(servings): data = pd.DataFrame({'TranslatedInstructions':[recipe],'TranslatedIngredients':[ingredients],'Servings': [int(servings)]}) result_button = st.button('Click') if result_button: time = model.predict(data)[0] st.write('The dish will be prepared') st.write(int(time))