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

# Швидкий старт Gemini API: використовуйте нативні та OpenAI-сумісні запити з CometAPI

> Викликайте текстові моделі Gemini через CometAPI за допомогою нативних запитів generateContent або OpenAI-сумісних запитів Chat Completions.

## Що ви побудуєте

Ви надішлете нативний запит Gemini `POST /v1beta/models/\{model\}:generateContent`, а потім порівняєте його з OpenAI-сумісним варіантом `POST /v1/chat/completions` для застосунків, які вже використовують форми запитів Chat Completions.

## Передумови

* Ключ API CometAPI, збережений у `COMETAPI_KEY`
* model ID текстової моделі Gemini зі [сторінки Models](/uk/overview/models)
* `curl`, Python 3.10+ або Node.js 18+

## Ключ API, base URL, автентифікація

Використовуйте нативний endpoint Gemini, коли вам потрібні поля запиту Gemini:

```text theme={null}
https://api.cometapi.com/v1beta/models/{model}:generateContent
```

Використовуйте `x-goog-api-key` для прямих нативних HTTP-запитів Gemini:

```text theme={null}
x-goog-api-key: $COMETAPI_KEY
```

Використовуйте OpenAI-сумісний base URL лише тоді, коли ваш застосунок уже використовує Chat Completions:

```text theme={null}
https://api.cometapi.com/v1
```

## Нативний формат Gemini

Нативні запити Gemini використовують `contents`, `parts` і `generationConfig`. Використовуйте цей шлях, коли вам потрібні специфічні для Gemini поля, як-от елементи керування thinking, медіачастини, grounding через Google Search або нативні оператори streaming.

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.cometapi.com/v1beta/models/your-gemini-model-id:generateContent" \
    -H "x-goog-api-key: $COMETAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "contents": [
        {
          "parts": [
            {
              "text": "Explain why base URL configuration matters."
            }
          ]
        }
      ],
      "generationConfig": {
        "temperature": 0.3
      }
    }'
  ```

  ```python Python theme={null}
  import os
  from google import genai

  client = genai.Client(
      api_key=os.environ["COMETAPI_KEY"],
      http_options={"api_version": "v1beta", "base_url": "https://api.cometapi.com"},
  )

  response = client.models.generate_content(
      model="your-gemini-model-id",
      contents="Explain why base URL configuration matters.",
      config={
          "temperature": 0.3,
      },
  )

  print(response.text)
  ```

  ```javascript Node.js theme={null}
  import { GoogleGenAI } from "@google/genai";

  const ai = new GoogleGenAI({
    apiKey: process.env.COMETAPI_KEY,
    httpOptions: {
      baseUrl: "https://api.cometapi.com",
      apiVersion: "v1beta",
    },
  });

  const response = await ai.models.generateContent({
    model: "your-gemini-model-id",
    contents: "Explain why base URL configuration matters.",
    config: {
      temperature: 0.3,
    },
  });

  console.log(response.text);
  ```
</CodeGroup>

## OpenAI-сумісний варіант

Використовуйте OpenAI-сумісний маршрут, коли ви мігруєте наявний застосунок на OpenAI SDK або Chat Completions і вам не потрібні нативні поля запиту Gemini.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.cometapi.com/v1/chat/completions \
    -H "Authorization: Bearer $COMETAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "your-gemini-model-id",
      "messages": [
        {
          "role": "user",
          "content": "Explain why base URL configuration matters."
        }
      ]
    }'
  ```

  ```python Python theme={null}
  import os
  from openai import OpenAI

  client = OpenAI(
      api_key=os.environ["COMETAPI_KEY"],
      base_url="https://api.cometapi.com/v1",
  )

  completion = client.chat.completions.create(
      model="your-gemini-model-id",
      messages=[
          {
              "role": "user",
              "content": "Explain why base URL configuration matters.",
          }
      ],
  )

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

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

  const client = new OpenAI({
    apiKey: process.env.COMETAPI_KEY,
    baseURL: "https://api.cometapi.com/v1",
  });

  const completion = await client.chat.completions.create({
    model: "your-gemini-model-id",
    messages: [
      {
        role: "user",
        content: "Explain why base URL configuration matters.",
      },
    ],
  });

  console.log(completion.choices[0].message.content);
  ```
</CodeGroup>

## Пояснення потоку

| Шлях            | Endpoint                                        | Форма запиту                                       | SDK                              | Використовуйте, коли                                                                                                            |
| --------------- | ----------------------------------------------- | -------------------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Нативний Gemini | `POST /v1beta/models/\{model\}:generateContent` | `contents`, `parts`, `generationConfig`            | Google GenAI SDK або прямий HTTP | Вам потрібні специфічні для Gemini поля, мультимодальні частини, елементи керування thinking, grounding або нативний streaming. |
| OpenAI-сумісний | `POST /v1/chat/completions`                     | `messages`, `temperature`, `max_completion_tokens` | OpenAI SDK або прямий HTTP       | Ваш застосунок уже використовує Chat Completions і потребує лише текстову модель Gemini за цією формою.                         |

Не змішуйте ці два формати запитів. Нативні поля Gemini, такі як `contents` і `generationConfig`, належать маршруту `generateContent`. Поля Chat Completions, такі як `messages`, належать OpenAI-сумісному маршруту.

## Усунення проблем / FAQ

<AccordionGroup>
  <Accordion title="З якого шляху мені почати">
    Починайте з нативного Gemini `generateContent`, якщо ви будуєте новий workflow Gemini. Використовуйте OpenAI-сумісний маршрут, якщо наявний застосунок уже залежить від OpenAI SDK або форм запитів Chat Completions.
  </Accordion>

  <Accordion title="Нативні поля Gemini не працюють у Chat Completions">
    Надсилайте запити `contents`, `parts`, `generationConfig` і `streamGenerateContent` до нативного endpoint Gemini. OpenAI-сумісний маршрут очікує `messages` і параметри Chat Completions.
  </Accordion>

  <Accordion title="model ID Gemini не працює">
    Підтвердьте, що model ID доступний для вашого облікового запису та підтримує маршрут, який ви викликаєте. Використовуйте [сторінку Models](/uk/overview/models), щоб знайти поточні model IDs.
  </Accordion>

  <Accordion title="SDK вказує на неправильний сервіс">
    Для запитів Google GenAI SDK встановіть base URL як `https://api.cometapi.com`. Для запитів OpenAI SDK встановіть `base_url` у Python або `baseURL` у Node.js як `https://api.cometapi.com/v1`.
  </Accordion>
</AccordionGroup>

## Наступні кроки

* Використовуйте [довідник Gemini native API](/api/text/gemini-generating-content) для повних полів запиту та відповіді `generateContent`.
* Прочитайте [довідник Chat Completions API](/api/text/chat) для OpenAI-сумісної форми запиту.
* Налаштуйте клієнти OpenAI SDK у [Використання CometAPI з OpenAI SDKs](/uk/guides/use-cometapi-with-openai-sdk).
* Перелічіть доступні моделі за допомогою [Перелік доступних моделей CometAPI](/uk/guides/how-to-list-available-models).
* Додайте обробку retry та rate-limit за допомогою [Коди помилок і стратегія retry](/uk/guides/error-codes-and-retry-strategy).
