Spaces:
Sleeping
Sleeping
import torch | |
import tensorflow as tf | |
import streamlit as st | |
from transformers import pipeline | |
import requests | |
# Hugging Face'i tõlkemudel | |
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-et-en") | |
# Spoonacular API | |
API_KEY = "063a7388c8094613b724beda1804059e" | |
API_URL = "https://api.spoonacular.com/recipes/findByIngredients" | |
DETAIL_URL = "https://api.spoonacular.com/recipes/{id}/information" # Parandatud DETAIL_URL määratlus | |
# Streamlit kasutajaliides | |
st.title("Retseptide generaator") | |
ingredients = st.text_area("Sisesta koostisosad eesti keeles (nt kinoa, tomat)") | |
max_calories = st.number_input("Maksimaalsed kalorid (valikuline)", min_value=0, step=1, value=0) | |
min_protein = st.number_input("Minimaalne proteiin (valikuline)", min_value=0, step=1, value=0) | |
if st.button("Otsi retsepte"): | |
if ingredients: | |
# Tõlgi koostisosad | |
translated_ingredients = translator(ingredients)[0]['translation_text'] | |
# Tee päring Spoonacular API-le | |
params = { | |
"ingredients": translated_ingredients, | |
"number": 5, | |
"apiKey": API_KEY, | |
} | |
response = requests.get(API_URL, params=params) | |
if response.status_code == 200: | |
recipes = response.json() | |
st.write("Leitud retseptid:") | |
if not recipes: | |
st.warning("Ühtegi retsepti ei leitud nende koostisosade põhjal.") | |
else: | |
for recipe in recipes: | |
recipe_id = recipe['id'] | |
detail_response = requests.get( | |
DETAIL_URL.format(id=recipe_id), | |
params={"apiKey": API_KEY} | |
) | |
if detail_response.status_code == 200: | |
details = detail_response.json() | |
recipe_link = details.get('sourceUrl', 'Link puudub') | |
st.write(f"- **{details['title']}**") | |
st.write(f"[Vaata retsepti siin]({recipe_link})") | |
else: | |
st.warning(f"Ei saanud üksikasju retsepti jaoks: {recipe['title']}") | |
else: | |
st.error(f"Viga retseptide leidmisel! Status code: {response.status_code}") | |
st.write("Vastus serverist:") | |
st.write(response.json()) # Kuvame vastuse tõrkeotsinguks | |
else: | |
st.warning("Palun sisesta koostisosad.") |