Naar inhoud
lightbulb Welkom op de nieuwe kennisbank | We hebben de docs volledig vernieuwd met meer dan 160 features. Bekijk wat nieuw isarrow_forward

OpenAI-compatibele Gemini endpoint

Gebruik de Gemini API via de OpenAI-compatibele endpoint om bestaande OpenAI-applicaties met minimale codewijzigingen naar Gemini te laten draaien.

Waarom een OpenAI-compatibele endpoint

Veel applicaties zijn gebouwd met de OpenAI SDK of verwachten de OpenAI API-structuur (/v1/chat/completions, een messages-array, role-velden). Met de OpenAI-compatibele endpoint van Gemini gebruik je Gemini zonder je bestaande code te herschrijven: meestal volstaat het aanpassen van de base_url, de API-sleutel en de modelnaam.

Dit is handig bij migratie van OpenAI naar Gemini, bij A/B-testen tussen modellen, bij tools die alleen de OpenAI API ondersteunen, en in organisaties met bestaande OpenAI-gebaseerde infrastructuur.

info

Status in 2026

Ondersteuning voor de OpenAI-bibliotheken is officieel nog in beta terwijl Google de functiedekking uitbreidt. Voor de meeste tekst-, streaming-, embedding- en function-calling-scenario's werkt het stabiel, maar test je eigen flow voordat je productie omzet.

Welk model kies je

Gebruik een actueel model. De Gemini 2.0- en 1.5-modellen zijn inmiddels afgebouwd, gebruik die niet meer in nieuwe code. Stabiele keuzes per juni 2026:

Model-id Wanneer
gemini-2.5-flash Snelle, goedkope standaardkeuze voor de meeste taken.
gemini-2.5-flash-lite Nog goedkoper en sneller, voor eenvoudig en hoog-volume werk.
gemini-2.5-pro Stabiel Pro-model voor complexe redeneertaken.
gemini-3.5-flash Nieuwere Flash-generatie met sterkere redenering.

De 3.x Pro-modellen (zoals gemini-3.1-pro-preview) zijn nog preview. Wil je een stabiel Pro-model in productie, blijf dan bij gemini-2.5-pro. Controleer de modellenpagina van de Gemini API voor de meest actuele lijst, want id's en levenscyclus veranderen regelmatig.

Configuratie met de Python OpenAI-client

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["GEMINI_API_KEY"],
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)

response = client.chat.completions.create(
    model="gemini-2.5-flash",
    messages=[
        {"role": "system", "content": "Je bent een behulpzame assistent."},
        {"role": "user", "content": "Wat zijn de voordelen van Python?"}
    ],
    temperature=0.7,
    max_tokens=512
)

print(response.choices[0].message.content)
print(f"Tokens: {response.usage.total_tokens}")
warning

Gebruik je Gemini-sleutel, niet je OpenAI-sleutel

Verwar de sleutels niet. De endpoint verwacht een Gemini API-sleutel uit Google AI Studio. Een OpenAI-sleutel werkt hier niet en geeft een authenticatiefout.

Streaming via de OpenAI-client

