๐Ÿค– MANDEV - Gemini API

MANDEV Internal API untuk mengakses Google Gemini AI API

๐Ÿš€ Service Aktif
๐Ÿงช Test Prompt ๐Ÿ“„ Document Analyzer ๐Ÿ“š API Docs

โœจ Fitur Utama

  • Endpoint REST API untuk generate text dari Gemini AI
  • Autentikasi x-api-key untuk keamanan
  • Support untuk response dalam format JSON
  • Konfigurasi temperature dan max tokens
  • Error handling yang baik
  • Health check endpoint
  • Dokumentasi API otomatis dengan Swagger UI
  • Manajemen API key (generate, add, remove, validate)
  • Analisis Dokumen menggunakan Gemini Vision API
  • Web Interface untuk analisis dokumen

๐Ÿ”’ Keamanan

  • Semua endpoint yang memerlukan autentikasi menggunakan x-api-key header
  • API key divalidasi untuk format dan panjang minimal
  • Error 401 dikembalikan untuk autentikasi yang gagal
  • API key disembunyikan sebagian saat ditampilkan untuk keamanan
  • File upload dibatasi berdasarkan ekstensi
  • Validasi ukuran file

๐Ÿ“š Dokumentasi API

Setelah server berjalan, Anda dapat mengakses dokumentasi interaktif:

๐Ÿ“„ Analisis Dokumen

  • File gambar: Langsung dianalisis menggunakan Gemini Vision
  • File teks: Dibaca sebagai text dan dianalisis
  • File PDF/DOC: Memerlukan konversi terlebih dahulu (OCR atau ekstraksi teks)

โš™๏ธ Parameter

  • prompt (required): Text prompt untuk Gemini AI
  • max_tokens (optional): Maksimum jumlah token dalam response (default: 1000)
  • temperature (optional): Kreativitas response 0.0-1.0 (default: 0.7)
  • file (required untuk analisis dokumen): File yang akan dianalisis

๐ŸŒ Web Interface

๐Ÿ“„ Document Analyzer

Akses halaman web interface di: http://localhost:8000/document-analyzer

  • Upload file dengan drag & drop
  • Form untuk analisis dokumen
  • Tampilan hasil yang user-friendly

๐ŸŒ API Endpoints

GET/healthNo Auth

Returns status kesehatan service

GET/No Auth

Returns informasi API

POST/generateAuth Required

Generate text response dari Gemini AI

{
  "prompt": "Jelaskan tentang artificial intelligence",
  "max_tokens": 1000,
  "temperature": 0.7
}

POST/generate-jsonAuth Required

Generate response dalam format JSON

{
  "prompt": "Buat daftar 3 kota di Indonesia dengan populasi",
  "max_tokens": 1000,
  "temperature": 0.7
}

POST/analyze-documentAuth Required

Analisis dokumen menggunakan Gemini Vision API

Format File: PNG, JPG, JPEG, GIF, BMP, TXT, PDF, DOC, DOCX

curl -X POST "http://localhost:8000/analyze-document"
  -H "x-api-key: your-api-key"
  -F "file=@document.jpg"
  -F "prompt=Analisis isi dokumen ini dan berikan poin-poin penting"
  -F "max_tokens=3000"
  -F "temperature=0.2" curl -X POST "http://localhost:8000/analyze-document" \
  -H "x-api-key: your-api-key" \
  -F "file=@document.jpg" \
  -F "prompt=Analisis isi dokumen ini dan berikan poin-poin penting" \
  -F "max_tokens=3000" \
  -F "temperature=0.2"

๐Ÿ”‘ Manajemen API Key

API ini menggunakan x-api-key header untuk autentikasi. Berikut adalah cara mengelola API key user:

๐Ÿ”„ Generate API Key Baru

python manage_api_keys.py generate

Menghasilkan API key baru dengan format yang valid

โž• Tambah API Key

python manage_api_keys.py add your-api-key-12345

Menambahkan API key baru ke daftar yang valid

๐Ÿ“‹ Lihat Daftar API Key

python manage_api_keys.py list

Menampilkan semua API key yang terdaftar

๐Ÿ” Validasi API Key

python manage_api_keys.py validate your-api-key-12345

Memvalidasi apakah API key sudah terdaftar dan valid

๐Ÿ—‘๏ธ Hapus API Key

python manage_api_keys.py remove your-api-key-12345

Menghapus API key dari daftar yang valid

โš™๏ธ API Key Default

Untuk testing, beberapa API key sudah tersedia:

  • test-api-key-12345
  • user-api-key-67890
  • demo-api-key-abcdef

๐Ÿ’ป Contoh Penggunaan - cURL

Generate Text

curl -X POST "http://localhost:8000/generate" \
    -H "Content-Type: application/json" \
    -H "x-api-key: your-user-api-key-here" \
    -d '{"prompt": "Jelaskan tentang machine learning"}'

Generate JSON

curl -X POST "http://localhost:8000/generate-json" \
    -H "Content-Type: application/json" \
    -H "x-api-key: your-user-api-key-here" \
    -d '{"prompt": "Buat daftar 5 makanan Indonesia"}'

Analisis Dokumen

curl -X POST "http://localhost:8000/analyze-document" \
    -H "x-api-key: your-api-key" \
    -F "file=@document.jpg" \
    -F "prompt=Analisis isi dokumen ini dan berikan poin-poin penting"

๐Ÿ Contoh Penggunaan - Python

import requests

# Generate text
response = requests.post(
    "http://localhost:8000/generate",
    json={
        "prompt": "Jelaskan tentang deep learning",
        "max_tokens": 500,
        "temperature": 0.8
    },
    headers={
        "Content-Type": "application/json",
        "x-api-key": "your-user-api-key-here"
    }
)
print(response.json())

# Analisis dokumen
with open('document.jpg', 'rb') as f:
    response = requests.post(
        "http://localhost:8000/analyze-document",
        files={'file': f},
        data={
            'prompt': 'Analisis dokumen ini dan berikan ringkasan',
            'max_tokens': 2000,
            'temperature': 0.3
        },
        headers={'x-api-key': 'your-api-key'}
    )
print(response.json())