> ## 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.

# Uso de APIMart con Gemini CLI

> Guía detallada sobre cómo configurar el servicio de API de APIMart en la herramienta de línea de comandos Gemini CLI. Aprenda a usar los modelos de IA de APIMart, incluyendo las series Gemini, GPT y Claude, desde el terminal.

## Introducción

Gemini CLI es la herramienta de línea de comandos oficial de Google que permite a los desarrolladores interactuar con los modelos de IA Gemini desde el terminal. Tras configurar la API de APIMart, puede usar los modelos avanzados de APIMart —GPT, Claude y Gemini— en Gemini CLI.

## Requisitos previos

Antes de comenzar:

1. **Node.js y npm instalados**\
   Descargue e instale desde el [sitio web de Node.js](https://nodejs.org/) (se recomienda v16 o superior)

2. **Clave de API de APIMart**\
   Inicie sesión en la [Consola de APIMart](https://apimart.ai/keys) y copie su clave de API (comienza con `sk-`)

<Note>
  **Consejo:** Si aún no tiene una cuenta en APIMart, regístrese primero en [APIMart](https://apimart.ai) y cree una clave de API.
</Note>

## Paso 1: Instalar Gemini CLI

### 1.1 Instalación global

Instale Gemini CLI globalmente con npm:

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

### 1.2 Verificar la instalación

Compruebe que la CLI está disponible:

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

Si se imprime un número de versión, la instalación fue correcta.

<Note>**Consejo:** Si no se encuentra el comando, reinicie el terminal o verifique la configuración del `PATH` global de npm.</Note>

## Paso 2: Configurar la API de APIMart

### 2.1 Variables de entorno temporales

Para pruebas o uso puntual; los valores se borran al cerrar el terminal.

**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 Variables de entorno permanentes (recomendado)

Persista la configuración para que los nuevos shells la carguen automáticamente.

**Windows (PowerShell):**

1. Ejecute PowerShell como Administrador
2. Configure variables de entorno a nivel de usuario:

```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. Reinicie PowerShell o recargue las variables:

```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. Edite su archivo rc del shell:

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

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

2. Añada:

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

3. Recargue:

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

### 2.3 Usar un archivo `.env`

Cree `.env` en su proyecto:

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

Cargue las variables antes de ejecutar 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>
  **Importante:** - Reemplace `sk-xxxxxxxxxxxx` con su clave real de la [Consola de APIMart](https://apimart.ai/keys) - Establezca `GEMINI_BASE_URL` en `https://api.apimart.ai/v1` para que Gemini CLI se comunique con APIMart - Añada `.env` a `.gitignore` para que las claves no se confirmen al repositorio
</Note>

### 2.4 Verificar la configuración

**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
```

Si los valores parecen correctos, la configuración fue correcta.

## Paso 3: Usar Gemini CLI

### 3.1 Chat básico

Sesión interactiva:

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

Prompt único:

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

### 3.2 Elegir un modelo

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

O:

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

### 3.3 Leer prompts desde un archivo

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

O canalizar:

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

### 3.4 Guardar la salida en un archivo

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

## Paso 4: Llamar a APIMart desde su código

### 4.1 SDK de Python

```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"}
    ]
  }'
```

## Paso 5: Elegir un modelo

### Modelos recomendados

APIMart admite muchos modelos; elija según la tarea y el presupuesto.

**Gemini**

| Nombre del modelo | ID del modelo          | Características    | Recomendado para                        |
| ----------------- | ---------------------- | ------------------ | --------------------------------------- |
| Gemini 2.0 Flash  | `gemini-2.0-flash-exp` | Rápido, multimodal | Respuestas rápidas, visión + texto      |
| Gemini 2.5 Pro    | `gemini-2.5-pro`       | Gran capacidad     | Problemas difíciles, análisis           |
| Gemini 2.5 Flash  | `gemini-2.5-flash`     | Muy receptivo      | Chat en tiempo real, trabajos por lotes |

**GPT**

| Nombre del modelo | ID del modelo | Características | Recomendado para                 |
| ----------------- | ------------- | --------------- | -------------------------------- |
| GPT-5             | `gpt-5`       | Primer nivel    | Razonamiento, escritura creativa |
| GPT-4o            | `gpt-4o`      | Alta calidad    | Chat general, contenido          |
| GPT-4o Mini       | `gpt-4o-mini` | Económico       | Tareas simples, alto volumen     |

**Claude**

| Nombre del modelo | ID del modelo                | Características      | Recomendado para                              |
| ----------------- | ---------------------------- | -------------------- | --------------------------------------------- |
| Claude Sonnet 4.5 | `claude-sonnet-4-5-20250929` | Razonamiento potente | Código, lógica                                |
| Claude Haiku 4.5  | `claude-haiku-4-5-20251001`  | Muy rápido           | Preguntas y respuestas, chat de baja latencia |

<Tip>
  **Selecciones rápidas:** - 🚀 **Stack al estilo Google:** `gemini-2.0-flash-exp`, `gemini-2.5-pro` - 💡 **Programación:** `claude-sonnet-4-5-20250929`, `gpt-5` - 💰 **Costo:** `gpt-4o-mini`, `claude-haiku-4-5-20251001` - ⚡ **Velocidad:** `gemini-2.0-flash-exp`, `gpt-4o-mini`
</Tip>

## Características avanzadas

### Multimodal (imágenes)

Con un modelo multimodal como 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

Transmita tokens a medida que llegan:

```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='')
```

### Ajustar parámetros

Modele la aleatoriedad y la longitud:

```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
)
```

## Preguntas frecuentes

### Q1: "Invalid API key" o errores de autenticación

1. **Formato de la clave**
   * Debe comenzar con `sk-`
   * Sin espacios adicionales al pegar

2. **Variables de entorno**

   ```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. **Estado de la clave**
   * Compruebe la clave en la [Consola de APIMart](https://apimart.ai/keys)
   * Asegúrese de que su cuenta tenga saldo

### Q2: ¿Cómo verifico la configuración de la 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: ¿Qué lenguajes son compatibles?

Cualquier lenguaje que pueda enviar solicitudes HTTP funciona con APIMart:

* ✅ **Python**: se recomienda el SDK de OpenAI
* ✅ **JavaScript / TypeScript**: Node o navegador
* ✅ **Java**: cliente HTTP
* ✅ **Go**: biblioteca estándar o bibliotecas
* ✅ **PHP**: cURL o Guzzle
* ✅ **Ruby**: gemas HTTP
* ✅ **C# / .NET**: `HttpClient`
* ✅ **Swift**: `URLSession`
* ✅ **Otros**: cualquier cosa con HTTP

### Q4: ¿Dónde puedo ver el uso y la facturación?

En la [Consola de APIMart](https://apimart.ai/overview):

* 📊 Estadísticas de llamadas en vivo
* 💰 Costos y facturas
* 📈 Tendencias de uso
* 🔍 Registros de solicitudes
* ⚙️ Gestión de claves de API

### Q5: Errores comunes de API

| Error                       | Causa probable                 | Qué hacer                                                       |
| --------------------------- | ------------------------------ | --------------------------------------------------------------- |
| `401 Unauthorized`          | Clave incorrecta o revocada    | Corrija la clave en env / consola                               |
| `429 Too Many Requests`     | Límite de tasa                 | Reduzca la velocidad o actualice el plan                        |
| `500 Internal Server Error` | Problema temporal del servidor | Vuelva a intentarlo más tarde; contacte con soporte si persiste |
| `insufficient_quota`        | Saldo bajo                     | Recargue en la consola                                          |

## Mejores prácticas

### 1. Reintentos y retroceso

```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. Control de costos

```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. Prompts del sistema

```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"
        }
    ]
)
```

## Características

Con **Google AI Studio** y **APIMart** obtiene:

* 🤖 **Muchos modelos**: GPT, Claude, Gemini y más
* 🌍 **Compatible con OpenAI**: forma familiar de solicitud / respuesta
* ⚡ **Rendimiento**: baja latencia, alta concurrencia
* 💰 **Precios claros**: pague por uso
* 📊 **Observabilidad**: supervise las llamadas en tiempo real
* 🔒 **Seguridad**: salvaguardas orientadas a empresas
* 🚀 **Integración rápida**: llamadas HTTP / SDK simples
* 📚 **Documentación**: guías y ejemplos

## Soporte

* 📚 [Documentación de APIMart](https://docs.apimart.ai)
* 📚 [Documentación de 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="Comience con APIMart" icon="rocket" href="https://apimart.ai">
  Cree una cuenta, obtenga una clave de API y use múltiples modelos de IA desde los flujos de trabajo de Google AI Studio y más.
</Card>