stream = client.chat.completions.create(
    model="gemini-2.5-flash",
    messages=[{"role": "user", "content": "Schrijf een kort verhaal."}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
print()

JavaScript en TypeScript

import OpenAI from "openai";

const client = new OpenAI({
    apiKey: process.env.GEMINI_API_KEY,
    baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});

const response = await client.chat.completions.create({
    model: "gemini-2.5-flash",
    messages: [
        { role: "system", content: "Je bent een Nederlandse taalassistent." },
        { role: "user", content: "Corrigeer de spelling in deze zin: ik ga naa huis." }
    ],
});

console.log(response.choices[0].message.content);
lightbulb

Wissel zonder code te wijzigen

Stel de base_url en de modelnaam in via configuratie of omgevingsvariabelen, niet hardcoded. Zo wissel je tussen OpenAI en Gemini door alleen je .env aan te passen, zonder je applicatiecode te raken.

Embeddings via de compatibele endpoint

embedding_response = client.embeddings.create(
    model="gemini-embedding-001",
    input="Python is een programmeertaal voor data science."
)

vector = embedding_response.data[0].embedding
print(f"Vectordimensies: {len(vector)}")

Het oudere text-embedding-004 is vervangen. Gebruik gemini-embedding-001 voor tekst. Voor multimodale embeddings (tekst, afbeeldingen, audio) biedt Google een nieuwer multimodaal embeddingmodel, controleer de docs voor de exacte id.

Beschikbare modellen opvragen

models = client.models.list()
for model in models.data:
    print(model.id)

Wat werkt wel en niet via de compatibele laag

De OpenAI-compat-laag dekt inmiddels de meeste kernfuncties. Een paar Gemini-specifieke features bereik je alleen via de native SDK.

Functie Via OpenAI-compat
Tekstgeneratie Ja
Streaming Ja
Embeddings Ja
Function calling Ja
Gestructureerde uitvoer (JSON-schema) Ja
Vision en afbeeldingsinvoer Ja
Afbeeldings- en videogeneratie Ja (afhankelijk van model)
System instruction Ja (via de system-rol)
Context caching Nee
Grounding met Google Zoeken Nee

Voor context caching, grounding en de fijnmazige Gemini-instellingen gebruik je de native google-genai SDK.

Stapsgewijze migratie van OpenAI naar Gemini

Zet een bestaande OpenAI-app om naar Gemini

  1. Maak een Gemini API-sleutel aan in Google AI Studio en zet die in een omgevingsvariabele, bijvoorbeeld GEMINI_API_KEY.
  2. Stel de base_url van je OpenAI-client in op https://generativelanguage.googleapis.com/v1beta/openai/.
  3. Vervang de modelnaam, bijvoorbeeld gpt-4o-mini door gemini-2.5-flash.
  4. Draai je bestaande tests of een handmatige rooktest en controleer streaming, function calling en token-tellingen.
  5. Controleer of je geen ongedekte features gebruikt zoals context caching of grounding; verplaats die naar de native SDK.
import os

GEBRUIK_GEMINI = os.environ.get("USE_GEMINI", "false").lower() == "true"

from openai import OpenAI

if GEBRUIK_GEMINI:
    client = OpenAI(
        api_key=os.environ["GEMINI_API_KEY"],
        base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
    )
    standaard_model = "gemini-2.5-flash"
else:
    client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
    standaard_model = "gpt-4o-mini"
Zijn de kosten hetzelfde als bij de native Gemini API?

Ja, de kosten worden berekend op basis van Gemini-tokenisatie en Gemini-tarieven, niet op OpenAI-tarieven. Je betaalt dus precies wat je via de native Gemini API zou betalen, zolang je een Gemini API-sleutel gebruikt.

Werkt de OpenAI Assistants API ook?

Nee, alleen de Chat Completions- en Embeddings-endpoints zijn geïmplementeerd in de compatibele laag. Assistants, Files, Fine-tuning en andere OpenAI-specifieke endpoints zijn niet beschikbaar via deze route.

Zijn er kwaliteitsverschillen ten opzichte van de native SDK?

Voor standaardgebruik is het verschil minimaal. De compat-laag zet je request intern om naar het Gemini-formaat. Voor Gemini-specifieke features zoals context caching en grounding gebruik je de native SDK.

Kan ik de endpoint gebruiken met LangChain of LlamaIndex?

Ja, configureer de base_url en api_key in de OpenAI-integratie van die frameworks. Dit werkt ook als het framework geen directe Gemini-integratie heeft.

Welk model moet ik kiezen na het afbouwen van Gemini 2.0?

Gebruik gemini-2.5-flash als standaard, gemini-2.5-flash-lite voor goedkoop hoog-volume werk en gemini-2.5-pro of gemini-3.5-flash voor zwaardere taken. De 2.0- en 1.5-modellen zijn niet meer geschikt voor nieuwe projecten.

Werkt function calling betrouwbaar via de compat-laag?

Ja, function calling en gestructureerde uitvoer met JSON-schema worden ondersteund. Combineer je beide tegelijk, controleer dan de configuratie van je client, want sommige frameworks vereisen extra instellingen om tool-calls en schema's samen te laten werken.