๐Ÿ“– DOKUMENTASI RESMI GUDANGBOT API v3.5
๐Ÿ’ฌ KEMBALI KE CHAT
๐Ÿ“š NAVIGASI FITUR

๐Ÿ“Œ ARSITEKTUR & SINKRONISASI API GATEWAY

API Gateway Gemini Kukis Web Studio menyediakan antarmuka REST API berperforma tinggi untuk mengakses model AI Google Gemini Web (LLM, Multimodal Canvas, Imagen 3 Image Studio, dan Gemini TTS Engine) tanpa memerlukan API Key Cloud berbayar.

๐Ÿ”‘ Base URL API Gateway (Dinamis Sesuai Domain): https://gudangbot.com/Gemini/api.php
Gunakan header X-API-Key: YOUR_API_KEY atau query string ?api_key=YOUR_API_KEY pada setiap request.

๐Ÿ”‘ Metode Autentikasi

Metode Header Format Sintaks Status Keterangan
X-API-Key X-API-Key: gk_key_xxxx... SANGAT DIREKOMENDASIKAN
Authorization Authorization: Bearer gk_key_xxxx... Standar OAuth Bearer Header
Query Parameter ?api_key=gk_key_xxxx... Untuk pengujian cepat via Browser / Webhook

๐Ÿ’ฌ 1. GEMINI CHAT LLM (MULTI-TURN TEKS)

Endpoint untuk melakukan percakapan obrolan teks cerdas dengan riwayat konteks (Multi-turn Conversation) menggunakan Gemini Model.

POST api.php?action=gemini_send

๐Ÿ“‹ Parameter Request Body (JSON)

Parameter Tipe Status Deskripsi
prompt String Wajib Pesan atau pertanyaan teks yang ingin diajukan ke Gemini.
history Array Opsional Array riwayat percakapan: [{"sender":"user","text":"..."},{"sender":"gemini","text":"..."}]
model String Opsional Pilihan model: flash (default), lite, pro, canvas.
๐Ÿ’ป Contoh Request cURL (Chat LLM)
curl -X POST "https://gudangbot.com/Gemini/api.php?action=gemini_send" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gk_key_anda" \
  -d '{
    "prompt": "Jelaskan tentang Quantum Computing dalam 2 paragraf singkat",
    "model": "flash"
  }'
๐ŸŒ Contoh Request JavaScript Fetch (Chat LLM)
const res = await fetch('https://gudangbot.com/Gemini/api.php?action=gemini_send', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'gk_key_anda'
  },
  body: JSON.stringify({
    prompt: "Halo Gemini, buatkan puisi singkat tentang kopi pagi.",
    history: [
      { sender: "user", text: "Halo" },
      { sender: "gemini", text: "Halo! Ada yang bisa saya bantu?" }
    ]
  })
});
const data = await res.json();
console.log(data.reply);

๐Ÿ“ 2. CHAT INPUT FILE (MULTIMODAL CANVAS)

Endpoint untuk mengirim dokumen, gambar, audio, atau video bersama dengan prompt teks ke Gemini Multimodal Canvas Engine.

POST api.php?action=gemini_send

๐Ÿ“‹ Parameter Request Body (JSON)

Parameter Tipe Status Deskripsi
prompt String Wajib Instruksi/pertanyaan tentang file yang diunggah.
model String Wajib Isi dengan "canvas" untuk pemrosesan file multimodal.
attached_files Array Wajib Array objek file: [{"name":"foto.jpg", "type":"image/jpeg", "dataUrl":"data:image/jpeg;base64,..."}]
๐Ÿ’ป Contoh Request Python (Chat Upload Gambar / PDF)
import requests
import base64

with open("sampel_dokumen.pdf", "rb") as f:
    b64_data = base64.b64encode(f.read()).decode('utf-8')

payload = {
    "prompt": "Rangkum poin-poin utama dari dokumen PDF ini",
    "model": "canvas",
    "attached_files": [
        {
            "name": "sampel_dokumen.pdf",
            "type": "application/pdf",
            "dataUrl": f"data:application/pdf;base64,{b64_data}"
        }
    ]
}

