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

# Szybki start z Gemini API: używaj natywnych żądań i żądań zgodnych z OpenAI z CometAPI

> Wywołuj tekstowe modele Gemini przez CometAPI za pomocą natywnych żądań generateContent lub żądań Chat Completions zgodnych z OpenAI.

## Co zbudujesz

Wyślesz natywne żądanie Gemini `POST /v1beta/models/\{model\}:generateContent`, a następnie porównasz je z opcją zgodną z OpenAI `POST /v1/chat/completions` dla aplikacji, które już używają formatów żądań Chat Completions.

## Wymagania wstępne

* Klucz API CometAPI zapisany w `COMETAPI_KEY`
* model ID tekstowego modelu Gemini ze strony [Models page](/pl/overview/models)
* `curl`, Python 3.10+ lub Node.js 18+

## Klucz API, bazowy URL, uwierzytelnianie

Użyj natywnego endpointu Gemini, jeśli chcesz korzystać z pól żądań Gemini:

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

Użyj `x-goog-api-key` dla bezpośrednich natywnych żądań Gemini HTTP:

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

Używaj bazowego URL zgodnego z OpenAI tylko wtedy, gdy Twoja aplikacja już korzysta z Chat Completions:

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

## Natywny format Gemini

Natywne żądania Gemini używają `contents`, `parts` i `generationConfig`. Wybierz tę ścieżkę, jeśli potrzebujesz pól specyficznych dla Gemini, takich jak kontrola myślenia, części multimedialne, Google Search grounding lub natywne operatory 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>

## Opcja zgodna z OpenAI

Użyj ścieżki zgodnej z OpenAI, gdy migrujesz istniejący OpenAI SDK lub aplikację Chat Completions i nie potrzebujesz natywnych pól żądań 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>

## Wyjaśnienie przepływu

| Ścieżka         | Endpoint                                        | Kształt żądania                                    | SDK                                    | Użyj, gdy                                                                                                                |
| --------------- | ----------------------------------------------- | -------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Natywny Gemini  | `POST /v1beta/models/\{model\}:generateContent` | `contents`, `parts`, `generationConfig`            | Google GenAI SDK lub bezpośrednie HTTP | Potrzebujesz pól specyficznych dla Gemini, części multimodalnych, kontroli myślenia, grounding albo natywnego Streaming. |
| Zgodny z OpenAI | `POST /v1/chat/completions`                     | `messages`, `temperature`, `max_completion_tokens` | OpenAI SDK lub bezpośrednie HTTP       | Twoja aplikacja już używa Chat Completions i potrzebuje tylko tekstowego modelu Gemini za tym formatem.                  |

Nie mieszaj tych dwóch formatów żądań. Natywne pola Gemini, takie jak `contents` i `generationConfig`, należą do ścieżki `generateContent`. Pola Chat Completions, takie jak `messages`, należą do ścieżki zgodnej z OpenAI.

## Rozwiązywanie problemów / FAQ

<AccordionGroup>
  <Accordion title="Od której ścieżki powinienem zacząć">
    Zacznij od natywnego Gemini `generateContent`, jeśli tworzysz nowy workflow Gemini. Użyj ścieżki zgodnej z OpenAI, gdy istniejąca aplikacja już zależy od OpenAI SDK lub formatów żądań Chat Completions.
  </Accordion>

  <Accordion title="Natywne pola Gemini nie działają w Chat Completions">
    Wysyłaj żądania `contents`, `parts`, `generationConfig` i `streamGenerateContent` do natywnego endpointu Gemini. Ścieżka zgodna z OpenAI oczekuje `messages` i parametrów Chat Completions.
  </Accordion>

  <Accordion title="model ID Gemini nie działa">
    Potwierdź, że model ID jest dostępny dla Twojego konta i obsługuje ścieżkę, którą wywołujesz. Użyj strony [Models page](/pl/overview/models), aby znaleźć aktualne model IDs.
  </Accordion>

  <Accordion title="SDK wskazuje na niewłaściwą usługę">
    Dla żądań Google GenAI SDK ustaw bazowy URL na `https://api.cometapi.com`. Dla żądań OpenAI SDK ustaw `base_url` w Pythonie lub `baseURL` w Node.js na `https://api.cometapi.com/v1`.
  </Accordion>
</AccordionGroup>

## Kolejne kroki

* Użyj [referencji natywnego API Gemini](/api/text/gemini-generating-content), aby poznać pełne pola żądania i odpowiedzi `generateContent`.
* Przeczytaj [referencję API Chat Completions](/api/text/chat), aby poznać format żądania zgodny z OpenAI.
* Skonfiguruj klientów OpenAI SDK w [Use CometAPI with OpenAI SDKs](/pl/guides/use-cometapi-with-openai-sdk).
* Wyświetl dostępne modele za pomocą [List available CometAPI models](/pl/guides/how-to-list-available-models).
* Dodaj obsługę ponowień i limitów szybkości za pomocą [Error codes and retry strategy](/pl/guides/error-codes-and-retry-strategy).
