import gradio as gr from gradio_client import Client, handle_file from deep_translator import GoogleTranslator # Import GoogleTranslator dari deep_translator from themes import IndonesiaTheme_2 # Pastikan tema ini telah dibuat atau diimpor dengan benar # Inisialisasi client untuk API Oryx client = Client("THUdyh/Oryx") # Fungsi untuk memanggil API /predict dan menerjemahkan hasilnya def oryx_inference(multimodal): try: # Jika terdapat file yang diunggah, siapkan dengan handle_file() files = [handle_file(file) for file in multimodal["files"]] # Panggilan ke API /predict dengan parameter multimodal result = client.predict( multimodal={"text": multimodal["text"], "files": files}, api_name="/predict" ) # Menerjemahkan hasil ke dalam bahasa Indonesia menggunakan deep_translator translated_result = GoogleTranslator(source='auto', target='id').translate(result) return translated_result except Exception as e: return f"Terjadi kesalahan: {str(e)}" # CSS untuk styling antarmuka css = """ #col-left, #col-mid { margin: 0 auto; max-width: 400px; padding: 15px; border-radius: 10px; background-color: #FFFFFF; /* Use a white background for clean look */ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Softer shadow */ } #col-right { margin: 0 auto; max-width: 400px; padding: 15px; border-radius: 10px; background: linear-gradient(180deg, #C5CAE9, #E8EAF6); /* Subtle gradient */ color: #37474F; /* Dark gray text for better contrast */ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } #col-bott { margin: 0 auto; padding: 15px; border-radius: 10px; background-color: #FFFFFF; /* Same as other columns for consistency */ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } #banner { width: 100%; text-align: center; margin-bottom: 20px; } #run-button { background-color: #00796B; /* Teal color for buttons */ color: white; font-weight: bold; padding: 20px; border-radius: 10px; cursor: pointer; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); /* Subtle shadow for modern touch */ } #footer { text-align: center; margin-top: 20px; color: #607D8B; /* Slightly darker text color */ } #markdown-silver { color: #B0BEC5; /* Lighter gray for markdown text */ } """ # Interface Gradio menggunakan gr.Blocks with gr.Blocks(css=css, theme=IndonesiaTheme_2()) as app: # Tambahkan banner gr.HTML("""