headers = {"Content-Type": "application/json", "X-API-Key": "gk_key_anda"}
res = requests.post("https://gudangbot.com/Gemini/api.php?action=gemini_send", json=payload, headers=headers)
print(res.json().get("reply"))

๐ŸŽจ 3. BUAT GAMBAR (TEXT-TO-IMAGE)

Hasilkan gambar AI resolusi tinggi berbasis model Imagen 3 AI (`gemini-3.1-flash-image`) hanya dari teks deskripsi prompt.

POST api.php?action=gemini_generate_image

๐Ÿ“‹ Parameter Request Body (JSON)

Parameter Tipe Opsi Pilihan Deskripsi
prompt String Bebas Deskripsi visual gambar yang ingin dibuat.
aspect_ratio String 1:1, 9:16, 16:9, 4:3, 3:4 Rasio aspek kanvas gambar (Default: 1:1).
count Integer 1 hingga 4 Jumlah hasil variasi gambar yang ingin digenerate.
๐Ÿ’ป Contoh Request cURL (Buat Gambar Text2Img)
curl -X POST "https://gudangbot.com/Gemini/api.php?action=gemini_generate_image" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gk_key_anda" \
  -d '{
    "prompt": "Seekor kucing astronot imut memakai helm luar angkasa di permukaan bulan, lighting sinematik, 8k render",
    "aspect_ratio": "16:9",
    "count": 1
  }'

๐Ÿ–ผ๏ธ 4. GAMBAR REFERENSI 1 FOTO (IMAGE-TO-IMAGE)

Ubah atau modifikasi gaya visual dari 1 foto referensi. Backend secara otomatis menyisipkan prefix instruksi resmi Google Gemini:
[Petunjuk Foto Acuan terlampir]: <PROMPT>. Harap gunakan elemen dan gaya visual dari foto acuan yang dilampirkan secara harmonis.

โšก Rekomendasi Kompresi Gambar: Ubah ukuran foto acuan ke dimensi maksimal 800px dan kualitas JPEG 0.75 agar payload Base64 berukuran ringkas (~40KB-80KB).
๐ŸŒ Contoh JavaScript (Img2Img 1 Referensi Gambar)
const base64Foto = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...";

const res = await fetch('https://gudangbot.com/Gemini/api.php?action=gemini_generate_image', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'gk_key_anda'
  },
  body: JSON.stringify({
    prompt: "Ubah pria ini memakai jaket kulit cyberpunk dan kacamata neon hitam",
    aspect_ratio: "1:1",
    image_inputs: [
      { dataUrl: base64Foto, type: "image/jpeg" }
    ]
  })
});
const data = await res.json();
console.log("URL Gambar Hasil:", data.image_url);

๐Ÿ–ผ๏ธ๐Ÿ–ผ๏ธ 5. GAMBAR REFERENSI LEBIH DARI 1 (MAKS 5 FOTO)

Kombinasikan hingga 5 foto referensi sekaligus. Sesuai standar HAR Google Gemini Web Canvas, backend akan membungkus instruksi dengan prefix:
[Petunjuk Multi-Foto (N foto acuan terlampir)]: <PROMPT>. Harap gunakan elemen dan gaya visual dari foto-foto acuan yang dilampirkan secara harmonis.

๐ŸŒ Contoh Request JavaScript (Img2Img 2-5 Foto Referensi)
const fotoRef1 = "data:image/jpeg;base64,..."; // Foto Tokoh Pria
const fotoRef2 = "data:image/jpeg;base64,..."; // Foto Latar Belakang Candi

const res = await fetch('https://gudangbot.com/Gemini/api.php?action=gemini_generate_image', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'gk_key_anda'
  },
  body: JSON.stringify({
    prompt: "Gabungkan pria dari foto #1 berdiri anggun dengan latar belakang suasana candi dari foto #2, pencahayaan sore hari",
    aspect_ratio: "16:9",
    image_inputs: [
      { dataUrl: fotoRef1, type: "image/jpeg" },
      { dataUrl: fotoRef2, type: "image/jpeg" }
    ]
  })
});
const data = await res.json();
console.log("Hasil Gambar Gabungan Multi-Foto:", data.image_url);

๐Ÿ”Š 6. GEMINI TTS VOICE STUDIO (TEXT-TO-SPEECH)

