Kizaa19 commited on
Commit
d3b4e47
·
verified ·
1 Parent(s): 9cc16f5

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -0
app.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import streamlit as st
3
+ import pandas as pd
4
+ import numpy as np
5
+ import faiss
6
+ import re
7
+ from datasets import load_dataset
8
+ from sentence_transformers import SentenceTransformer
9
+ from transformers import pipeline
10
+ from huggingface_hub import login
11
+
12
+ # 1. KONFIGURASI
13
+ st.set_page_config(page_title="AI Culinary Assistant", page_icon="🍳")
14
+ st.title("🍳 AI Culinary Assistant Dashboard")
15
+
16
+ @st.cache_resource
17
+ def load_models_and_data():
18
+ # Mengambil token dari Environment Variables Hugging Face
19
+ # Anda akan mengaturnya di menu 'Settings' Space nanti
20
+ HF_TOKEN = os.getenv("HF_TOKEN")
21
+
22
+ if HF_TOKEN:
23
+ login(token=HF_TOKEN)
24
+
25
+ try:
26
+ # Muat Dataset
27
+ dataset = load_dataset("junwatu/indonesian-recipes", split="train", token=HF_TOKEN)
28
+ df = dataset.to_pandas()
29
+
30
+ # Pembersihan
31
+ df['ingredients'] = df['ingredients'].astype(str).replace(['nan', 'None', ''], 'bahan tidak tersedia')
32
+ df_sample = df.head(30).copy()
33
+
34
+ # Model Klasifikasi (Ringan)
35
+ classifier = pipeline("zero-shot-classification", model="typeform/distilbert-base-uncased-mnli")
36
+
37
+ # Model Embedding
38
+ model_embed = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
39
+ embeddings = model_embed.encode(df_sample['ingredients'].tolist(), show_progress_bar=False)
40
+
41
+ # FAISS
42
+ index = faiss.IndexFlatL2(embeddings.shape[1])
43
+ index.add(np.array(embeddings))
44
+
45
+ return df_sample, model_embed, index, classifier
46
+ except Exception as e:
47
+ st.error(f"Error: {e}")
48
+ return None, None, None, None
49
+
50
+ with st.spinner("🤖 Menghubungkan ke AI Hub..."):
51
+ df_sample, model_embed, index_faiss, classifier = load_models_and_data()
52
+
53
+ # --- LOGIKA UI (BAGIAN BAWAH) ---
54
+ if df_sample is not None:
55
+ st.sidebar.header("🎛️ Filter")
56
+ query = st.sidebar.text_input("🛒 Masukkan Bahan:")
57
+ if st.sidebar.button("Cari"):
58
+ # Logika pencarian sama seperti sebelumnya...
59
+ st.write("Mencari resep terbaik untuk Anda...")
60
+ # (Tambahkan logika pencarian Anda di sini)