Kizaa19's picture
update token
fb88cd4 verified
Raw
History Blame Contribute Delete
2.13 kB
import os
import streamlit as st
import pandas as pd
import numpy as np
import faiss
import re
from datasets import load_dataset
from sentence_transformers import SentenceTransformer
from transformers import pipeline
from huggingface_hub import login
# 1. KONFIGURASI
st.set_page_config(page_title="AI Culinary Assistant", page_icon="🍳")
st.title("🍳 AI Culinary Assistant Dashboard")
@st.cache_resource
def load_models_and_data():
# Mengambil token dari Environment Variables Hugging Face
# Anda akan mengaturnya di menu 'Settings' Space nanti
HF_TOKEN = os.getenv("HF_TOKEN")
if HF_TOKEN:
login(token=HF_TOKEN)
try:
# Muat Dataset
dataset = load_dataset("junwatu/indonesian-recipes", split="train", token=HF_TOKEN)
df = dataset.to_pandas()
# Pembersihan
df['ingredients'] = df['ingredients'].astype(str).replace(['nan', 'None', ''], 'bahan tidak tersedia')
df_sample = df.head(30).copy()
# Model Klasifikasi (Ringan)
classifier = pipeline("zero-shot-classification", model="typeform/distilbert-base-uncased-mnli")
# Model Embedding
model_embed = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
embeddings = model_embed.encode(df_sample['ingredients'].tolist(), show_progress_bar=False)
# FAISS
index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(np.array(embeddings))
return df_sample, model_embed, index, classifier
except Exception as e:
st.error(f"Error: {e}")
return None, None, None, None
with st.spinner("πŸ€– Menghubungkan ke AI Hub..."):
df_sample, model_embed, index_faiss, classifier = load_models_and_data()
# --- LOGIKA UI (BAGIAN BAWAH) ---
if df_sample is not None:
st.sidebar.header("πŸŽ›οΈ Filter")
query = st.sidebar.text_input("πŸ›’ Masukkan Bahan:")
if st.sidebar.button("Cari"):
# Logika pencarian sama seperti sebelumnya...
st.write("Mencari resep terbaik untuk Anda...")
# (Tambahkan logika pencarian Anda di sini)