import requests
import os

# Alamat API Flask
URL = "http://127.0.0.1:5000/predict"

# Masukkan lokasi gambar secara manual
IMAGE_PATH = input("Masukkan lokasi lengkap gambar: ").strip().strip('"')

# Cek apakah file benar-benar ada
if not os.path.exists(IMAGE_PATH):
    print("\n❌ File gambar tidak ditemukan di komputer!")
    print("Lokasi:", IMAGE_PATH)

else:
    try:
        with open(IMAGE_PATH, "rb") as image_file:

            # PENTING:
            # Nama "image" harus sama dengan api.py
            files = {
                "image": (
                    os.path.basename(IMAGE_PATH),
                    image_file,
                    "image/jpeg"
                )
            }

            response = requests.post(
                URL,
                files=files
            )

        print("\n========== HASIL PENGUJIAN API ==========")
        print("Status Code:", response.status_code)

        if response.status_code == 200:

            result = response.json()

            print("\nStatus:", result.get("success"))
            print("Kelas Prediksi:", result.get("class"))
            print("Confidence:", result.get("confidence"), "%")

            print("\n========== PROBABILITAS ==========")

            probabilities = result.get(
                "probabilities",
                {}
            )

            for kelas, nilai in probabilities.items():
                print(f"{kelas}: {nilai}%")

            print("\nModel:", result.get("model"))

        else:

            print("\nTerjadi kesalahan:")
            print(response.text)

    except Exception as e:

        print("\n❌ ERROR:")
        print(e)