> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Menggunakan APIMart dengan Gemini CLI

> Panduan terperinci untuk mengonfigurasi layanan API APIMart di alat baris perintah Gemini CLI. Pelajari cara menggunakan model AI APIMart, termasuk seri Gemini, GPT, dan Claude, dari terminal.

## Pendahuluan

Gemini CLI adalah alat baris perintah resmi Google yang memungkinkan developer berinteraksi dengan model AI Gemini dari terminal. Setelah mengonfigurasi API APIMart, Anda dapat menggunakan model canggih APIMart, seperti GPT, Claude, dan Gemini, di Gemini CLI.

## Prasyarat

Sebelum memulai:

1. **Node.js dan npm sudah terinstal**\
   Unduh dan instal dari [situs Node.js](https://nodejs.org/) (disarankan v16 atau lebih baru)

2. **APIMart API key**\
   Masuk ke [Konsol APIMart](https://apimart.ai/keys) dan salin API key Anda (diawali dengan `sk-`)

<Note>
  **Tips:** Jika Anda belum memiliki akun APIMart, daftar terlebih dahulu di [APIMart](https://apimart.ai) dan buat API key.
</Note>

## Langkah 1: Instal Gemini CLI

### 1.1 Instalasi global

Instal Gemini CLI secara global dengan npm:

```bash theme={null}
npm install -g @google/gemini-cli
```

### 1.2 Verifikasi instalasi

Pastikan CLI tersedia:

```bash theme={null}
gemini --version
```

Jika nomor versi ditampilkan, instalasi berhasil.

<Note>**Tips:** Jika perintah tidak ditemukan, mulai ulang terminal atau periksa konfigurasi `PATH` global npm Anda.</Note>

## Langkah 2: Konfigurasikan API APIMart

### 2.1 Environment variable sementara

Untuk pengujian atau penggunaan sekali jalan; nilai akan hilang saat terminal ditutup.

**Windows (PowerShell):**

```powershell theme={null}
$env:GEMINI_API_KEY = "sk-xxxxxxxxxxxx"
$env:GEMINI_BASE_URL = "https://api.apimart.ai/v1"
```

**macOS/Linux (Bash):**

```bash theme={null}
export GEMINI_API_KEY="sk-xxxxxxxxxxxx"
export GEMINI_BASE_URL="https://api.apimart.ai/v1"
```

### 2.2 Environment variable permanen (direkomendasikan)

Konfigurasi yang persisten agar shell baru memuatnya secara otomatis.

**Windows (PowerShell):**

1. Jalankan PowerShell sebagai Administrator
2. Atur environment variable di tingkat pengguna:

```powershell theme={null}
[System.Environment]::SetEnvironmentVariable('GEMINI_API_KEY', 'sk-xxxxxxxxxxxx', 'User')
[System.Environment]::SetEnvironmentVariable('GEMINI_BASE_URL', 'https://api.apimart.ai/v1', 'User')
```

3. Mulai ulang PowerShell, atau muat ulang variabel:

```powershell theme={null}
$env:GEMINI_API_KEY = [System.Environment]::GetEnvironmentVariable('GEMINI_API_KEY', 'User')
$env:GEMINI_BASE_URL = [System.Environment]::GetEnvironmentVariable('GEMINI_BASE_URL', 'User')
```

**macOS/Linux (Bash):**

1. Edit file rc shell Anda:

```bash theme={null}
# Bash
nano ~/.bashrc

# Zsh (default on macOS)
nano ~/.zshrc
```

2. Tambahkan:

```bash theme={null}
# APIMart Gemini CLI
export GEMINI_API_KEY="sk-xxxxxxxxxxxx"
export GEMINI_BASE_URL="https://api.apimart.ai/v1"
```

3. Muat ulang:

```bash theme={null}
source ~/.bashrc   # Bash
source ~/.zshrc    # Zsh
```

### 2.3 Menggunakan file `.env`

Buat `.env` di proyek Anda:

```bash theme={null}
# .env
GEMINI_API_KEY=sk-xxxxxxxxxxxx
GEMINI_BASE_URL=https://api.apimart.ai/v1
```

Muat variabel sebelum menjalankan Gemini:

**macOS/Linux:**

```bash theme={null}
export $(cat .env | xargs) && gemini chat
```

**Windows (PowerShell):**

```powershell theme={null}
Get-Content .env | ForEach-Object {
    $name, $value = $_.split('=')
    Set-Content env:\$name $value
}
gemini chat
```

<Note>
  **Penting:** - Ganti `sk-xxxxxxxxxxxx` dengan key asli dari [Konsol APIMart](https://apimart.ai/keys) - Atur `GEMINI_BASE_URL` ke `https://api.apimart.ai/v1` agar Gemini CLI terhubung ke APIMart - Tambahkan `.env` ke `.gitignore` agar key tidak ikut ter-commit
</Note>

### 2.4 Verifikasi konfigurasi

**macOS/Linux:**

```bash theme={null}
echo $GEMINI_API_KEY
echo $GEMINI_BASE_URL
```

**Windows (PowerShell):**

```powershell theme={null}
echo $env:GEMINI_API_KEY
echo $env:GEMINI_BASE_URL
```

Jika nilainya terlihat benar, konfigurasi berhasil.

## Langkah 3: Gunakan Gemini CLI

### 3.1 Chat dasar

Sesi interaktif:

```bash theme={null}
gemini chat
```

Prompt sekali jalan:

```bash theme={null}
gemini "Give a short overview of the history of artificial intelligence"
```

### 3.2 Pilih model

```bash theme={null}
gemini chat --model gpt-4o
```

Atau:

```bash theme={null}
gemini "Write a Python quicksort implementation" --model claude-sonnet-4-5-20250929
```

### 3.3 Baca prompt dari file

```bash theme={null}
gemini --input prompt.txt
```

Atau gunakan pipe:

```bash theme={null}
cat prompt.txt | gemini
```

### 3.4 Simpan output ke file

```bash theme={null}
gemini "Generate a React component" --output component.jsx
```

## Langkah 4: Panggil APIMart dari kode Anda

### 4.1 Python SDK

```python theme={null}
import openai

# APIMart
openai.api_key = "sk-xxxxxxxxxxxx"  # Your APIMart API key
openai.api_base = "https://api.apimart.ai/v1"

response = openai.ChatCompletion.create(
    model="gemini-2.0-flash-exp",
    messages=[
        {"role": "user", "content": "Hi—please introduce yourself"}
    ]
)

print(response.choices[0].message.content)
```

### 4.2 JavaScript / TypeScript

```javascript theme={null}
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-xxxxxxxxxxxx",
  baseURL: "https://api.apimart.ai/v1",
});

async function main() {
  const completion = await client.chat.completions.create({
    model: "gemini-2.0-flash-exp",
    messages: [{ role: "user", content: "Hi—please introduce yourself" }],
  });

  console.log(completion.choices[0].message.content);
}

main();
```

### 4.3 cURL

```bash theme={null}
curl https://api.apimart.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxxxx" \
  -d '{
    "model": "gemini-2.0-flash-exp",
    "messages": [
      {"role": "user", "content": "Hi—please introduce yourself"}
    ]
  }'
```

## Langkah 5: Pilih model

### Model yang direkomendasikan

APIMart mendukung banyak model; pilih berdasarkan tugas dan anggaran.

**Gemini**

| Nama model       | ID Model               | Karakteristik     | Cocok untuk                     |
| ---------------- | ---------------------- | ----------------- | ------------------------------- |
| Gemini 2.0 Flash | `gemini-2.0-flash-exp` | Cepat, multimodal | Jawaban cepat, visi + teks      |
| Gemini 2.5 Pro   | `gemini-2.5-pro`       | Kemampuan kuat    | Masalah sulit, analisis         |
| Gemini 2.5 Flash | `gemini-2.5-flash`     | Sangat responsif  | Chat real-time, pekerjaan batch |

**GPT**

| Nama model  | ID Model      | Karakteristik   | Cocok untuk                    |
| ----------- | ------------- | --------------- | ------------------------------ |
| GPT-5       | `gpt-5`       | Tingkat teratas | Penalaran, penulisan kreatif   |
| GPT-4o      | `gpt-4o`      | Kualitas tinggi | Chat umum, konten              |
| GPT-4o Mini | `gpt-4o-mini` | Hemat biaya     | Tugas sederhana, volume tinggi |

**Claude**

| Nama model        | ID Model                     | Karakteristik  | Cocok untuk                         |
| ----------------- | ---------------------------- | -------------- | ----------------------------------- |
| Claude Sonnet 4.5 | `claude-sonnet-4-5-20250929` | Penalaran kuat | Kode, logika                        |
| Claude Haiku 4.5  | `claude-haiku-4-5-20251001`  | Sangat cepat   | Tanya jawab, chat berlatensi rendah |

<Tip>
  **Pilihan cepat:** - 🚀 **Stack ala Google:** `gemini-2.0-flash-exp`, `gemini-2.5-pro` - 💡 **Coding:** `claude-sonnet-4-5-20250929`, `gpt-5` - 💰 **Biaya:** `gpt-4o-mini`, `claude-haiku-4-5-20251001` - ⚡ **Kecepatan:** `gemini-2.0-flash-exp`, `gpt-4o-mini`
</Tip>

## Fitur lanjutan

### Multimodal (gambar)

Dengan model multimodal seperti Gemini 2.0 Flash:

```python theme={null}
response = openai.ChatCompletion.create(
    model="gemini-2.0-flash-exp",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What’s in this image?"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/image.jpg"
                    }
                }
            ]
        }
    ]
)
```

### Streaming

Streaming token saat tiba:

```python theme={null}
stream = openai.ChatCompletion.create(
    model="gemini-2.0-flash-exp",
    messages=[{"role": "user", "content": "Write a short poem about spring"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end='')
```

### Parameter penyetelan

Atur keacakan dan panjang:

```python theme={null}
response = openai.ChatCompletion.create(
    model="gemini-2.0-flash-exp",
    messages=[{"role": "user", "content": "Your question"}],
    temperature=0.7,        # randomness (0–2)
    max_tokens=2000,        # max output length
    top_p=0.9,              # nucleus sampling
    presence_penalty=0,     # topic diversity
    frequency_penalty=0     # repetition penalty
)
```

## FAQ

### Q1: Error "Invalid API key" atau autentikasi

1. **Format key**
   * Harus diawali dengan `sk-`
   * Tidak boleh ada spasi tambahan saat menempel

2. **Environment variable**

   ```bash theme={null}
   # macOS / Linux
   echo $GEMINI_API_KEY
   echo $GEMINI_BASE_URL

   # Windows PowerShell
   echo $env:GEMINI_API_KEY
   echo $env:GEMINI_BASE_URL
   ```

3. **Status key**
   * Periksa key di [Konsol APIMart](https://apimart.ai/keys)
   * Pastikan akun Anda memiliki saldo

### Q2: Bagaimana memverifikasi setup API?

```python theme={null}
import openai

openai.api_key = "sk-xxxxxxxxxxxx"
openai.api_base = "https://api.apimart.ai/v1"

try:
    response = openai.ChatCompletion.create(
        model="gemini-2.0-flash-exp",
        messages=[{"role": "user", "content": "test"}],
        max_tokens=10
    )
    print("✅ API configuration OK")
    print(f"Reply: {response.choices[0].message.content}")
except Exception as e:
    print(f"❌ API configuration failed: {e}")
```

### Q3: Bahasa apa saja yang didukung?

Bahasa apa pun yang dapat mengirim permintaan HTTP dapat digunakan dengan APIMart:

* ✅ **Python** — SDK OpenAI direkomendasikan
* ✅ **JavaScript / TypeScript** — Node atau browser
* ✅ **Java** — klien HTTP
* ✅ **Go** — stdlib atau pustaka
* ✅ **PHP** — cURL atau Guzzle
* ✅ **Ruby** — gem HTTP
* ✅ **C# / .NET** — `HttpClient`
* ✅ **Swift** — `URLSession`
* ✅ **Lainnya** — apa pun yang mendukung HTTP

### Q4: Di mana saya dapat melihat penggunaan dan penagihan?

Di [Konsol APIMart](https://apimart.ai/overview):

* 📊 Statistik panggilan langsung
* 💰 Biaya dan faktur
* 📈 Tren penggunaan
* 🔍 Log permintaan
* ⚙️ Manajemen API key

### Q5: Error API umum

| Error                       | Kemungkinan penyebab     | Tindakan                                         |
| --------------------------- | ------------------------ | ------------------------------------------------ |
| `401 Unauthorized`          | Key salah atau dicabut   | Perbaiki key di env / konsol                     |
| `429 Too Many Requests`     | Batas laju               | Perlambat atau tingkatkan paket                  |
| `500 Internal Server Error` | Masalah server sementara | Coba lagi nanti; hubungi dukungan jika berlanjut |
| `insufficient_quota`        | Saldo rendah             | Isi ulang di konsol                              |

## Praktik terbaik

### 1. Percobaan ulang dan backoff

```python theme={null}
import openai
import time

def call_with_retry(max_retries=3):
    for i in range(max_retries):
        try:
            response = openai.ChatCompletion.create(
                model="gemini-2.0-flash-exp",
                messages=[{"role": "user", "content": "Your question"}]
            )
            return response
        except openai.error.RateLimitError:
            if i < max_retries - 1:
                time.sleep(2 ** i)
                continue
            raise
        except Exception as e:
            print(f"Error: {e}")
            raise

response = call_with_retry()
```

### 2. Kontrol biaya

```python theme={null}
def choose_model(complexity):
    if complexity == "simple":
        return "gpt-4o-mini"
    elif complexity == "medium":
        return "gemini-2.0-flash-exp"
    return "gpt-5"

model = choose_model("simple")
response = openai.ChatCompletion.create(
    model=model,
    messages=[{"role": "user", "content": "Your question"}],
    max_tokens=500
)
```

### 3. Prompt sistem

```python theme={null}
response = openai.ChatCompletion.create(
    model="gemini-2.0-flash-exp",
    messages=[
        {
            "role": "system",
            "content": "You are an expert Python assistant who writes clear, efficient code."
        },
        {
            "role": "user",
            "content": "Implement quicksort for me"
        }
    ]
)
```

## Fitur

Dengan **Google AI Studio** dan **APIMart**, Anda mendapatkan:

* 🤖 **Banyak model** — GPT, Claude, Gemini, dan lainnya
* 🌍 **kompatibel dengan OpenAI** — format request / response yang familier
* ⚡ **Performa** — latensi rendah, konkurensi tinggi
* 💰 **Harga jelas** — bayar sesuai pemakaian
* 📊 **Observabilitas** — pantau panggilan secara real time
* 🔒 **Keamanan** — pengamanan berorientasi enterprise
* 🚀 **Integrasi cepat** — panggilan HTTP / SDK sederhana
* 📚 **Dokumentasi** — panduan dan contoh

## Dukungan

* 📚 [Dokumentasi APIMart](https://docs.apimart.ai)
* 📚 [Dokumentasi Google AI Studio](https://ai.google.dev/docs)
* 💬 [Discord](https://discord.gg/V8zqssyZ5c)
* 🐦 [Twitter @APIMart\_](https://x.com/APIMart_)
* 📧 [zhihong@apimart.ai](mailto:zhihong@apimart.ai)

***

<Card title="Mulai dengan APIMart" icon="rocket" href="https://apimart.ai">
  Buat akun, ambil API key, dan gunakan beberapa model AI dari alur kerja Google AI Studio dan lainnya.
</Card>
