> ## 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 hurtigstart: Bruk native og OpenAI-kompatible forespørsler med CometAPI

> Kall Gemini tekstmodeller gjennom CometAPI med native generateContent-forespørsler eller OpenAI-kompatible Chat Completions-forespørsler.

## Hva du skal bygge

Du skal sende en native Gemini `POST /v1beta/models/\{model\}:generateContent`-forespørsel, og deretter sammenligne den med det OpenAI-kompatible alternativet `POST /v1/chat/completions` for apper som allerede bruker Chat Completions-forespørselsformat.

## Forutsetninger

* En CometAPI API-nøkkel lagret i `COMETAPI_KEY`
* En Gemini tekstmodell-ID fra [Models page](/no/overview/models)
* `curl`, Python 3.10+ eller Node.js 18+

## API-nøkkel, base URL, autentisering

Bruk Gemini-native endepunktet når du vil bruke Gemini-forespørselsfelter:

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

Bruk `x-goog-api-key` for direkte native Gemini HTTP-forespørsler:

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

Bruk den OpenAI-kompatible base URL-en bare når applikasjonen din allerede bruker Chat Completions:

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

## Native Gemini-format

Native Gemini-forespørsler bruker `contents`, `parts` og `generationConfig`. Bruk denne stien når du trenger Gemini-spesifikke felter som tenkekontroller, mediedeler, Google Search-grounding eller native streaming-operatorer.

<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-kompatibelt alternativ

Bruk den OpenAI-kompatible ruten når du migrerer en eksisterende OpenAI SDK- eller Chat Completions-app og ikke trenger Gemini-native forespørselsfelter.

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

## Forklaring av flyt

| Sti               | Endepunkt                                       | Forespørselsformat                                 | SDK                                 | Bruk når                                                                                                   |
| ----------------- | ----------------------------------------------- | -------------------------------------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Gemini native     | `POST /v1beta/models/\{model\}:generateContent` | `contents`, `parts`, `generationConfig`            | Google GenAI SDK eller direkte HTTP | Du trenger Gemini-spesifikke felter, multimodale deler, tenkekontroller, grounding eller native streaming. |
| OpenAI-kompatibel | `POST /v1/chat/completions`                     | `messages`, `temperature`, `max_completion_tokens` | OpenAI SDK eller direkte HTTP       | Appen din bruker allerede Chat Completions og trenger bare en Gemini tekstmodell bak det formatet.         |

Ikke bland de to forespørselsformatene. Native Gemini-felter som `contents` og `generationConfig` hører til på `generateContent`-ruten. Chat Completions-felter som `messages` hører til på den OpenAI-kompatible ruten.

## Feilsøking / FAQ

<AccordionGroup>
  <Accordion title="Hvilken sti bør jeg starte med">
    Start med native Gemini `generateContent` når du bygger en ny Gemini-arbeidsflyt. Bruk den OpenAI-kompatible ruten når en eksisterende app allerede er avhengig av OpenAI SDK eller Chat Completions-forespørselsformat.
  </Accordion>

  <Accordion title="Native Gemini-felter feiler på Chat Completions">
    Send `contents`, `parts`, `generationConfig` og `streamGenerateContent`-forespørsler til Gemini-native endepunktet. Den OpenAI-kompatible ruten forventer `messages` og Chat Completions-parametere.
  </Accordion>

  <Accordion title="Gemini model ID feiler">
    Bekreft at model ID er tilgjengelig for kontoen din og støtter ruten du kaller. Bruk [Models page](/no/overview/models) for å finne gjeldende model ID-er.
  </Accordion>

  <Accordion title="SDK-en peker til feil tjeneste">
    For Google GenAI SDK-forespørsler setter du base URL til `https://api.cometapi.com`. For OpenAI SDK-forespørsler setter du `base_url` i Python eller `baseURL` i Node.js til `https://api.cometapi.com/v1`.
  </Accordion>
</AccordionGroup>

## Neste steg

* Bruk [Gemini native API reference](/api/text/gemini-generating-content) for fullstendige felter for `generateContent`-forespørsel og -respons.
* Les [Chat Completions API reference](/api/text/chat) for det OpenAI-kompatible forespørselsformatet.
* Konfigurer OpenAI SDK-klienter i [Use CometAPI with OpenAI SDKs](/no/guides/use-cometapi-with-openai-sdk).
* List opp tilgjengelige modeller med [List available CometAPI models](/no/guides/how-to-list-available-models).
* Legg til håndtering av retry og rate limits med [Error codes and retry strategy](/no/guides/error-codes-and-retry-strategy).
