import streamlit as st import os import json from datetime import datetime, timedelta import base64 import pandas as pd import pydeck as pdk from paper import ( literature_research_task, outline_task, draft_writing_task, citation_task, editing_task, chatbot_task, run_task ) # st.set_page_config() st.set_page_config( page_title="AI Agent for FS", page_icon="ð", layout="wide", initial_sidebar_state="expanded" ) # ------------------------------------------ # # ------------------------------------------ translations = { "id": { "page_title": "Agen AI untuk FS", "header": "Agen AI untuk FS", "create_itinerary": "Membuat Laporan FS", "trip_details": "Rincian", "origin": "Topic", "destination": "Judul ", "travel_dates": "Tanggal selesai", "duration": "Jumlah halaman (pages)", "preferences": "Keywords/Focus", "special_requirements": "Additional Instructions", "submit": "ð Buatkan FS", "request_details": "Your FS Request", "from": "Topic", "when": "Due Date", "budget": "Paper Type", "travel_style": "Writing Style", "live_agent_outputs": "Live Agent Outputs", "full_itinerary": "Full Paper", "details": "Details", "download_share": "Download & Share", "save_itinerary": "Save Your Paper", "plan_another_trip": "ð Generate Another Paper", "about": "About", "how_it_works": "How it works", "travel_agents": "Research Agents", "share_itinerary": "Share Your Paper", "save_for_mobile": "Save for Mobile", "built_with": "Built with âĪïļ for you", "itinerary_ready": "Your Research Paper is Ready! ð", "personalized_experience": "Kami telah membuat makalah akademis yang dipersonalisasi berdasarkan masukan Anda. Lihat makalah Anda di bawah ini.", "agent_activity": "Agent Activity", "error_origin_destination": "Harap masukkan topik penelitian dan judul makalah", "your_itinerary_file": "Your Paper File", "text_format": "Text format - Can be opened in any text editor" }, "en": { "page_title": "AI Agent for Academic Research", "header": "AI Agent for Academic Research", "create_itinerary": "Generate Your Research Paper", "trip_details": "Research Details", "origin": "Research Topic", "destination": "Paper Title", "travel_dates": "Due Date", "duration": "Paper Length (pages)", "preferences": "Keywords/Focus", "special_requirements": "Additional Instructions", "submit": "ð Generate My Research Paper", "request_details": "Your Research Request", "from": "Topic", "when": "Due Date", "budget": "Paper Type", "travel_style": "Writing Style", "live_agent_outputs": "Live Agent Outputs", "full_itinerary": "Full Paper", "details": "Details", "download_share": "Download & Share", "save_itinerary": "Save Your Paper", "plan_another_trip": "ð Generate Another Paper", "about": "About", "how_it_works": "How it works", "travel_agents": "Research Agents", "share_itinerary": "Share Your Paper", "save_for_mobile": "Save for Mobile", "built_with": "Built with âĪïļ for you", "itinerary_ready": "Your Research Paper is Ready! ð", "personalized_experience": "We've created a personalized academic paper based on your inputs. Explore your paper below.", "agent_activity": "Agent Activity", "error_origin_destination": "Please enter both the research topic and paper title.", "your_itinerary_file": "Your Paper File", "text_format": "Text format - Can be opened in any text editor" } } def t(key): lang = st.session_state.get("selected_language", "id") return translations[lang].get(key, key) # --------------------------- # # --------------------------- if 'selected_language' not in st.session_state: st.session_state.selected_language = "id" # ------------------------------------------ # # ------------------------------------------ with st.sidebar: language = st.selectbox( "Language / Bahasa", ["Indonesia","English"] ) lang_map = { "Indonesia": "id", "English": "en" } st.session_state.selected_language = lang_map.get(language, "id") # ------------------------------------------ # # ------------------------------------------ st.markdown(""" """, unsafe_allow_html=True) def get_download_link(text_content, filename): b64 = base64.b64encode(text_content.encode()).decode() href = f'ðĨ {t("save_itinerary")}' return href def display_modern_progress(current_step, total_steps=5): if 'progress_steps' not in st.session_state: st.session_state.progress_steps = { 0: {'status': 'pending', 'name': t("trip_details")}, 1: {'status': 'pending', 'name': t("about")}, 2: {'status': 'pending', 'name': t("live_agent_outputs")}, 3: {'status': 'pending', 'name': t("download_share")}, 4: {'status': 'pending', 'name': t("full_itinerary")} } for i in range(total_steps): if i < current_step: st.session_state.progress_steps[i]['status'] = 'complete' elif i == current_step: st.session_state.progress_steps[i]['status'] = 'active' else: st.session_state.progress_steps[i]['status'] = 'pending' progress_percentage = (current_step / total_steps) * 100 st.progress(progress_percentage / 100) st.markdown("
Hasilkan FS Anda dengan agen yang berbasis AI.
FS dibantu AI
Isi rincian di bawah ini
", unsafe_allow_html=True) instruksi = """ Asumsi-asumsi berikut harus dimasukkan untuk memastikan analisis akurat dan realistis: 1. **Proyeksi Pasar dan Permintaan** - Pertumbuhan permintaan produk berdasarkan tren pasar. - Permintaan produk meningkat 5% per tahun. 2. **Tingkat Inflasi dan Suku Bunga** - Inflasi dan suku bunga untuk proyeksi keuangan. - Inflasi 3% dan discount rate 10%. 3. **Asumsi Finansial** - Durasi penggunaan mesin baru sebelum penggantian: 20 tahun. - Biaya Investasi: - Harga pembelian mesin baru (termasuk pajak, biaya pengiriman, instalasi) sebesar 33 milyar. - Biaya pembongkaran dan disposal mesin lama (100 juta). - Sumber Pendanaan: - Modal investasi mesin baru dari investor 4. **Ketersediaan Suku Cadang dan Dukungan Teknis** - Ketersediaan layanan purna jual. - *Contoh*: Suku cadang tersedia dengan waktu respons 24 jam. 5. **Kebutuhan Tenaga Kerja** - Jumlah operator yang dibutuhkan. - *Contoh*: 2 operator per shift untuk mesin baru. 6. **Waktu Henti (Downtime)** - Estimasi waktu henti selama transisi dan operasi. - *Contoh*: Downtime instalasi 1 minggu. 7. **Efisiensi Produksi** - Peningkatan kualitas produk dengan mesin baru. - Jumlah Produksi Grade #1 (terbaik) meningkat dari 1000 kg/hari menjadi 1200 kg/hari. - Spesifikasi Mesin Lama: - Kapasitas produksi 5000 kg per hari. - Usia mesin 21 tahun, biaya perawatan 17 juta per bulan. - Konsumsi energi 3 juta per hari. - Kualitas output grade bagus 50 persen (harga 35 ribu per kg). Grade kurang bagus 50 persen (harga 15 ribu per kg). - Spesifikasi Mesin Baru: - Kapasitas produksi 5000 kg per hari. - Usia mesin 1 tahun, biaya perawatan 7 juta per bulan. - Konsumsi energi 1 juta per hari. - Kualitas output grade bagus 80 persen (harga 35 ribu per kg). Grade kurang bagus 20 persen (harga 15 ribu per kg). 8. **Kebutuhan Pelatihan** - Alur kerja dengan mesin lama dan baru relatif sama: meliputi tahapan produksi teh hitam yaitu: pelayuan, penggilingan, oksidasi, pengeringan, dan sortasi. - Kebutuhan pelatihan operator untuk mesin baru biayanya 50 juta rupiah (sekali saja) untuk semua tahapan pekerjaan 9. Data Pasar - **Permintaan Pasar**: - Volume permintaan teh hitam saat ini dan proyeksi ke depan relative stabil seperti biasanya. 10. Data Lingkungan dan Regulasi - **Dampak Lingkungan**: - Emisi karbon atau limbah dari mesin lama vs mesin baru: mesin baru lebih sedikit risiko pencemaran polusi dan limbah. - **Kepatuhan Regulasi**: - Standar keamanan pangan atau sertifikasi yang harus dipenuhi (mesin baru lebih mudah memenuhi standar HACCP dan ISO). 11. Data Risiko - **Risiko Teknis**: - Bisa dikatakan tidak ada risiko kemungkinan kegagalan mesin baru atau waktu adaptasi yang lama. - **Risiko Finansial**: - Fluktuasi harga bahan baku teh atau mesin diperkirakan dalam kendali. - Ketidakpastian pasar yang memengaruhi penjualan: memang tidak bisa diprediksi sehingga perlu Analisa bila harga jual turun 5 persen dan naik 5 persen. - **Risiko Operasional**: - Resistensi dari karyawan terhadap perubahan teknologi: diperkirakan tidak terjadi. - Gangguan produksi selama transisi penggantian mesin: tidak ada jeda waktu instalasi mesin baru yang menyebabkan turun produksi karena Lokasi yang berbeda mesin lama dan baru. """ with st.form("research_form"): col1, col2 = st.columns(2) with col1: research_topic = st.text_input(t("origin"), placeholder="e.g., Feasibility Study penggantian menyeluruh mesin produksi teh hitam", value="Feasibility Study penggantian menyeluruh mesin produksi teh hitam") paper_title = st.text_input(t("destination"), placeholder="e.g., Penggantian Mesin Produksi Teh Hitam", value="Penggantian Mesin Produksi Teh Hitam") due_date = st.date_input(t("travel_dates"), min_value=datetime.now()) with col2: paper_length = st.slider(t("duration"), min_value=5, max_value=50, value=10) paper_type_options = ["Journal", "Conference", "Thesis", "Review"] paper_type = st.selectbox(t("budget"), paper_type_options, help="Select the type of paper") writing_style = st.multiselect(t("travel_style"), options=["Formal", "Technical", "Creative"], default=["Formal"]) additional_instructions = st.text_area(t("special_requirements"), placeholder="Instruksi atau persyaratan tambahan apa pun...", value=instruksi) keywords = st.text_area(t("preferences"), placeholder="Masukkan kata kunci atau area fokus, dipisahkan dengan koma") submit_button = st.form_submit_button(t("submit")) st.markdown('{t("personalized_experience")}
{t("text_format")}
""" + t("built_with") + """