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

# Использование APIMart с Gemini CLI

> Подробное руководство по настройке API-сервиса APIMart в инструменте командной строки Gemini CLI. Узнайте, как использовать AI-модели APIMart — включая серии Gemini, GPT и Claude — из терминала.

## Введение

Gemini CLI — официальный инструмент командной строки от Google, позволяющий разработчикам взаимодействовать с AI-моделями Gemini из терминала. После настройки API APIMart вы можете использовать в Gemini CLI продвинутые модели APIMart — GPT, Claude и Gemini.

## Предварительные требования

Перед началом:

1. **Установлены Node.js и npm**\
   Скачайте и установите с [сайта Node.js](https://nodejs.org/) (рекомендуется v16 или новее)

2. **Есть API-ключ APIMart**\
   Войдите в [консоль APIMart](https://apimart.ai/keys) и скопируйте API-ключ (начинается с `sk-`)

<Note>
  **Совет:** если у вас ещё нет аккаунта APIMart, сначала зарегистрируйтесь на [APIMart](https://apimart.ai) и создайте API-ключ.
</Note>

## Шаг 1: Установите Gemini CLI

### 1.1 Глобальная установка

Установите Gemini CLI глобально через npm:

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

### 1.2 Проверка установки

Проверьте, что CLI доступен:

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

Если выводится номер версии, установка прошла успешно.

<Note>**Совет:** если команда не найдена, перезапустите терминал или проверьте настройку глобального `PATH` npm.</Note>

## Шаг 2: Настройте API APIMart

### 2.1 Временные переменные окружения

Для тестирования или разового использования; значения теряются при закрытии терминала.

**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 Постоянные переменные окружения (рекомендуется)

Сохраните конфигурацию, чтобы новые сессии подхватывали её автоматически.

**Windows (PowerShell):**

1. Запустите PowerShell от администратора
2. Установите переменные окружения пользователя:

```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. Перезапустите PowerShell или перезагрузите переменные:

```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. Отредактируйте rc-файл вашего шелла:

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

# Zsh (по умолчанию в macOS)
nano ~/.zshrc
```

2. Добавьте:

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

3. Перезагрузите:

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

### 2.3 Использование файла `.env`

Создайте `.env` в вашем проекте:

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

Загрузите переменные перед запуском 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>
  **Важно:** - Замените `sk-xxxxxxxxxxxx` на ваш реальный ключ из [консоли APIMart](https://apimart.ai/keys) - Установите `GEMINI_BASE_URL` равным `https://api.apimart.ai/v1`, чтобы Gemini CLI обращался к APIMart - Добавьте `.env` в `.gitignore`, чтобы ключи не попадали в коммиты
</Note>

### 2.4 Проверьте конфигурацию

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

Если значения корректные, конфигурация настроена.

## Шаг 3: Используйте Gemini CLI

### 3.1 Базовый чат

Интерактивная сессия:

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

Разовый промпт:

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

### 3.2 Выбор модели

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

Или:

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

### 3.3 Чтение промптов из файла

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

Или через pipe:

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

### 3.4 Сохранение вывода в файл

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

## Шаг 4: Вызов APIMart из кода

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

## Шаг 5: Выберите модель

### Рекомендуемые модели

APIMart поддерживает много моделей; выбирайте по задаче и бюджету.

**Gemini**

| Имя модели       | ID модели              | Особенности              | Подходит для                            |
| ---------------- | ---------------------- | ------------------------ | --------------------------------------- |
| Gemini 2.0 Flash | `gemini-2.0-flash-exp` | Быстрая, мультимодальная | Быстрые ответы, vision + текст          |
| Gemini 2.5 Pro   | `gemini-2.5-pro`       | Сильные возможности      | Сложные задачи, анализ                  |
| Gemini 2.5 Flash | `gemini-2.5-flash`     | Очень отзывчивая         | Чат в реальном времени, пакетные задачи |

**GPT**

| Имя модели  | ID модели     | Особенности      | Подходит для                  |
| ----------- | ------------- | ---------------- | ----------------------------- |
| GPT-5       | `gpt-5`       | Топовая          | Рассуждения, креативный текст |
| GPT-4o      | `gpt-4o`      | Высокое качество | Общий чат, контент            |
| GPT-4o Mini | `gpt-4o-mini` | Выгодная         | Простые задачи, высокий объём |

**Claude**

| Имя модели        | ID модели                    | Особенности         | Подходит для                 |
| ----------------- | ---------------------------- | ------------------- | ---------------------------- |
| Claude Sonnet 4.5 | `claude-sonnet-4-5-20250929` | Сильное рассуждение | Код, логика                  |
| Claude Haiku 4.5  | `claude-haiku-4-5-20251001`  | Очень быстрая       | Q\&R, чат с низкой задержкой |

<Tip>
  **Быстрый выбор:** - 🚀 **Стек Google-стиля:** `gemini-2.0-flash-exp`, `gemini-2.5-pro` - 💡 **Кодинг:** `claude-sonnet-4-5-20250929`, `gpt-5` - 💰 **Экономия:** `gpt-4o-mini`, `claude-haiku-4-5-20251001` - ⚡ **Скорость:** `gemini-2.0-flash-exp`, `gpt-4o-mini`
</Tip>

## Расширенные возможности

### Мультимодальность (изображения)

С мультимодальной моделью, такой как 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"
                    }
                }
            ]
        }
    ]
)
```

### Стриминг

Получайте токены по мере поступления:

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

### Настройка параметров

Контроль случайности и длины:

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

## Часто задаваемые вопросы

### Q1: «Invalid API key» или ошибки аутентификации

1. **Формат ключа**
   * Должен начинаться с `sk-`
   * Без лишних пробелов при вставке

2. **Переменные окружения**

   ```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. **Статус ключа**
   * Проверьте ключ в [консоли APIMart](https://apimart.ai/keys)
   * Убедитесь, что на аккаунте есть баланс

### Q2: Как проверить настройку 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: Какие языки поддерживаются?

Любой язык, способный отправлять HTTP-запросы, работает с APIMart:

* ✅ **Python** — рекомендуется OpenAI SDK
* ✅ **JavaScript / TypeScript** — Node или браузер
* ✅ **Java** — HTTP-клиент
* ✅ **Go** — stdlib или библиотеки
* ✅ **PHP** — cURL или Guzzle
* ✅ **Ruby** — HTTP gems
* ✅ **C# / .NET** — `HttpClient`
* ✅ **Swift** — `URLSession`
* ✅ **Другие** — что угодно с HTTP

### Q4: Где посмотреть использование и биллинг?

В [консоли APIMart](https://apimart.ai/overview):

* 📊 Статистика вызовов в реальном времени
* 💰 Расходы и счета
* 📈 Тенденции использования
* 🔍 Логи запросов
* ⚙️ Управление API-ключами

### Q5: Распространённые ошибки API

| Ошибка                      | Вероятная причина            | Что делать                                    |
| --------------------------- | ---------------------------- | --------------------------------------------- |
| `401 Unauthorized`          | Неверный или отозванный ключ | Исправьте ключ в env / консоли                |
| `429 Too Many Requests`     | Лимит запросов               | Замедлите или повысьте план                   |
| `500 Internal Server Error` | Временная проблема сервера   | Повторите позже; если сохраняется — поддержка |
| `insufficient_quota`        | Низкий баланс                | Пополните в консоли                           |

## Лучшие практики

### 1. Повторы и 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. Контроль затрат

```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. Системные промпты

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

## Возможности

С **Google AI Studio** и **APIMart** вы получаете:

* 🤖 **Много моделей** — GPT, Claude, Gemini и другие
* 🌍 **OpenAI-совместимость** — знакомая форма запросов/ответов
* ⚡ **Производительность** — низкая задержка, высокая параллельность
* 💰 **Прозрачное ценообразование** — оплата по факту
* 📊 **Наблюдаемость** — мониторинг вызовов в реальном времени
* 🔒 **Безопасность** — корпоративные меры защиты
* 🚀 **Быстрая интеграция** — простые HTTP / SDK вызовы
* 📚 **Документация** — руководства и примеры

## Поддержка

* 📚 [Документация APIMart](https://docs.apimart.ai)
* 📚 [Документация 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="Начните с APIMart" icon="rocket" href="https://apimart.ai">
  Создайте аккаунт, получите API-ключ и используйте несколько AI-моделей из рабочих процессов Google AI Studio и не только.
</Card>