Konversi naskah narasi menjadi file audio bermutu tinggi WAV (PCM 16-bit 24kHz) dengan 8 pilihan karakter suara AI dan preset intonasi emosi.

POST api.php?action=gemini_generate_tts

๐Ÿ“‹ Karakter Suara AI (Voice)

Pilihan voice: Kore (Default), Puck, Zephyr, Fenrir, Aoede, Charon, Sulafat, Vindemiatrix.

๐Ÿ’ป Contoh Request cURL (TTS Voice Generation)
curl -X POST "https://gudangbot.com/Gemini/api.php?action=gemini_generate_tts" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gk_key_anda" \
  -d '{
    "prompt": "Selamat datang di studio suara cerdas Google Gemini AI.",
    "intonation": "๐ŸŽ‰ Ceria & Energetik",
    "voice": "Kore"
  }'

๐ŸŽฌ 7. GEMINI VIDEO STUDIO (GOOGLE VEO 3.1)

Generasi video AI berdurasi 8โ€“10 detik menggunakan engine resmi Google Veo 3.1 dengan 3 mode utama: Text-to-Video (T2V), Frame-to-Video (I2V), dan Reference-to-Video (R2V), dilengkapi dengan pembersihan watermark otomatis.

POST api.php?action=submit_video
GET api.php?action=job_status&job_id=JOB_ID
GET api.php?action=download&file=FILENAME

๐ŸŽฏ Model Key Resmi

    1. Text to Video (T2V): model: "veo_3_1_t2v_lite_low_priority"
    2. Frame to Video (I2V): model: "veo_3_1_i2v_lite_low_priority" (Start Frame & End Frame)
    3. Reference Video (R2V): model: "veo_3_1_r2v_lite_low_priority" (Maksimal 5 gambar referensi)

๐Ÿ“‹ Parameter Request Body (JSON Submit `action=submit_video`)

Parameter Tipe Status Deskripsi
prompt String Wajib Deskripsi visual & gerakan skenario video.
model String Wajib veo_3_1_t2v_lite_low_priority, veo_3_1_i2v_lite_low_priority, atau veo_3_1_r2v_lite_low_priority.
aspect String Opsional portrait (9:16), landscape (16:9), atau square (1:1). (Default: portrait)
duration Integer Opsional Durasi video dalam detik (Default: 8).
start String Kondisional Data URL Base64 (data:image/jpeg;base64,...) / Media ID gambar awal *(Wajib untuk Mode I2V)*.
end String Opsional Data URL Base64 / Media ID gambar akhir *(Mode I2V)*.
ref Array Kondisional Array Data URL Base64 / Media ID *(Maks 5 gambar, Wajib untuk Mode R2V)*.

1๏ธโƒฃ Mode 1: Text to Video (T2V)

Membuat video animasi murni dari instruksi kalimat deskripsi prompt teks.

๐Ÿ’ป Contoh Request cURL (T2V - Text to Video)
curl -X POST "https://gudangbot.com/Gemini/api.php?action=submit_video" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gk_key_anda" \
  -d '{
    "prompt": "Burung elang raksasa terbang bebas melintasi pegunungan bersalju di sore hari yang cerah dengan pencahayaan sinematik",
    "aspect": "landscape",
    "duration": 8,
    "model": "veo_3_1_t2v_lite_low_priority"
  }'
๐ŸŒ Contoh Request JavaScript Fetch (T2V - Text to Video)
const res = await fetch('https://gudangbot.com/Gemini/api.php?action=submit_video', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'gk_key_anda'
  },
  body: JSON.stringify({
    prompt: "Pria astronot berjalan pelan di permukaan planet Mars, badai debu merah di latar belakang",
    aspect: "portrait",
    duration: 8,
    model: "veo_3_1_t2v_lite_low_priority"
  })
});
const data = await res.json();
console.log("Job ID Diterima:", data.job_id); // Gunakan job_id untuk polling status

2๏ธโƒฃ Mode 2: Frame to Video (I2V)

Menganimasikan 1 gambar diam (Start Frame) atau transisi 2 gambar (Start Frame โ†’ End Frame).

