import streamlit as st
import google.generativeai as genai
import os
import time # Impor untuk jeda (opsional)

# --- Konfigurasi Awal (Sama seperti kode Anda) ---
try:
    # Ambil API Key dari Replit Secrets
    api_key = os.environ['GOOGLE_API_KEY']
    genai.configure(api_key=api_key)
except KeyError:
    st.error("Error: GOOGLE_API_KEY tidak ditemukan di Replit Secrets.")
    st.info("Pastikan Anda sudah menambahkan GOOGLE_API_KEY ke bagian Secrets di Replit.")
    st.stop() # Hentikan eksekusi jika API Key tidak ada

# Inisialisasi model
model_name = 'models/gemini-pro-latest'
try:
    model = genai.GenerativeModel(model_name)
except Exception as e:
    st.error(f"Terjadi kesalahan saat inisialisasi model: {e}")
    st.info("Pastikan nama model sudah benar.")
    st.stop()
# --------------------------------------------------

# --- Pengaturan Streamlit ---
st.title("🤖 Chatbot SKANBARA")
st.caption("Didukung oleh Google Gemini & Streamlit")

# Inisialisasi riwayat chat jika belum ada
# st.session_state digunakan untuk menyimpan variabel antar interaksi
if "messages" not in st.session_state:
    st.session_state.messages = []
    st.session_state.messages.append({"role": "assistant", "content": "Halo! Ada yang bisa saya bantu?"})

# Tampilkan riwayat chat
for message in st.session_state.messages:
    with st.chat_message(message["role"]):
        st.markdown(message["content"])

# Input dari pengguna
prompt_pengguna = st.chat_input("Ketik pesan Anda di sini...")

if prompt_pengguna:
    # Tambahkan pesan pengguna ke riwayat chat dan tampilkan
    st.session_state.messages.append({"role": "user", "content": prompt_pengguna})
    with st.chat_message("user"):
        st.markdown(prompt_pengguna)

    # Kirim prompt ke Gemini dan tampilkan respons
    with st.chat_message("assistant"):
        message_placeholder = st.empty()
        message_placeholder.markdown("Memproses...✍️")
        try:
            # Mengirim prompt ke model Gemini
            response = model.generate_content(prompt_pengguna)

            # Menampilkan respons
            if response.parts:
                full_response = response.text
                message_placeholder.markdown(full_response)
                # Tambahkan respons AI ke riwayat chat
                st.session_state.messages.append({"role": "assistant", "content": full_response})
            else:
                message_placeholder.markdown("Maaf, saya tidak bisa memberikan respons saat ini.")
                st.session_state.messages.append({"role": "assistant", "content": "Maaf, saya tidak bisa memberikan respons saat ini."})

        except Exception as e:
            st.error(f"Terjadi kesalahan saat mengirim prompt: {e}")
            message_placeholder.markdown(f"Terjadi kesalahan: {e}")
            st.session_state.messages.append({"role": "assistant", "content": f"Terjadi kesalahan: {e}"})