Google Completion-API
Dit eindpunt biedt toegang tot Google Gemini-modellen die worden gehost in Google Vertex AI. Het weerspiegelt de structuur van de officiële Vertex generateContent API.
Functies
Regiokeuze (
euofus)Optionele Server-Sent Event (SSE) streaming met compatibele eventlabels gebruikt door de Google Python SDK (
message_start,message_delta,message_stop)Een modellen-ontdekkings-eindpunt
Basis URL
https://api.langdock.com/google/{region}In dedicated deployments wijst api.langdock.com naar /api/public
Authenticatie
Stuur één van de volgende headers bij gebruik van de Langdock API-sleutel. Alle headers worden identiek behandeld. Ontbrekende of ongeldige sleutels geven 401 Unauthorized terug.
Voorbeeld Authorization-header:
curl -H "Authorization: Bearer $LD_API_KEY" \
https://api.langdock.com/google/eu/v1beta/modelsVoorbeeld x-api-key header:
curl -H "x-api-key: $LD_API_KEY" \
https://api.langdock.com/google/eu/v1beta/modelsVoorbeeld x-goog-api-key header:
curl -H "x-goog-api-key: $LD_API_KEY" \
https://api.langdock.com/google/eu/v1beta/models1. Lijst beschikbare modellen
GET /{region}/v1beta/models
/{region}/v1beta/modelsregio moet zijn eu of us.
Succesvolle respons: een array van modelobjecten met de volgende vorm:
name – Volledig gekwalificeerde modelnaam (bijv.
models/gemini-2.5-flash)displayName – Mensvriendelijke naam die in de Langdock UI wordt getoond
supportedGenerationMethods – Altijd
["generateContent", "streamGenerateContent"]
Voorbeeld:
curl -H "Authorization: Bearer $LD_API_KEY" \
https://api.langdock.com/google/eu/v1beta/models2. Genereer content
POST /{region}/v1beta/models/{model}:{action}
/{region}/v1beta/models/{model}:{action}model – De model-ID zoals geretourneerd door het models-eindpunt (zonder de
models/prefix).action –
generateContentofstreamGenerateContentafhankelijk of je streaming wilt of niet.
Voorbeeld pad:
google/eu/v1beta/models/gemini-2.5-flash:streamGenerateContentRequest body
Het request body volgt de officiële GenerateContentRequest-structuur.
Vereiste velden
contents (Content[], verplicht) Gespreksgeschiedenis. Elk object heeft een
role(string) enpartsarray met objecten mettext(string).
Voorbeeld:
"contents": [
{
"role": "user",
"parts": [
{ "text": "What's the weather like?" }
]
}
]model (string, verplicht) Het model dat gebruikt wordt voor generatie (bijv.,
gemini-2.5-pro,gemini-2.5-flash).
Optionele velden
generationConfig (object, optioneel) Configuratie voor tekstgeneratie. Ondersteunde velden:
temperature (nummer): Stuurt de willekeurigheid (0.0-2.0)
topP (nummer): Nucleus-samplingparameter (0.0-1.0)
topK (nummer): Top-k samplingparameter
candidateCount (nummer): Aantal responskandidaten om te genereren
maxOutputTokens (nummer): Maximum aantal te genereren tokens
stopSequences (string[]): Reeksen die de generatie stoppen
responseMimeType (string): MIME-type van de respons
responseSchema (object): Schema voor gestructureerde output
Voorbeeld:
"generationConfig": {
"temperature": 0.7,
"topP": 0.9,
"topK": 40,
"maxOutputTokens": 1000,
"stopSequences": ["END", "STOP"]
}safetySettings (SafetySetting[], optioneel) Array van safety setting-objecten. Elk object bevat:
category (string): De schadekategorie (bijv.,
HARM_CATEGORY_HARASSMENT)threshold (string): De blokkeringdrempel (bijv.,
BLOCK_MEDIUM_AND_ABOVE)
Voorbeeld:
"safetySettings": [
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
]tools (Tool[], optioneel) Array van tool-objecten voor functieaanroepen. Elke tool bevat
functionDeclarationsarray met:name (string): Functienaam
description (string): Functiebeschrijving
parameters (object): JSON-schema dat functieparameters definieert
Voorbeeld:
"tools": [
{
"functionDeclarations": [
{
"name": "get_weather",
"description": "Get current weather information",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City name"
}
}
}
}
]
}
]toolConfig (object, optioneel) Configuratie voor functieaanroepen. Bevat
functionCallingConfigmet:mode (string): Modus voor functieaanroepen (
ANY,AUTO,NONE)allowedFunctionNames (string[]): Array van toegestane functienamen
Voorbeeld:
"toolConfig": {
"functionCallingConfig": {
"mode": "ANY",
"allowedFunctionNames": ["get_weather"]
}
}systemInstruction (string | Content, optioneel) Systeeminstructie om het gedrag van het model te sturen. Kan een string of Content-object zijn met role en parts.
Voorbeeld:
"systemInstruction": {
"role": "system",
"parts": [
{ "text": "You are a weather assistant. Use the weather tool when asked about weather." }
]
}Opmerking: Als toolConfig.functionCallingConfig.allowedFunctionNames wordt opgegeven, mode moet zijn ANY.
Minimaal voorbeeld
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LD_API_KEY" \
https://api.langdock.com/google/us/v1beta/models/gemini-2.5-pro:generateContent \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "Write a short poem about the ocean."}]
}]
}'Streaming
Wanneer actie is streamGenerateContent het eindpunt retourneert een text/event-stream met compatibele events:
message_start– eerste chunk die content bevatmessage_delta– volgende chunksmessage_stop– laatste chunk (bevatfinishReasonen gebruiksmetadata)
Voorbeeld message_delta event:
event: message_delta
data: {
"candidates": [
{
"index": 0,
"content": {
"role": "model",
"parts": [{ "text": "The ocean whispers..." }]
}
}
]
}Python SDK-voorbeeld met functieaanroepen:
import google.generativeai as genai
def get_current_weather(location):
"""Haal het huidige weer op voor een gegeven locatie"""
return f"The current weather in {location} is sunny with a temperature of 70 degrees and a wind speed of 5 mph."
genai.configure(
api_key="<YOUR_LANGDOCK_API_KEY>",
transport="rest",
client_options={"api_endpoint": "https://api.langdock.com/google/<REGION>/"},
)
model = genai.GenerativeModel("gemini-2.5-flash", tools=[get_current_weather])
response = model.generate_content(
"Please tell me the weather in San Francisco, then tell me a story on the history of the city"
)
print(response)Python SDK streaming-voorbeeld:
model = genai.GenerativeModel("gemini-2.5-flash")
response = model.generate_content(
"Tell me an elaborate story on the history of the city of San Francisco",
stream=True,
)
for chunk in response:
if chunk.text:
print(chunk.text)Gebruik van met Google compatibele bibliotheken
Het eindpunt is volledig compatibel met officiële Google SDK's inclusief de Vertex AI Node SDK (@google-cloud/vertexai), de Google Generative AI Python-bibliotheek (google-generative-ai), en de Vercel AI SDK voor edge-streaming.
Headers
Authorization (string, required): API-sleutel als Bearer-token. Formaat "Bearer YOUR_API_KEY"
Padparameters
region (enum, verplicht): De regio van de API die gebruikt moet worden. Beschikbare opties:
eu,usmodel (string, verplicht): De model-ID (bijv.,
gemini-2.5-pro,gemini-2.5-flash)
Body (application/json)
contents (object[]): verplicht. De content waarvoor een respons gegenereerd moet worden.
role (enum):
userofmodelparts (object[])
Response (200 application/json)
candidates (object[])
content (object)
finishReason (string)
usageMetadata (object)

