mjsp commited on
Commit
0d97090
·
1 Parent(s): 482f784

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -22
app.py CHANGED
@@ -1,10 +1,11 @@
1
  import streamlit as st
2
- from transformers import pipeline, AutoModelForSeq2SeqLM, AutoTokenizer
3
  from rembg import remove
4
  from PIL import Image
5
  from io import BytesIO
6
  import base64
7
  from transformers import GPT2LMHeadModel, GPT2Tokenizer
 
8
  from transformers import set_seed
9
  import random
10
 
@@ -31,6 +32,11 @@ image_classifier = pipeline("image-classification", model="mjsp/sweet")
31
  recipe_model = GPT2LMHeadModel.from_pretrained("gpt2")
32
  recipe_tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
33
 
 
 
 
 
 
34
  MAX_FILE_SIZE = 5 * 1024 * 1024 # 5MB
35
 
36
  def convert_image(img):
@@ -50,6 +56,16 @@ def fix_image(upload):
50
  st.sidebar.markdown("\n")
51
  st.sidebar.download_button("Download fixed image", convert_image(fixed), "fixed.png", "image/png")
52
 
 
 
 
 
 
 
 
 
 
 
53
 
54
  def generate_summary(recipe):
55
  # Tokenize the text into words and sentences
@@ -1301,24 +1317,6 @@ st.write("## Recipe Generation")
1301
  selected_item = st.selectbox("Select a food item", [entry["title"] for entry in dataset])
1302
 
1303
 
1304
- # Load the translation model and tokenizer for Hindi
1305
- model_name = "t5-base"
1306
- translator_model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
1307
- translator_tokenizer = AutoTokenizer.from_pretrained(model_name)
1308
-
1309
- # Load the translation pipeline
1310
- translator = pipeline(task="translation", model=translator_model, tokenizer=translator_tokenizer)
1311
-
1312
- # Function to translate text to Hindi
1313
- def translate_to_hindi(text):
1314
- try:
1315
- translation_result = translator(text, src="en", tgt="hi")
1316
- return translation_result[0]['translation_text']
1317
- except Exception as e:
1318
- st.error(f"Error during translation: {str(e)}")
1319
- return None
1320
-
1321
- selected_entry = None # Initialize selected_entry outside the block
1322
 
1323
  if st.button("Generate Recipe"):
1324
  matching_entries = [entry for entry in dataset if entry["title"] == selected_item]
@@ -1351,7 +1349,6 @@ if st.button("Generate Recipe"):
1351
 
1352
  translate_button = st.sidebar.button("Translate to Hindi")
1353
 
1354
-
1355
  if translate_button:
1356
  if selected_entry and "recipe" in selected_entry:
1357
  recipe_to_translate = selected_entry["recipe"]
@@ -1360,8 +1357,7 @@ if translate_button:
1360
  st.write(f"Translated Recipe (Hindi): {translated_recipe}")
1361
  else:
1362
  st.error("Please generate a recipe first.")
1363
-
1364
-
1365
 
1366
  # Add some descriptions and instructions
1367
  st.sidebar.markdown("### Instructions")
 
1
  import streamlit as st
2
+ from transformers import pipeline
3
  from rembg import remove
4
  from PIL import Image
5
  from io import BytesIO
6
  import base64
7
  from transformers import GPT2LMHeadModel, GPT2Tokenizer
8
+ from transformers import MarianMTModel, MarianTokenizer
9
  from transformers import set_seed
10
  import random
11
 
 
32
  recipe_model = GPT2LMHeadModel.from_pretrained("gpt2")
33
  recipe_tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
34
 
35
+ # Load the translation model and tokenizer for translation from English to Hindi
36
+ translation_model_name = "Helsinki-NLP/opus-mt-en-hi"
37
+ translator_model = MarianMTModel.from_pretrained(translation_model_name)
38
+ translator_tokenizer = MarianTokenizer.from_pretrained(translation_model_name)
39
+
40
  MAX_FILE_SIZE = 5 * 1024 * 1024 # 5MB
41
 
42
  def convert_image(img):
 
56
  st.sidebar.markdown("\n")
57
  st.sidebar.download_button("Download fixed image", convert_image(fixed), "fixed.png", "image/png")
58
 
59
+ def translate_to_hindi(text):
60
+ try:
61
+ translation_result = translator_tokenizer(text, return_tensors="pt", padding=True)
62
+ generated_tokens = translator_model.generate(**translation_result)
63
+ translated_text = translator_tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)[0]
64
+ return translated_text
65
+ except Exception as e:
66
+ st.error(f"Error during translation: {str(e)}")
67
+ return None
68
+
69
 
70
  def generate_summary(recipe):
71
  # Tokenize the text into words and sentences
 
1317
  selected_item = st.selectbox("Select a food item", [entry["title"] for entry in dataset])
1318
 
1319
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1320
 
1321
  if st.button("Generate Recipe"):
1322
  matching_entries = [entry for entry in dataset if entry["title"] == selected_item]
 
1349
 
1350
  translate_button = st.sidebar.button("Translate to Hindi")
1351
 
 
1352
  if translate_button:
1353
  if selected_entry and "recipe" in selected_entry:
1354
  recipe_to_translate = selected_entry["recipe"]
 
1357
  st.write(f"Translated Recipe (Hindi): {translated_recipe}")
1358
  else:
1359
  st.error("Please generate a recipe first.")
1360
+
 
1361
 
1362
  # Add some descriptions and instructions
1363
  st.sidebar.markdown("### Instructions")