๐Ÿ’ป Contoh Request cURL (I2V - Start Frame Only)
curl -X POST "https://gudangbot.com/Gemini/api.php?action=submit_video" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gk_key_anda" \
  -d '{
    "prompt": "Karakter dari foto ini tersenyum manis lalu melambaikan tangan ke arah kamera",
    "aspect": "portrait",
    "duration": 8,
    "model": "veo_3_1_i2v_lite_low_priority",
    "start": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
  }'
๐ŸŒ Contoh Request JavaScript Fetch (I2V - Start & End Frame)
const base64Start = "data:image/jpeg;base64,..."; // Gambar Posisi Awal
const base64End = "data:image/jpeg;base64,...";   // Gambar Posisi Akhir

const res = await fetch('https://gudangbot.com/Gemini/api.php?action=submit_video', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'gk_key_anda'
  },
  body: JSON.stringify({
    prompt: "Transisi animasi halus dari karakter berdiri diam (Start) menjadi melompat bahagia (End)",
    aspect: "portrait",
    duration: 8,
    model: "veo_3_1_i2v_lite_low_priority",
    start: base64Start,
    end: base64End
  })
});
const data = await res.json();
console.log("Job ID Diterima:", data.job_id);

3๏ธโƒฃ Mode 3: Reference Video (R2V)

Menggunakan hingga 5 foto referensi aset/karakter sebagai panduan konsistensi visual video.

๐Ÿ’ป Contoh Request cURL (R2V - Reference Images)
curl -X POST "https://gudangbot.com/Gemini/api.php?action=submit_video" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gk_key_anda" \
  -d '{
    "prompt": "Karakter dari foto referensi #1 mengendarai sepeda motor listrik cyberpunk di kota masa depan",
    "aspect": "landscape",
    "duration": 8,
    "model": "veo_3_1_r2v_lite_low_priority",
    "ref": [
      "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
      "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
    ]
  }'
๐ŸŒ Contoh Request JavaScript Fetch (R2V - Reference Images)
const refPhotos = [
  "data:image/jpeg;base64,...", // Referensi Tokoh
  "data:image/jpeg;base64,..."  // Referensi Pakaian / Latar
];

const res = await fetch('https://gudangbot.com/Gemini/api.php?action=submit_video', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'gk_key_anda'
  },
  body: JSON.stringify({
    prompt: "Karakter dari foto referensi beraksi dalam adegan aksi sinematik, sudut kamera dinamis",
    aspect: "landscape",
    duration: 8,
    model: "veo_3_1_r2v_lite_low_priority",
    ref: refPhotos
  })
});
const data = await res.json();
console.log("Job ID Diterima:", data.job_id);

๐Ÿ”„ 4. Polling Status Job & Download Hasil MP4

๐Ÿ” Contoh Request cURL (Cek Status Job Video)
curl -X GET "https://gudangbot.com/Gemini/api.php?action=job_status&job_id=JOB_ID_ANDA" \
  -H "X-API-Key: gk_key_anda"
๐ŸŒ Contoh Polling Loop JavaScript (Fetch job_status)
async function pollVideoStatus(jobId) {
  const timer = setInterval(async () => {
    const res = await fetch(`https://gudangbot.com/Gemini/api.php?action=job_status&job_id=${encodeURIComponent(jobId)}`, {
      headers: { 'X-API-Key': 'gk_key_anda' }
    });
    const data = await res.json();
    
    if (data.status === 'done') {
      clearInterval(timer);
      console.log("Video Selesai!", data.outputs);
      // data.outputs[0].filename -> omni_xxx.mp4
    } else if (data.status === 'failed') {
      clearInterval(timer);
      console.error("Job Gagal:", data.error);
    }
  }, 4000); // Polling tiap 4 detik
}
๐Ÿ“ฅ Link Download File Video (Attachment):
https://gudangbot.com/Gemini/api.php?action=download&file=omni_12345.mp4&disposition=attachment
File otomatis diunduh dengan penamaan resmi: santriai_vids_12345.mp4.

๐Ÿงช 7. LIVE INTERACTIVE API TESTER PLAYGROUND

Uji coba panggilan API Gateway secara langsung dari browser Anda tanpa menulis kode!