Generating content

Gemini API; resim, ses, kod, araç ve daha fazlasını içeren içerik üretimini destekler. Bu özelliklerin her biri hakkında ayrıntılı bilgi edinmek için okumaya devam edin ve göreve odaklanan örnek kodu inceleyin veya kapsamlı kılavuzları okuyun.

Yöntem: models.generateContent

GenerateContentRequest girişine göre model yanıtı oluşturur. Ayrıntılı kullanım bilgileri için metin oluşturma kılavuzuna bakın. Giriş özellikleri, ayarlanmış modeller de dahil olmak üzere modellere göre farklılık gösterir. Ayrıntılar için model kılavuzuna ve ayarlama kılavuzuna bakın.

Uç nokta

yayın https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateContent

Yol parametreleri

model string

Zorunlu. Tamamlamayı oluşturmak için kullanılacak Model adı.

Biçim: models/{model}. models/{model} biçimindedir.

İstek metni

İstek içeriği aşağıdaki yapıyla birlikte verileri içerir:

Alanlar
contents[] object (Content)

Zorunlu. Model ile mevcut sohbetin içeriği.

Tek turlu sorgular için bu tek bir örnektir. Sohbet gibi çok turlu sorgularda bu, sohbet geçmişini ve en son isteği içeren yinelenen bir alandır.

tools[] object (Tool)

İsteğe bağlıdır. Model tarafından bir sonraki yanıtı oluşturmak için kullanılabilecek Tools listesi.

Tool, sistemin Model'nin bilgisi ve kapsamı dışında bir işlem veya işlem grubu gerçekleştirmek için harici sistemlerle etkileşim kurmasını sağlayan bir kod parçasıdır. Desteklenen Tool'ler Function ve codeExecution'dir. Daha fazla bilgi için İşlev çağrısı ve Kod yürütme kılavuzlarını inceleyin.

toolConfig object (ToolConfig)

İsteğe bağlıdır. İstekte belirtilen herhangi bir Tool için araç yapılandırması. Kullanım örneği için İşlev çağrısı kılavuzuna bakın.

safetySettings[] object (SafetySetting)

İsteğe bağlıdır. Güvenli olmayan içeriği engellemek için benzersiz SafetySetting örneklerinin listesi.

Bu kural GenerateContentRequest.contents ve GenerateContentResponse.candidates için geçerli olacak. Her SafetyCategory türü için birden fazla ayar olmamalıdır. API, bu ayarlarla belirlenen eşikleri karşılamayan tüm içerikleri ve yanıtları engeller. Bu liste, safetySettings'de belirtilen her SafetyCategory için varsayılan ayarları geçersiz kılar. Listede belirtilen bir SafetyCategory için SafetySetting yoksa API, ilgili kategori için varsayılan güvenlik ayarını kullanır. HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_CIVIC_INTEGRITY, HARM_CATEGORY_JAILBREAK zarar kategorileri desteklenir. Kullanılabilir güvenlik ayarları hakkında ayrıntılı bilgi için kılavuza bakın. Yapay zeka uygulamalarınızda güvenlik hususlarını nasıl dikkate alacağınızı öğrenmek için Güvenlik kılavuzunu da inceleyebilirsiniz.

continuationToken string (bytes format)

İsteğe bağlıdır. finishReason, CONTINUATION olarak ayarlanmış şekilde durdurulan önceki bir models.generateContent veya models.streamGenerateContent yanıtından oluşturma işlemine devam etmek için kullanılan opak bir devam jetonu. contents parametresinin zorunlu olduğunu ve bir istekte devamlılık jetonu sağlandığında ilk istekteki istemi ve görüşme geçmişini aynı şekilde kopyalaması gerektiğini unutmayın.

Base64 kodlu bir dize.

labels map (key: string, value: string)

İsteğe bağlıdır. İstek için kullanıcı tanımlı meta veriler içeren etiketler.

İsteğe bağlıdır. Etiketler, standart birleştirilmiş Cloud etiketi koşullarına uymalıdır: - Etiket anahtarları bir harfle başlamalıdır. - Etiket anahtarları ve değerleri 63 karakterden (Unicode kod noktaları) uzun olamaz ve yalnızca küçük harf, sayısal karakter, alt çizgi ve kısa çizgi içerebilir. - Uluslararası karakterlere izin verilir.

Kullanım: - Toplayıcılardan alınan güvenlik tanımlayıcıları: safety_identifier anahtarını kullanın (ör. {"safety_identifier": "user_session_123"})

"key": value çiftlerinin listesini içeren bir nesne. Örnek: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

systemInstruction object (Content)

İsteğe bağlıdır. Geliştirici tarafından belirlenen sistem talimatları. Şu anda yalnızca metin desteklenmektedir.

generationConfig object (GenerationConfig)

İsteğe bağlıdır. Model oluşturma ve çıkışlar için yapılandırma seçenekleri.

cachedContent string

İsteğe bağlıdır. Tahmini sunmak için bağlam olarak kullanılmak üzere önbelleğe alınan içeriğin adı. Biçim: cachedContents/{cachedContent}

serviceTier enum (ServiceTier)

İsteğe bağlıdır. İsteğin hizmet katmanı.

store boolean

İsteğe bağlıdır. Belirli bir istek için günlük kaydı davranışını yapılandırır. Ayarlanırsa proje düzeyindeki günlük kaydı yapılandırmasına göre öncelikli olur.

Örnek istek

Metin

Python

from google import genai

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="Write a story about a magic backpack.",
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: 'Write a story about a magic backpack.',
});
console.log(response.text);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}
contents := []*genai.Content{
	genai.NewContentFromText("Write a story about a magic backpack.", genai.RoleUser),
}
response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

kabuk

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[{"text": "Write a story about a magic backpack."}]
        }]
       }' 2> /dev/null

Java

Client client = new Client();

GenerateContentResponse response =
    client.models.generateContent(
        "gemini-3.8-flash", "Write a story about a magic backpack.", null);

System.out.println(response.text());

Resim

Python

from google import genai
import PIL.Image

client = genai.Client()
organ = PIL.Image.open(media / "organ.jpg")
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=["Tell me about this instrument", organ],
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const organ = await ai.files.upload({
  file: path.join(media, 'organ.jpg'),
});

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Tell me about this instrument',
      createPartFromUri(organ.uri, organ.mimeType)
    ]),
  ],
});
console.log(response.text);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "organ.jpg"),
	&genai.UploadFileConfig{
		MIMEType: "image/jpeg",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromText("Tell me about this instrument"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

kabuk

# Use a temporary file to hold the base64 encoded image data
TEMP_B64=$(mktemp)
trap 'rm -f "$TEMP_B64"' EXIT
base64 $B64FLAGS $IMG_PATH > "$TEMP_B64"

# Use a temporary file to hold the JSON payload
TEMP_JSON=$(mktemp)
trap 'rm -f "$TEMP_JSON"' EXIT

cat > "$TEMP_JSON" << EOF
{
  "contents": [{
    "parts":[
      {"text": "Tell me about this instrument"},
      {
        "inline_data": {
          "mime_type":"image/jpeg",
          "data": "$(cat "$TEMP_B64")"
        }
      }
    ]
  }]
}
EOF

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d "@$TEMP_JSON" 2> /dev/null

Java

Client client = new Client();

String path = media_path + "organ.jpg";
byte[] imageData = Files.readAllBytes(Paths.get(path));

Content content =
    Content.fromParts(
        Part.fromText("Tell me about this instrument."),
        Part.fromBytes(imageData, "image/jpeg"));

GenerateContentResponse response =
    client.models.generateContent("gemini-3.8-flash", content, null);

System.out.println(response.text());

Ses

Python

from google import genai

client = genai.Client()
sample_audio = client.files.upload(file=media / "sample.mp3")
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=["Give me a summary of this audio file.", sample_audio],
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const audio = await ai.files.upload({
  file: path.join(media, 'sample.mp3'),
});

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Give me a summary of this audio file.',
      createPartFromUri(audio.uri, audio.mimeType),
    ]),
  ],
});
console.log(response.text);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "sample.mp3"),
	&genai.UploadFileConfig{
		MIMEType: "audio/mpeg",
	},
)
if err != nil {
	log.Fatal(err)
}

parts := []*genai.Part{
	genai.NewPartFromText("Give me a summary of this audio file."),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

kabuk

# Use File API to upload audio data to API request.
MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
DISPLAY_NAME=AUDIO

tmp_header_file=upload-header.tmp

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files?key=${GEMINI_API_KEY}" \
  -D upload-header.tmp \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Please describe this file."},
          {"file_data":{"mime_type": "audio/mpeg", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

Video

Python

from google import genai
import time

client = genai.Client()
# Video clip (CC BY 3.0) from https://peach.blender.org/download/
myfile = client.files.upload(file=media / "Big_Buck_Bunny.mp4")
print(f"{myfile=}")

# Poll until the video file is completely processed (state becomes ACTIVE).
while not myfile.state or myfile.state.name != "ACTIVE":
  print("Processing video...")
  print("File state:", myfile.state)
  time.sleep(5)
  myfile = client.files.get(name=myfile.name)

response = client.models.generate_content(
    model="gemini-3.8-flash", contents=[myfile, "Describe this video clip"]
)
print(f"{response.text=}")

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

let video = await ai.files.upload({
  file: path.join(media, 'Big_Buck_Bunny.mp4'),
});

// Poll until the video file is completely processed (state becomes ACTIVE).
while (!video.state || video.state.toString() !== 'ACTIVE') {
  console.log('Processing video...');
  console.log('File state: ', video.state);
  await sleep(5000);
  video = await ai.files.get({name: video.name});
}

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Describe this video clip',
      createPartFromUri(video.uri, video.mimeType),
    ]),
  ],
});
console.log(response.text);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "Big_Buck_Bunny.mp4"),
	&genai.UploadFileConfig{
		MIMEType: "video/mp4",
	},
)
if err != nil {
	log.Fatal(err)
}

// Poll until the video file is completely processed (state becomes ACTIVE).
for file.State == genai.FileStateUnspecified || file.State != genai.FileStateActive {
	fmt.Println("Processing video...")
	fmt.Println("File state:", file.State)
	time.Sleep(5 * time.Second)

	file, err = client.Files.Get(ctx, file.Name, nil)
	if err != nil {
		log.Fatal(err)
	}
}

parts := []*genai.Part{
	genai.NewPartFromText("Describe this video clip"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

kabuk

# Use File API to upload audio data to API request.
MIME_TYPE=$(file -b --mime-type "${VIDEO_PATH}")
NUM_BYTES=$(wc -c < "${VIDEO_PATH}")
DISPLAY_NAME=VIDEO

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files?key=${GEMINI_API_KEY}" \
  -D "${tmp_header_file}" \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${VIDEO_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

state=$(jq ".file.state" file_info.json)
echo state=$state

name=$(jq ".file.name" file_info.json)
echo name=$name

while [[ "($state)" = *"PROCESSING"* ]];
do
  echo "Processing video..."
  sleep 5
  # Get the file of interest to check state
  curl https://generativelanguage.googleapis.com/v1beta/files/$name > file_info.json
  state=$(jq ".file.state" file_info.json)
done

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Transcribe the audio from this video, giving timestamps for salient events in the video. Also provide visual descriptions."},
          {"file_data":{"mime_type": "video/mp4", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

PDF

Python

from google import genai

client = genai.Client()
sample_pdf = client.files.upload(file=media / "test.pdf")
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=["Give me a summary of this document:", sample_pdf],
)
print(f"{response.text=}")

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "test.pdf"),
	&genai.UploadFileConfig{
		MIMEType: "application/pdf",
	},
)
if err != nil {
	log.Fatal(err)
}

parts := []*genai.Part{
	genai.NewPartFromText("Give me a summary of this document:"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

kabuk

MIME_TYPE=$(file -b --mime-type "${PDF_PATH}")
NUM_BYTES=$(wc -c < "${PDF_PATH}")
DISPLAY_NAME=TEXT


echo $MIME_TYPE
tmp_header_file=upload-header.tmp

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files?key=${GEMINI_API_KEY}" \
  -D upload-header.tmp \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${PDF_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Can you add a few more lines to this poem?"},
          {"file_data":{"mime_type": "application/pdf", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

Sohbet

Python

from google import genai
from google.genai import types

client = genai.Client()
# Pass initial history using the "history" argument
chat = client.chats.create(
    model="gemini-3.8-flash",
    history=[
        types.Content(role="user", parts=[types.Part(text="Hello")]),
        types.Content(
            role="model",
            parts=[
                types.Part(
                    text="Great to meet you. What would you like to know?"
                )
            ],
        ),
    ],
)
response = chat.send_message(message="I have 2 dogs in my house.")
print(response.text)
response = chat.send_message(message="How many paws are in my house?")
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const chat = ai.chats.create({
  model: 'gemini-3.8-flash',
  history: [
    {
      role: 'user',
      parts: [{text: 'Hello'}],
    },
    {
      role: 'model',
      parts: [{text: 'Great to meet you. What would you like to know?'}],
    },
  ],
});

const response1 = await chat.sendMessage({
  message: 'I have 2 dogs in my house.',
});
console.log('Chat response 1:', response1.text);

const response2 = await chat.sendMessage({
  message: 'How many paws are in my house?',
});
console.log('Chat response 2:', response2.text);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

// Pass initial history using the History field.
history := []*genai.Content{
	genai.NewContentFromText("Hello", genai.RoleUser),
	genai.NewContentFromText("Great to meet you. What would you like to know?", genai.RoleModel),
}

chat, err := client.Chats.Create(ctx, "gemini-3.8-flash", nil, history)
if err != nil {
	log.Fatal(err)
}

firstResp, err := chat.SendMessage(ctx, genai.Part{Text: "I have 2 dogs in my house."})
if err != nil {
	log.Fatal(err)
}
fmt.Println(firstResp.Text())

secondResp, err := chat.SendMessage(ctx, genai.Part{Text: "How many paws are in my house?"})
if err != nil {
	log.Fatal(err)
}
fmt.Println(secondResp.Text())

kabuk

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [
        {"role":"user",
         "parts":[{
           "text": "Hello"}]},
        {"role": "model",
         "parts":[{
           "text": "Great to meet you. What would you like to know?"}]},
        {"role":"user",
         "parts":[{
           "text": "I have two dogs in my house. How many paws are in my house?"}]},
      ]
    }' 2> /dev/null | grep "text"

Java

Client client = new Client();

Content userContent = Content.fromParts(Part.fromText("Hello"));
Content modelContent =
    Content.builder()
        .role("model")
        .parts(
            Collections.singletonList(
                Part.fromText("Great to meet you. What would you like to know?")))
        .build();

Chat chat =
    client.chats.create(
        "gemini-3.8-flash",
        GenerateContentConfig.builder()
            .systemInstruction(userContent)
            .systemInstruction(modelContent)
            .build());

GenerateContentResponse response1 = chat.sendMessage("I have 2 dogs in my house.");
System.out.println(response1.text());

GenerateContentResponse response2 = chat.sendMessage("How many paws are in my house?");
System.out.println(response2.text());

Önbellek

Python

from google import genai
from google.genai import types

client = genai.Client()
document = client.files.upload(file=media / "a11.txt")
model_name = "gemini-3.8-flash"

cache = client.caches.create(
    model=model_name,
    config=types.CreateCachedContentConfig(
        contents=[document],
        system_instruction="You are an expert analyzing transcripts.",
    ),
)
print(cache)

response = client.models.generate_content(
    model=model_name,
    contents="Please summarize this transcript",
    config=types.GenerateContentConfig(cached_content=cache.name),
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const filePath = path.join(media, 'a11.txt');
const document = await ai.files.upload({
  file: filePath,
  config: {mimeType: 'text/plain'},
});
console.log('Uploaded file name:', document.name);
const modelName = 'gemini-3.8-flash';

const contents = [
  createUserContent(createPartFromUri(document.uri, document.mimeType)),
];

const cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: contents,
    systemInstruction: 'You are an expert analyzing transcripts.',
  },
});
console.log('Cache created:', cache);

const response = await ai.models.generateContent({
  model: modelName,
  contents: 'Please summarize this transcript',
  config: {cachedContent: cache.name},
});
console.log('Response text:', response.text);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

modelName := "gemini-3.8-flash"
document, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "a11.txt"),
	&genai.UploadFileConfig{
		MIMEType: "text/plain",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromURI(document.URI, document.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents: contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", genai.RoleUser,
	),
})
if err != nil {
	log.Fatal(err)
}
fmt.Println("Cache created:")
fmt.Println(cache)

// Use the cache for generating content.
response, err := client.Models.GenerateContent(
	ctx,
	modelName,
	genai.Text("Please summarize this transcript"),
	&genai.GenerateContentConfig{
		CachedContent: cache.Name,
	},
)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

Ayarlanmış Model

Python

# With Gemini 2 we're launching a new SDK. See the following doc for details.
# https://ai.google.dev/gemini-api/docs/migrate

JSON Modu

Python

from google import genai
from google.genai import types
from typing_extensions import TypedDict

class Recipe(TypedDict):
  recipe_name: str
  ingredients: list[str]

client = genai.Client()
result = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="List a few popular cookie recipes.",
    config=types.GenerateContentConfig(
        response_mime_type="application/json", response_schema=list[Recipe]
    ),
)
print(result)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: 'List a few popular cookie recipes.',
  config: {
    responseMimeType: 'application/json',
    responseSchema: {
      type: 'array',
      items: {
        type: 'object',
        properties: {
          recipeName: {type: 'string'},
          ingredients: {type: 'array', items: {type: 'string'}},
        },
        required: ['recipeName', 'ingredients'],
      },
    },
  },
});
console.log(response.text);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

schema := &genai.Schema{
	Type: genai.TypeArray,
	Items: &genai.Schema{
		Type: genai.TypeObject,
		Properties: map[string]*genai.Schema{
			"recipe_name": {Type: genai.TypeString},
			"ingredients": {
				Type:  genai.TypeArray,
				Items: &genai.Schema{Type: genai.TypeString},
			},
		},
		Required: []string{"recipe_name"},
	},
}

config := &genai.GenerateContentConfig{
	ResponseMIMEType: "application/json",
	ResponseSchema:   schema,
}

response, err := client.Models.GenerateContent(
	ctx,
	"gemini-3.8-flash",
	genai.Text("List a few popular cookie recipes."),
	config,
)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

kabuk

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
    "contents": [{
      "parts":[
        {"text": "List 5 popular cookie recipes"}
        ]
    }],
    "generationConfig": {
        "response_mime_type": "application/json",
        "response_schema": {
          "type": "ARRAY",
          "items": {
            "type": "OBJECT",
            "properties": {
              "recipe_name": {"type":"STRING"},
            }
          }
        }
    }
}' 2> /dev/null | head

Java

Client client = new Client();

Schema recipeSchema =
    Schema.builder()
        .type(Array.class.getSimpleName())
        .items(
            Schema.builder()
                .type(Object.class.getSimpleName())
                .properties(
                    Map.of(
                        "recipe_name",
                        Schema.builder().type(String.class.getSimpleName()).build(),
                        "ingredients",
                        Schema.builder()
                            .type(Array.class.getSimpleName())
                            .items(Schema.builder().type(String.class.getSimpleName()).build())
                            .build()))
                .required(List.of("recipe_name", "ingredients"))
                .build())
        .build();

GenerateContentConfig config =
    GenerateContentConfig.builder()
        .responseMimeType("application/json")
        .responseSchema(recipeSchema)
        .build();

GenerateContentResponse response =
    client.models.generateContent(
        "gemini-3.8-flash", "List a few popular cookie recipes.", config);

System.out.println(response.text());

Kod yürütme

Python

from google import genai
from google.genai import types

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=(
        "Write and execute code that calculates the sum of the first 50"
        " prime numbers. Ensure that only the executable code and its"
        " resulting output are generated."
    ),
)
# Each part may contain text, executable code, or an execution result.
for part in response.candidates[0].content.parts:
  print(part, "\n")

print("-" * 80)
# The .text accessor concatenates the parts into a markdown-formatted text.
print("\n", response.text)

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

response, err := client.Models.GenerateContent(
	ctx,
	"gemini-3.8-flash",
	genai.Text(
		`Write and execute code that calculates the sum of the first 50 prime numbers.
		 Ensure that only the executable code and its resulting output are generated.`,
	),
	&genai.GenerateContentConfig{},
)
if err != nil {
	log.Fatal(err)
}

// Print the response.
printResponse(response)

fmt.Println("--------------------------------------------------------------------------------")
fmt.Println(response.Text())

Java

Client client = new Client();

String prompt =
    """
    Write and execute code that calculates the sum of the first 50 prime numbers.
    Ensure that only the executable code and its resulting output are generated.
    """;

GenerateContentResponse response =
    client.models.generateContent("gemini-3.8-flash", prompt, null);

for (Part part : response.candidates().get().getFirst().content().get().parts().get()) {
  System.out.println(part + "\n");
}

System.out.println("-".repeat(80));
System.out.println(response.text());

İşlev Çağırma

Python

from google import genai
from google.genai import types

client = genai.Client()

def add(a: float, b: float) -> float:
  """returns a + b."""
  return a + b

def subtract(a: float, b: float) -> float:
  """returns a - b."""
  return a - b

def multiply(a: float, b: float) -> float:
  """returns a * b."""
  return a * b

def divide(a: float, b: float) -> float:
  """returns a / b."""
  return a / b

# Create a chat session; function calling (via tools) is enabled in the config.
chat = client.chats.create(
    model="gemini-3.8-flash",
    config=types.GenerateContentConfig(
        tools=[add, subtract, multiply, divide]
    ),
)
response = chat.send_message(
    message=(
        "I have 57 cats, each owns 44 mittens, how many mittens is that in"
        " total?"
    )
)
print(response.text)

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}
modelName := "gemini-3.8-flash"

// Create the function declarations for arithmetic operations.
addDeclaration := createArithmeticToolDeclaration("addNumbers", "Return the result of adding two numbers.")
subtractDeclaration := createArithmeticToolDeclaration("subtractNumbers", "Return the result of subtracting the second number from the first.")
multiplyDeclaration := createArithmeticToolDeclaration("multiplyNumbers", "Return the product of two numbers.")
divideDeclaration := createArithmeticToolDeclaration("divideNumbers", "Return the quotient of dividing the first number by the second.")

// Group the function declarations as a tool.
tools := []*genai.Tool{
	{
		FunctionDeclarations: []*genai.FunctionDeclaration{
			addDeclaration,
			subtractDeclaration,
			multiplyDeclaration,
			divideDeclaration,
		},
	},
}

// Create the content prompt.
contents := []*genai.Content{
	genai.NewContentFromText(
		"I have 57 cats, each owns 44 mittens, how many mittens is that in total?", genai.RoleUser,
	),
}

// Set up the generate content configuration with function calling enabled.
config := &genai.GenerateContentConfig{
	Tools: tools,
	ToolConfig: &genai.ToolConfig{
		FunctionCallingConfig: &genai.FunctionCallingConfig{
			// The mode equivalent to FunctionCallingConfigMode.ANY in JS.
			Mode: genai.FunctionCallingConfigModeAny,
		},
	},
}

genContentResp, err := client.Models.GenerateContent(ctx, modelName, contents, config)
if err != nil {
	log.Fatal(err)
}

// Assume the response includes a list of function calls.
if len(genContentResp.FunctionCalls()) == 0 {
	log.Println("No function call returned from the AI.")
	return nil
}
functionCall := genContentResp.FunctionCalls()[0]
log.Printf("Function call: %+v\n", functionCall)

// Marshal the Args map into JSON bytes.
argsMap, err := json.Marshal(functionCall.Args)
if err != nil {
	log.Fatal(err)
}

// Unmarshal the JSON bytes into the ArithmeticArgs struct.
var args ArithmeticArgs
if err := json.Unmarshal(argsMap, &args); err != nil {
	log.Fatal(err)
}

// Map the function name to the actual arithmetic function.
var result float64
switch functionCall.Name {
case "addNumbers":
	result = add(args.FirstParam, args.SecondParam)
case "subtractNumbers":
	result = subtract(args.FirstParam, args.SecondParam)
case "multiplyNumbers":
	result = multiply(args.FirstParam, args.SecondParam)
case "divideNumbers":
	result = divide(args.FirstParam, args.SecondParam)
default:
	return fmt.Errorf("unimplemented function: %s", functionCall.Name)
}
log.Printf("Function result: %v\n", result)

// Prepare the final result message as content.
resultContents := []*genai.Content{
	genai.NewContentFromText("The final result is "+fmt.Sprintf("%v", result), genai.RoleUser),
}

// Use GenerateContent to send the final result.
finalResponse, err := client.Models.GenerateContent(ctx, modelName, resultContents, &genai.GenerateContentConfig{})
if err != nil {
	log.Fatal(err)
}

printResponse(finalResponse)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

/**
 * The add function returns the sum of two numbers.
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function add(a, b) {
  return a + b;
}

/**
 * The subtract function returns the difference (a - b).
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function subtract(a, b) {
  return a - b;
}

/**
 * The multiply function returns the product of two numbers.
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function multiply(a, b) {
  return a * b;
}

/**
 * The divide function returns the quotient of a divided by b.
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function divide(a, b) {
  return a / b;
}

const addDeclaration = {
  name: 'addNumbers',
  parameters: {
    type: 'object',
    description: 'Return the result of adding two numbers.',
    properties: {
      firstParam: {
        type: 'number',
        description:
            'The first parameter which can be an integer or a floating point number.',
      },
      secondParam: {
        type: 'number',
        description:
            'The second parameter which can be an integer or a floating point number.',
      },
    },
    required: ['firstParam', 'secondParam'],
  },
};

const subtractDeclaration = {
  name: 'subtractNumbers',
  parameters: {
    type: 'object',
    description:
        'Return the result of subtracting the second number from the first.',
    properties: {
      firstParam: {
        type: 'number',
        description: 'The first parameter.',
      },
      secondParam: {
        type: 'number',
        description: 'The second parameter.',
      },
    },
    required: ['firstParam', 'secondParam'],
  },
};

const multiplyDeclaration = {
  name: 'multiplyNumbers',
  parameters: {
    type: 'object',
    description: 'Return the product of two numbers.',
    properties: {
      firstParam: {
        type: 'number',
        description: 'The first parameter.',
      },
      secondParam: {
        type: 'number',
        description: 'The second parameter.',
      },
    },
    required: ['firstParam', 'secondParam'],
  },
};

const divideDeclaration = {
  name: 'divideNumbers',
  parameters: {
    type: 'object',
    description:
        'Return the quotient of dividing the first number by the second.',
    properties: {
      firstParam: {
        type: 'number',
        description: 'The first parameter.',
      },
      secondParam: {
        type: 'number',
        description: 'The second parameter.',
      },
    },
    required: ['firstParam', 'secondParam'],
  },
};

// Step 1: Call generateContent with function calling enabled.
const generateContentResponse = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents:
      'I have 57 cats, each owns 44 mittens, how many mittens is that in total?',
  config: {
    toolConfig: {
      functionCallingConfig: {
        mode: FunctionCallingConfigMode.ANY,
      },
    },
    tools: [
      {
        functionDeclarations: [
          addDeclaration,
          subtractDeclaration,
          multiplyDeclaration,
          divideDeclaration,
        ],
      },
    ],
  },
});

// Step 2: Extract the function call.(
// Assuming the response contains a 'functionCalls' array.
const functionCall = generateContentResponse.functionCalls &&
    generateContentResponse.functionCalls[0];
console.log(functionCall);

// Parse the arguments.
const args = functionCall.args;
// Expected args format: { firstParam: number, secondParam: number }

// Step 3: Invoke the actual function based on the function name.
const functionMapping = {
  addNumbers: add,
  subtractNumbers: subtract,
  multiplyNumbers: multiply,
  divideNumbers: divide,
};
const func = functionMapping[functionCall.name];
if (!func) {
  console.error('Unimplemented error:', functionCall.name);
  return generateContentResponse;
}
const resultValue = func(args.firstParam, args.secondParam);
console.log('Function result:', resultValue);

// Step 4: Use the chat API to send the result as the final answer.
const chat = ai.chats.create({model: 'gemini-3.8-flash'});
const chatResponse = await chat.sendMessage({
  message: 'The final result is ' + resultValue,
});
console.log(chatResponse.text);

kabuk


cat > tools.json << EOF
{
  "function_declarations": [
    {
      "name": "enable_lights",
      "description": "Turn on the lighting system."
    },
    {
      "name": "set_light_color",
      "description": "Set the light color. Lights must be enabled for this to work.",
      "parameters": {
        "type": "object",
        "properties": {
          "rgb_hex": {
            "type": "string",
            "description": "The light color as a 6-digit hex string, e.g. ff0000 for red."
          }
        },
        "required": [
          "rgb_hex"
        ]
      }
    },
    {
      "name": "stop_lights",
      "description": "Turn off the lighting system."
    }
  ]
} 
EOF

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d @<(echo '
  {
    "system_instruction": {
      "parts": {
        "text": "You are a helpful lighting system bot. You can turn lights on and off, and you can set the color. Do not perform any other tasks."
      }
    },
    "tools": ['$(cat tools.json)'],

    "tool_config": {
      "function_calling_config": {"mode": "auto"}
    },

    "contents": {
      "role": "user",
      "parts": {
        "text": "Turn on the lights please."
      }
    }
  }
') 2>/dev/null |sed -n '/"content"/,/"finishReason"/p'

Java

Client client = new Client();

FunctionDeclaration addFunction =
    FunctionDeclaration.builder()
        .name("addNumbers")
        .parameters(
            Schema.builder()
                .type("object")
                .properties(
                    Map.of(
                        "firstParam",
                            Schema.builder().type("number").description("First number").build(),
                        "secondParam",
                            Schema.builder()
                                .type("number")
                                .description("Second number")
                                .build()))
                .required(Arrays.asList("firstParam", "secondParam"))
                .build())
        .build();

FunctionDeclaration subtractFunction =
    FunctionDeclaration.builder()
        .name("subtractNumbers")
        .parameters(
            Schema.builder()
                .type("object")
                .properties(
                    Map.of(
                        "firstParam",
                            Schema.builder().type("number").description("First number").build(),
                        "secondParam",
                            Schema.builder()
                                .type("number")
                                .description("Second number")
                                .build()))
                .required(Arrays.asList("firstParam", "secondParam"))
                .build())
        .build();

FunctionDeclaration multiplyFunction =
    FunctionDeclaration.builder()
        .name("multiplyNumbers")
        .parameters(
            Schema.builder()
                .type("object")
                .properties(
                    Map.of(
                        "firstParam",
                            Schema.builder().type("number").description("First number").build(),
                        "secondParam",
                            Schema.builder()
                                .type("number")
                                .description("Second number")
                                .build()))
                .required(Arrays.asList("firstParam", "secondParam"))
                .build())
        .build();

FunctionDeclaration divideFunction =
    FunctionDeclaration.builder()
        .name("divideNumbers")
        .parameters(
            Schema.builder()
                .type("object")
                .properties(
                    Map.of(
                        "firstParam",
                            Schema.builder().type("number").description("First number").build(),
                        "secondParam",
                            Schema.builder()
                                .type("number")
                                .description("Second number")
                                .build()))
                .required(Arrays.asList("firstParam", "secondParam"))
                .build())
        .build();

GenerateContentConfig config =
    GenerateContentConfig.builder()
        .toolConfig(
            ToolConfig.builder()
                .functionCallingConfig(FunctionCallingConfig.builder().mode("ANY").build())
                .build())
        .tools(
            Collections.singletonList(
                Tool.builder()
                    .functionDeclarations(
                        Arrays.asList(
                            addFunction, subtractFunction, divideFunction, multiplyFunction))
                    .build()))
        .build();

GenerateContentResponse response =
    client.models.generateContent(
        "gemini-3.8-flash",
        "I have 57 cats, each owns 44 mittens, how many mittens is that in total?",
        config);

if (response.functionCalls() == null || response.functionCalls().isEmpty()) {
  System.err.println("No function call received");
  return null;
}

var functionCall = response.functionCalls().getFirst();
String functionName = functionCall.name().get();
var arguments = functionCall.args();

Map<String, BiFunction<Double, Double, Double>> functionMapping = new HashMap<>();
functionMapping.put("addNumbers", (a, b) -> a + b);
functionMapping.put("subtractNumbers", (a, b) -> a - b);
functionMapping.put("multiplyNumbers", (a, b) -> a * b);
functionMapping.put("divideNumbers", (a, b) -> b != 0 ? a / b : Double.NaN);

BiFunction<Double, Double, Double> function = functionMapping.get(functionName);

Number firstParam = (Number) arguments.get().get("firstParam");
Number secondParam = (Number) arguments.get().get("secondParam");
Double result = function.apply(firstParam.doubleValue(), secondParam.doubleValue());

System.out.println(result);

Oluşturma yapılandırması

Python

from google import genai
from google.genai import types

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="Tell me a story about a magic backpack.",
    config=types.GenerateContentConfig(
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: 'Tell me a story about a magic backpack.',
  config: {
    candidateCount: 1,
    stopSequences: ['x'],
    maxOutputTokens: 20,
    temperature: 1.0,
  },
});

console.log(response.text);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

// Create local variables for parameters.
candidateCount := int32(1)
maxOutputTokens := int32(20)
temperature := float32(1.0)

response, err := client.Models.GenerateContent(
	ctx,
	"gemini-3.8-flash",
	genai.Text("Tell me a story about a magic backpack."),
	&genai.GenerateContentConfig{
		CandidateCount:  candidateCount,
		StopSequences:   []string{"x"},
		MaxOutputTokens: maxOutputTokens,
		Temperature:     &temperature,
	},
)
if err != nil {
	log.Fatal(err)
}

printResponse(response)

kabuk

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
        "contents": [{
            "parts":[
                {"text": "Explain how AI works"}
            ]
        }],
        "generationConfig": {
            "stopSequences": [
                "Title"
            ],
            "temperature": 1.0,
            "maxOutputTokens": 800,
            "topP": 0.8,
            "topK": 10
        }
    }'  2> /dev/null | grep "text"

Java

Client client = new Client();

GenerateContentConfig config =
    GenerateContentConfig.builder()
        .candidateCount(1)
        .stopSequences(List.of("x"))
        .maxOutputTokens(20)
        .temperature(1.0F)
        .build();

GenerateContentResponse response =
    client.models.generateContent(
        "gemini-3.8-flash", "Tell me a story about a magic backpack.", config);

System.out.println(response.text());

Güvenlik Ayarları

Python

from google import genai
from google.genai import types

client = genai.Client()
unsafe_prompt = (
    "I support Martians Soccer Club and I think Jupiterians Football Club"
    " sucks! Write a ironic phrase about them including expletives."
)
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=unsafe_prompt,
    config=types.GenerateContentConfig(
        safety_settings=[
            types.SafetySetting(
                category="HARM_CATEGORY_HATE_SPEECH",
                threshold="BLOCK_MEDIUM_AND_ABOVE",
            ),
            types.SafetySetting(
                category="HARM_CATEGORY_HARASSMENT",
                threshold="BLOCK_ONLY_HIGH",
            ),
        ]
    ),
)
try:
  print(response.text)
except Exception:
  print("No information generated by the model.")

print(response.candidates[0].safety_ratings)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const unsafePrompt =
    'I support Martians Soccer Club and I think Jupiterians Football Club sucks! Write a ironic phrase about them including expletives.';

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: unsafePrompt,
  config: {
    safetySettings: [
      {
        category: 'HARM_CATEGORY_HATE_SPEECH',
        threshold: 'BLOCK_MEDIUM_AND_ABOVE',
      },
      {
        category: 'HARM_CATEGORY_HARASSMENT',
        threshold: 'BLOCK_ONLY_HIGH',
      },
    ],
  },
});

try {
  console.log('Generated text:', response.text);
} catch (error) {
  console.log('No information generated by the model.');
}
console.log('Safety ratings:', response.candidates[0].safetyRatings);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

unsafePrompt := "I support Martians Soccer Club and I think Jupiterians Football Club sucks! " +
	"Write a ironic phrase about them including expletives."

config := &genai.GenerateContentConfig{
	SafetySettings: []*genai.SafetySetting{
		{
			Category:  "HARM_CATEGORY_HATE_SPEECH",
			Threshold: "BLOCK_MEDIUM_AND_ABOVE",
		},
		{
			Category:  "HARM_CATEGORY_HARASSMENT",
			Threshold: "BLOCK_ONLY_HIGH",
		},
	},
}
contents := []*genai.Content{
	genai.NewContentFromText(unsafePrompt, genai.RoleUser),
}
response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, config)
if err != nil {
	log.Fatal(err)
}

// Print the generated text.
text := response.Text()
fmt.Println("Generated text:", text)

// Print the and safety ratings from the first candidate.
if len(response.Candidates) > 0 {
	fmt.Println("Finish reason:", response.Candidates[0].FinishReason)
	safetyRatings, err := json.MarshalIndent(response.Candidates[0].SafetyRatings, "", "  ")
	if err != nil {
		return err
	}
	fmt.Println("Safety ratings:", string(safetyRatings))
} else {
	fmt.Println("No candidate returned.")
}

kabuk

echo '{
    "safetySettings": [
        {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_ONLY_HIGH"},
        {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE"}
    ],
    "contents": [{
        "parts":[{
            "text": "'I support Martians Soccer Club and I think Jupiterians Football Club sucks! Write a ironic phrase about them.'"}]}]}' > request.json

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d @request.json 2> /dev/null

Java

Client client = new Client();

String unsafePrompt =
    """
     I support Martians Soccer Club and I think Jupiterians Football Club sucks!
     Write a ironic phrase about them including expletives.
    """;

GenerateContentConfig config =
    GenerateContentConfig.builder()
        .safetySettings(
            Arrays.asList(
                SafetySetting.builder()
                    .category("HARM_CATEGORY_HATE_SPEECH")
                    .threshold("BLOCK_MEDIUM_AND_ABOVE")
                    .build(),
                SafetySetting.builder()
                    .category("HARM_CATEGORY_HARASSMENT")
                    .threshold("BLOCK_ONLY_HIGH")
                    .build()))
        .build();

GenerateContentResponse response =
    client.models.generateContent("gemini-3.8-flash", unsafePrompt, config);

try {
  System.out.println(response.text());
} catch (Exception e) {
  System.out.println("No information generated by the model");
}

System.out.println(response.candidates().get().getFirst().safetyRatings());

Sistem Talimatı

Python

from google import genai
from google.genai import types

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="Good morning! How are you?",
    config=types.GenerateContentConfig(
        system_instruction="You are a cat. Your name is Neko."
    ),
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: 'Good morning! How are you?',
  config: {
    systemInstruction: 'You are a cat. Your name is Neko.',
  },
});
console.log(response.text);

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

// Construct the user message contents.
contents := []*genai.Content{
	genai.NewContentFromText("Good morning! How are you?", genai.RoleUser),
}

// Set the system instruction as a *genai.Content.
config := &genai.GenerateContentConfig{
	SystemInstruction: genai.NewContentFromText("You are a cat. Your name is Neko.", genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, config)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

kabuk

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{ "system_instruction": {
    "parts":
      { "text": "You are a cat. Your name is Neko."}},
    "contents": {
      "parts": {
        "text": "Hello there"}}}'

Java

Client client = new Client();

Part textPart = Part.builder().text("You are a cat. Your name is Neko.").build();

Content content = Content.builder().role("system").parts(ImmutableList.of(textPart)).build();

GenerateContentConfig config =
    GenerateContentConfig.builder().systemInstruction(content).build();

GenerateContentResponse response =
    client.models.generateContent("gemini-3.8-flash", "Good morning! How are you?", config);

System.out.println(response.text());

Yanıt metni

Başarılıysa yanıt metni, GenerateContentResponse öğesinin bir örneğini içerir.

Yöntem: models.streamGenerateContent

GenerateContentRequest girişi verildiğinde modelden akış yanıtı oluşturur.

Uç nokta

yayın https://generativelanguage.googleapis.com/v1beta/{model=models/*}:streamGenerateContent

Yol parametreleri

model string

Zorunlu. Tamamlamayı oluşturmak için kullanılacak Model adı.

Biçim: models/{model}. models/{model} biçimindedir.

İstek metni

İstek içeriği aşağıdaki yapıyla birlikte verileri içerir:

Alanlar
contents[] object (Content)

Zorunlu. Model ile mevcut sohbetin içeriği.

Tek turlu sorgular için bu tek bir örnektir. Sohbet gibi çok turlu sorgular için bu, sohbet geçmişini ve en son isteği içeren yinelenen bir alandır.

tools[] object (Tool)

İsteğe bağlıdır. Model tarafından bir sonraki yanıtı oluşturmak için kullanılabilecek Tools listesi.

Tool, sistemin Model'nin bilgisi ve kapsamı dışında bir işlem veya işlem grubu gerçekleştirmek için harici sistemlerle etkileşim kurmasını sağlayan bir kod parçasıdır. Desteklenen Tool'ler Function ve codeExecution'dir. Daha fazla bilgi için İşlev çağrısı ve Kod yürütme kılavuzlarını inceleyin.

toolConfig object (ToolConfig)

İsteğe bağlıdır. İstekte belirtilen herhangi bir Tool için araç yapılandırması. Kullanım örneği için İşlev çağrısı kılavuzuna bakın.

safetySettings[] object (SafetySetting)

İsteğe bağlıdır. Güvenli olmayan içeriği engellemek için benzersiz SafetySetting örneklerinin listesi.

Bu kural GenerateContentRequest.contents ve GenerateContentResponse.candidates için geçerli olacak. Her SafetyCategory türü için birden fazla ayar olmamalıdır. API, bu ayarlarla belirlenen eşikleri karşılamayan tüm içerikleri ve yanıtları engeller. Bu liste, safetySettings'de belirtilen her SafetyCategory için varsayılan ayarları geçersiz kılar. Listede belirtilen bir SafetyCategory için SafetySetting yoksa API, ilgili kategori için varsayılan güvenlik ayarını kullanır. HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_CIVIC_INTEGRITY, HARM_CATEGORY_JAILBREAK zarar kategorileri desteklenir. Kullanılabilir güvenlik ayarları hakkında ayrıntılı bilgi için kılavuza bakın. Yapay zeka uygulamalarınızda güvenlik hususlarını nasıl dikkate alacağınızı öğrenmek için Güvenlik kılavuzunu da inceleyebilirsiniz.

continuationToken string (bytes format)

İsteğe bağlıdır. finishReason, CONTINUATION olarak ayarlanmış şekilde durdurulan önceki bir models.generateContent veya models.streamGenerateContent yanıtından oluşturma işlemine devam etmek için kullanılan opak bir devam jetonu. contents parametresinin zorunlu olduğunu ve bir istekte devamlılık jetonu sağlandığında ilk istekteki istemi ve görüşme geçmişini aynı şekilde kopyalaması gerektiğini unutmayın.

Base64 kodlu bir dize.

labels map (key: string, value: string)

İsteğe bağlıdır. İstek için kullanıcı tanımlı meta veriler içeren etiketler.

İsteğe bağlıdır. Etiketler, standart birleştirilmiş Cloud etiketi koşullarına uymalıdır: - Etiket anahtarları bir harfle başlamalıdır. - Etiket anahtarları ve değerleri 63 karakterden (Unicode kod noktaları) uzun olamaz ve yalnızca küçük harf, sayısal karakter, alt çizgi ve kısa çizgi içerebilir. - Uluslararası karakterlere izin verilir.

Kullanım: - Toplayıcılardan alınan güvenlik tanımlayıcıları: safety_identifier anahtarını kullanın (ör. {"safety_identifier": "user_session_123"})

"key": value çiftlerinin listesini içeren bir nesne. Örnek: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

systemInstruction object (Content)

İsteğe bağlıdır. Geliştirici tarafından belirlenen sistem talimatları. Şu anda yalnızca metin desteklenmektedir.

generationConfig object (GenerationConfig)

İsteğe bağlıdır. Model oluşturma ve çıkışlar için yapılandırma seçenekleri.

cachedContent string

İsteğe bağlıdır. Tahmini sunmak için bağlam olarak kullanılmak üzere önbelleğe alınan içeriğin adı. Biçim: cachedContents/{cachedContent}

serviceTier enum (ServiceTier)

İsteğe bağlıdır. İsteğin hizmet katmanı.

store boolean

İsteğe bağlıdır. Belirli bir istek için günlük kaydı davranışını yapılandırır. Ayarlanırsa proje düzeyindeki günlük kaydı yapılandırmasına göre öncelikli olur.

Örnek istek

Metin

Python

from google import genai

client = genai.Client()
response = client.models.generate_content_stream(
    model="gemini-3.8-flash",
    contents="Write a story about a magic backpack.",
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const response = await ai.models.generateContentStream({
  model: 'gemini-3.8-flash',
  contents: 'Write a story about a magic backpack.',
});
let text = '';
for await (const chunk of response) {
  console.log(chunk.text);
  text += chunk.text;
}

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}
contents := []*genai.Content{
	genai.NewContentFromText("Write a story about a magic backpack.", genai.RoleUser),
}
for response, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(response.Candidates[0].Content.Parts[0].Text)
}

kabuk

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=${GEMINI_API_KEY}" \
        -H 'Content-Type: application/json' \
        --no-buffer \
        -d '{ "contents":[{"parts":[{"text": "Write a story about a magic backpack."}]}]}'

Java

Client client = new Client();

ResponseStream<GenerateContentResponse> responseStream =
    client.models.generateContentStream(
        "gemini-3.8-flash", "Write a story about a magic backpack.", null);

StringBuilder response = new StringBuilder();
for (GenerateContentResponse res : responseStream) {
  System.out.print(res.text());
  response.append(res.text());
}

responseStream.close();

Resim

Python

from google import genai
import PIL.Image

client = genai.Client()
organ = PIL.Image.open(media / "organ.jpg")
response = client.models.generate_content_stream(
    model="gemini-3.8-flash",
    contents=["Tell me about this instrument", organ],
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const organ = await ai.files.upload({
  file: path.join(media, 'organ.jpg'),
});

const response = await ai.models.generateContentStream({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Tell me about this instrument',
      createPartFromUri(organ.uri, organ.mimeType)
    ]),
  ],
});
let text = '';
for await (const chunk of response) {
  console.log(chunk.text);
  text += chunk.text;
}

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}
file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "organ.jpg"),
	&genai.UploadFileConfig{
		MIMEType: "image/jpeg",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromText("Tell me about this instrument"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}
for response, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(response.Candidates[0].Content.Parts[0].Text)
}

kabuk

cat > "$TEMP_JSON" << EOF
{
  "contents": [{
    "parts":[
      {"text": "Tell me about this instrument"},
      {
        "inline_data": {
          "mime_type":"image/jpeg",
          "data": "$(cat "$TEMP_B64")"
        }
      }
    ]
  }]
}
EOF

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d "@$TEMP_JSON" 2> /dev/null

Java

Client client = new Client();

String path = media_path + "organ.jpg";
byte[] imageData = Files.readAllBytes(Paths.get(path));

Content content =
    Content.fromParts(
        Part.fromText("Tell me about this instrument."),
        Part.fromBytes(imageData, "image/jpeg"));

ResponseStream<GenerateContentResponse> responseStream =
    client.models.generateContentStream("gemini-3.8-flash", content, null);

StringBuilder response = new StringBuilder();
for (GenerateContentResponse res : responseStream) {
  System.out.print(res.text());
  response.append(res.text());
}

responseStream.close();

Ses

Python

from google import genai

client = genai.Client()
sample_audio = client.files.upload(file=media / "sample.mp3")
response = client.models.generate_content_stream(
    model="gemini-3.8-flash",
    contents=["Give me a summary of this audio file.", sample_audio],
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "sample.mp3"),
	&genai.UploadFileConfig{
		MIMEType: "audio/mpeg",
	},
)
if err != nil {
	log.Fatal(err)
}

parts := []*genai.Part{
	genai.NewPartFromText("Give me a summary of this audio file."),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

for result, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(result.Candidates[0].Content.Parts[0].Text)
}

kabuk

# Use File API to upload audio data to API request.
MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
DISPLAY_NAME=AUDIO

tmp_header_file=upload-header.tmp

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files?key=${GEMINI_API_KEY}" \
  -D upload-header.tmp \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Please describe this file."},
          {"file_data":{"mime_type": "audio/mpeg", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

Video

Python

from google import genai
import time

client = genai.Client()
# Video clip (CC BY 3.0) from https://peach.blender.org/download/
myfile = client.files.upload(file=media / "Big_Buck_Bunny.mp4")
print(f"{myfile=}")

# Poll until the video file is completely processed (state becomes ACTIVE).
while not myfile.state or myfile.state.name != "ACTIVE":
  print("Processing video...")
  print("File state:", myfile.state)
  time.sleep(5)
  myfile = client.files.get(name=myfile.name)

response = client.models.generate_content_stream(
    model="gemini-3.8-flash", contents=[myfile, "Describe this video clip"]
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

let video = await ai.files.upload({
  file: path.join(media, 'Big_Buck_Bunny.mp4'),
});

// Poll until the video file is completely processed (state becomes ACTIVE).
while (!video.state || video.state.toString() !== 'ACTIVE') {
  console.log('Processing video...');
  console.log('File state: ', video.state);
  await sleep(5000);
  video = await ai.files.get({name: video.name});
}

const response = await ai.models.generateContentStream({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Describe this video clip',
      createPartFromUri(video.uri, video.mimeType),
    ]),
  ],
});
let text = '';
for await (const chunk of response) {
  console.log(chunk.text);
  text += chunk.text;
}

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "Big_Buck_Bunny.mp4"),
	&genai.UploadFileConfig{
		MIMEType: "video/mp4",
	},
)
if err != nil {
	log.Fatal(err)
}

// Poll until the video file is completely processed (state becomes ACTIVE).
for file.State == genai.FileStateUnspecified || file.State != genai.FileStateActive {
	fmt.Println("Processing video...")
	fmt.Println("File state:", file.State)
	time.Sleep(5 * time.Second)

	file, err = client.Files.Get(ctx, file.Name, nil)
	if err != nil {
		log.Fatal(err)
	}
}

parts := []*genai.Part{
	genai.NewPartFromText("Describe this video clip"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

for result, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(result.Candidates[0].Content.Parts[0].Text)
}

kabuk

# Use File API to upload audio data to API request.
MIME_TYPE=$(file -b --mime-type "${VIDEO_PATH}")
NUM_BYTES=$(wc -c < "${VIDEO_PATH}")
DISPLAY_NAME=VIDEO_PATH

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files?key=${GEMINI_API_KEY}" \
  -D upload-header.tmp \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${VIDEO_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

state=$(jq ".file.state" file_info.json)
echo state=$state

while [[ "($state)" = *"PROCESSING"* ]];
do
  echo "Processing video..."
  sleep 5
  # Get the file of interest to check state
  curl https://generativelanguage.googleapis.com/v1beta/files/$name > file_info.json
  state=$(jq ".file.state" file_info.json)
done

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Please describe this file."},
          {"file_data":{"mime_type": "video/mp4", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

PDF

Python

from google import genai

client = genai.Client()
sample_pdf = client.files.upload(file=media / "test.pdf")
response = client.models.generate_content_stream(
    model="gemini-3.8-flash",
    contents=["Give me a summary of this document:", sample_pdf],
)

for chunk in response:
  print(chunk.text)
  print("_" * 80)

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "test.pdf"),
	&genai.UploadFileConfig{
		MIMEType: "application/pdf",
	},
)
if err != nil {
	log.Fatal(err)
}

parts := []*genai.Part{
	genai.NewPartFromText("Give me a summary of this document:"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

for result, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(result.Candidates[0].Content.Parts[0].Text)
}

kabuk

MIME_TYPE=$(file -b --mime-type "${PDF_PATH}")
NUM_BYTES=$(wc -c < "${PDF_PATH}")
DISPLAY_NAME=TEXT


echo $MIME_TYPE
tmp_header_file=upload-header.tmp

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files?key=${GEMINI_API_KEY}" \
  -D upload-header.tmp \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${PDF_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Can you add a few more lines to this poem?"},
          {"file_data":{"mime_type": "application/pdf", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

Sohbet

Python

from google import genai
from google.genai import types

client = genai.Client()
chat = client.chats.create(
    model="gemini-3.8-flash",
    history=[
        types.Content(role="user", parts=[types.Part(text="Hello")]),
        types.Content(
            role="model",
            parts=[
                types.Part(
                    text="Great to meet you. What would you like to know?"
                )
            ],
        ),
    ],
)
response = chat.send_message_stream(message="I have 2 dogs in my house.")
for chunk in response:
  print(chunk.text)
  print("_" * 80)
response = chat.send_message_stream(
    message="How many paws are in my house?"
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

print(chat.get_history())

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const chat = ai.chats.create({
  model: 'gemini-3.8-flash',
  history: [
    {
      role: 'user',
      parts: [{text: 'Hello'}],
    },
    {
      role: 'model',
      parts: [{text: 'Great to meet you. What would you like to know?'}],
    },
  ],
});

console.log('Streaming response for first message:');
const stream1 = await chat.sendMessageStream({
  message: 'I have 2 dogs in my house.',
});
for await (const chunk of stream1) {
  console.log(chunk.text);
  console.log('_'.repeat(80));
}

console.log('Streaming response for second message:');
const stream2 = await chat.sendMessageStream({
  message: 'How many paws are in my house?',
});
for await (const chunk of stream2) {
  console.log(chunk.text);
  console.log('_'.repeat(80));
}

console.log(chat.getHistory());

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

history := []*genai.Content{
	genai.NewContentFromText("Hello", genai.RoleUser),
	genai.NewContentFromText("Great to meet you. What would you like to know?", genai.RoleModel),
}
chat, err := client.Chats.Create(ctx, "gemini-3.8-flash", nil, history)
if err != nil {
	log.Fatal(err)
}

for chunk, err := range chat.SendMessageStream(ctx, genai.Part{Text: "I have 2 dogs in my house."}) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(chunk.Text())
	fmt.Println(strings.Repeat("_", 64))
}

for chunk, err := range chat.SendMessageStream(ctx, genai.Part{Text: "How many paws are in my house?"}) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(chunk.Text())
	fmt.Println(strings.Repeat("_", 64))
}

fmt.Println(chat.History(false))

kabuk

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [
        {"role":"user",
         "parts":[{
           "text": "Hello"}]},
        {"role": "model",
         "parts":[{
           "text": "Great to meet you. What would you like to know?"}]},
        {"role":"user",
         "parts":[{
           "text": "I have two dogs in my house. How many paws are in my house?"}]},
      ]
    }' 2> /dev/null | grep "text"

Yanıt metni

Başarılı olursa yanıt gövdesi, GenerateContentResponse örneklerinden oluşan bir akış içerir.

GenerateContentResponse

Modelden gelen ve birden fazla aday yanıtı destekleyen yanıt.

Güvenlik derecelendirmeleri ve içerik filtreleme, GenerateContentResponse.prompt_feedback içindeki her iki istem için ve finishReason ile safetyRatings içindeki her aday için raporlanır. API: - İstenen tüm adayları döndürür veya hiçbirini döndürmez. - Yalnızca istemde bir sorun varsa (promptFeedback kontrol edin) hiçbir aday döndürmez. - finishReason ve safetyRatings içinde her aday hakkında geri bildirim bildirir.

Alanlar
candidates[] object (Candidate)

Modelden gelen aday yanıtlar.

promptFeedback object (PromptFeedback)

İstemle ilgili içerik filtreleri hakkında geri bildirim döndürür.

usageMetadata object (UsageMetadata)

Yalnızca çıkış. Oluşturma isteklerinin jeton kullanımıyla ilgili meta veriler.

modelVersion string

Yalnızca çıkış. Yanıtı oluşturmak için kullanılan model sürümü.

responseId string

Yalnızca çıkış. responseId, her yanıtı tanımlamak için kullanılır.

modelStatus object (ModelStatus)

Yalnızca çıkış. Bu modelin mevcut model durumu.

JSON gösterimi
{
  "candidates": [
    {
      object (Candidate)
    }
  ],
  "promptFeedback": {
    object (PromptFeedback)
  },
  "usageMetadata": {
    object (UsageMetadata)
  },
  "modelVersion": string,
  "responseId": string,
  "modelStatus": {
    object (ModelStatus)
  }
}

PromptFeedback

GenerateContentRequest.content içinde belirtilen istemin geri bildirim meta verileri.

Alanlar
blockReason enum (BlockReason)

İsteğe bağlıdır. Bu değer ayarlanırsa istem engellenir ve hiçbir aday döndürülmez. İstemi farklı şekilde ifade edin.

safetyRatings[] object (SafetyRating)

İstemin güvenliğiyle ilgili derecelendirmeler. Kategori başına en fazla bir puan vardır.

JSON gösterimi
{
  "blockReason": enum (BlockReason),
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ]
}

BlockReason

İstemin engellenme nedenini belirtir.

Sıralamalar
BLOCK_REASON_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
SAFETY İstem, güvenlik nedeniyle engellendi. Hangi güvenlik kategorisinin engellediğini anlamak için safetyRatings öğesini inceleyin.
OTHER İstem, bilinmeyen nedenlerle engellendi.
BLOCKLIST İstem, terminoloji engellenenler listesindeki terimler nedeniyle engellendi.
PROHIBITED_CONTENT İstem, yasaklanmış içerik nedeniyle engellendi.
IMAGE_SAFETY Güvenli olmayan görüntü üretme içeriği nedeniyle engellenen adaylar.

UsageMetadata

Oluşturma isteğinin jeton kullanımıyla ilgili meta veriler.

Alanlar
promptTokenCount integer

İstemdeki jeton sayısı. cachedContent ayarlandığında bu, toplam etkili istem boyutunu gösterir. Yani önbelleğe alınan içerikteki jeton sayısını içerir.

cachedContentTokenCount integer

İstemin önbelleğe alınan kısmındaki (önbelleğe alınan içerik) jeton sayısı

candidatesTokenCount integer

Oluşturulan tüm yanıt adaylarındaki toplam jeton sayısı.

toolUsePromptTokenCount integer

Yalnızca çıkış. Araç kullanımı istemlerinde bulunan jeton sayısı.

thoughtsTokenCount integer

Yalnızca çıkış. Düşünen modeller için düşünce jetonlarının sayısı.

totalTokenCount integer

Oluşturma isteği için toplam parça sayısı (istem + araç kullanımı istemi + düşünceler + yanıt adayları).

promptTokensDetails[] object (ModalityTokenCount)

Yalnızca çıkış. İstek girişinde işlenen modalitelerin listesi.

cacheTokensDetails[] object (ModalityTokenCount)

Yalnızca çıkış. İstek girişindeki önbelleğe alınmış içeriğin modalite listesi.

candidatesTokensDetails[] object (ModalityTokenCount)

Yalnızca çıkış. Yanıtta döndürülen modalitelerin listesi.

toolUsePromptTokensDetails[] object (ModalityTokenCount)

Yalnızca çıkış. Araç kullanımı isteği girişleri için işlenen modalitelerin listesi.

serviceTier enum (ServiceTier)

Yalnızca çıkış. İsteğin hizmet katmanı.

JSON gösterimi
{
  "promptTokenCount": integer,
  "cachedContentTokenCount": integer,
  "candidatesTokenCount": integer,
  "toolUsePromptTokenCount": integer,
  "thoughtsTokenCount": integer,
  "totalTokenCount": integer,
  "promptTokensDetails": [
    {
      object (ModalityTokenCount)
    }
  ],
  "cacheTokensDetails": [
    {
      object (ModalityTokenCount)
    }
  ],
  "candidatesTokensDetails": [
    {
      object (ModalityTokenCount)
    }
  ],
  "toolUsePromptTokensDetails": [
    {
      object (ModalityTokenCount)
    }
  ],
  "serviceTier": enum (ServiceTier)
}

ModelStatus

Temel modelin durumu. Bu, temel modelin aşamasını ve varsa kullanımdan kaldırılma zamanını belirtmek için kullanılır.

Alanlar
modelStage enum (ModelStage)

Temel modelin aşaması.

retirementTime string (Timestamp format)

Modelin kullanımdan kaldırılacağı zaman.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

message string

Model durumunu açıklayan bir mesaj.

JSON gösterimi
{
  "modelStage": enum (ModelStage),
  "retirementTime": string,
  "message": string
}

ModelStage

Temel modelin aşamasını tanımlar.

Sıralamalar
MODEL_STAGE_UNSPECIFIED Model aşaması belirtilmedi.
UNSTABLE_EXPERIMENTAL

Temel model, birçok ayarlamaya tabidir.

EXPERIMENTAL Bu aşamadaki modeller yalnızca deneysel amaçlıdır.
PREVIEW Bu aşamadaki modeller, deneysel modellere göre daha olgundur.
STABLE Bu aşamadaki modeller kararlı ve üretime hazır kabul edilir.
LEGACY Model bu aşamadaysa yakın gelecekte desteğinin sonlandırılacağı anlamına gelir. Bu modeli yalnızca mevcut müşteriler kullanabilir.
DEPRECATED

Bu aşamadaki modellerin desteği sonlandırılmıştır. Bu modeller kullanılamaz.

RETIRED Bu aşamadaki modeller kullanımdan kaldırılır. Bu modeller kullanılamaz.

Aday

Modelden oluşturulan yanıt adayı.

Alanlar
content object (Content)

Yalnızca çıkış. Modelden döndürülen, oluşturulan içerik.

finishReason enum (FinishReason)

İsteğe bağlıdır. Yalnızca çıkış. Modelin jeton oluşturmayı durdurma nedeni.

Boşsa model, jeton oluşturmayı durdurmamıştır.

safetyRatings[] object (SafetyRating)

Yanıt adayının güvenliğiyle ilgili puanların listesi.

Kategori başına en fazla bir puan vardır.

citationMetadata object (CitationMetadata)

Yalnızca çıkış. Model tarafından oluşturulan aday için alıntı bilgileri.

Bu alan, content kapsamındaki metinlerin okuma bilgileriyle doldurulabilir. Bunlar, temel LLM'nin eğitim verisindeki telif hakkıyla korunan materyalden"alıntılanan" pasajlardır.

tokenCount integer

Yalnızca çıkış. Bu adayın jeton sayısı.

groundingAttributions[] object (GroundingAttribution)

Yalnızca çıkış. Temellendirilmiş bir yanıta katkıda bulunan kaynaklarla ilgili ilişkilendirme bilgileri.

Bu alan, GenerateAnswer çağrıları için doldurulur.

groundingMetadata object (GroundingMetadata)

Yalnızca çıkış. Aday için dayanak meta verileri.

Bu alan, GenerateContent çağrıları için doldurulur.

avgLogprobs number

Yalnızca çıkış. Adayın ortalama log olasılık puanı.

logprobsResult object (LogprobsResult)

Yalnızca çıkış. Yanıt jetonları ve en iyi jetonlar için log-olasılık puanları

urlContextMetadata object (UrlContextMetadata)

Yalnızca çıkış. URL bağlamı alma aracıyla ilgili meta veriler.

continuationToken string (bytes format)

finishReason, CONTINUATION olduğunda döndürülen isteğe bağlı opak devam jetonu. İstemciler, oluşturma işlemine devam etmek için bu jetonu sonraki bir GenerateContentRequest içinde iletebilir.

Base64 ile kodlanmış bir dize.

index integer

Yalnızca çıkış. Yanıt adayları listesindeki adayın dizini.

finishMessage string

İsteğe bağlıdır. Yalnızca çıkış. Modelin jeton oluşturmayı durdurma nedenini açıklar. Bu alan yalnızca finishReason ayarlandığında doldurulur.

JSON gösterimi
{
  "content": {
    object (Content)
  },
  "finishReason": enum (FinishReason),
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "citationMetadata": {
    object (CitationMetadata)
  },
  "tokenCount": integer,
  "groundingAttributions": [
    {
      object (GroundingAttribution)
    }
  ],
  "groundingMetadata": {
    object (GroundingMetadata)
  },
  "avgLogprobs": number,
  "logprobsResult": {
    object (LogprobsResult)
  },
  "urlContextMetadata": {
    object (UrlContextMetadata)
  },
  "continuationToken": string,
  "index": integer,
  "finishMessage": string
}

FinishReason

Modelin jeton oluşturmayı durdurma nedenini tanımlar.

Sıralamalar
FINISH_REASON_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
STOP Modelin doğal durma noktası veya sağlanan durma sırası.
MAX_TOKENS İstekte belirtilen maksimum jeton sayısına ulaşıldı.
SAFETY Yanıt adayı içerik, güvenlik nedeniyle işaretlendi.
RECITATION Yanıt adayı içerik, ezberden okuma nedeniyle işaretlendi.
LANGUAGE Yanıt adayı içeriği, desteklenmeyen bir dil kullandığı için işaretlendi.
OTHER Bilinmeyen neden.
BLOCKLIST İçerik yasaklanmış terimler içerdiğinden jeton oluşturma işlemi durduruldu.
PROHIBITED_CONTENT Yasaklanmış içerik barındırıyor olabileceği için jeton oluşturma işlemi durduruldu.
SPII İçerik, hassas kişisel veriler (SPII) içerebileceğinden jeton oluşturma işlemi durduruldu.
MALFORMED_FUNCTION_CALL Model tarafından oluşturulan işlev çağrısı geçersiz.
IMAGE_SAFETY Oluşturulan yapay görüntülerde güvenlik ihlalleri olduğu için jeton oluşturma işlemi durduruldu.
IMAGE_PROHIBITED_CONTENT Yapay görüntülerde başka yasaklanmış içerikler olduğu için görüntü üretme işlemi durduruldu.
IMAGE_OTHER Görüntü üretme işlemi, diğer çeşitli sorunlar nedeniyle durduruldu.
NO_IMAGE Modelin bir resim üretmesi bekleniyordu ancak üretilmedi.
IMAGE_RECITATION Görüntü üretme işlemi, ezberden okuma nedeniyle durduruldu.
UNEXPECTED_TOOL_CALL Model bir araç çağrısı oluşturdu ancak istekte hiçbir araç etkinleştirilmedi.
TOO_MANY_TOOL_CALLS Model, çok fazla aracı art arda çağırdığı için sistem yürütme işleminden çıktı.
MISSING_THOUGHT_SIGNATURE İstekte en az bir düşünce imzası eksik.
MALFORMED_RESPONSE Yanıtın yapısı bozuk olduğu için işlem tamamlandı.
ESCALATION İstek, bir üst birime iletme kuralı tarafından filtrelendi.
PUP_LIMITED_DISABLED Yasaklanan Kullanım Politikası (PUP) ihlalleri nedeniyle kullanıcı hesabı sınırlandırıldığı veya devre dışı bırakıldığı için jeton oluşturma işleminin durdurulduğunu gösterir.
CONTINUATION Yanıt, istek başına jeton sınırına ulaştığı için jeton oluşturma işlemi durduruldu ancak oluşturma işlemi henüz tamamlanmadı. Model yanıtı, döndürülen continuationToken kullanılarak sonraki bir istek aracılığıyla devam ettirilebilir. maxOutputTokens değerinin, devam atlamaları genelinde kümülatif olduğunu ve monoton olarak artırılması veya atlanması gerektiğini unutmayın.

GroundingAttribution

Bir yanıta katkıda bulunan kaynağın atıfı.

Alanlar
sourceId object (AttributionSourceId)

Yalnızca çıkış. Bu ilişkilendirmeye katkıda bulunan kaynağın tanımlayıcısı.

content object (Content)

Bu ilişkilendirmeyi oluşturan temel kaynak içerik.

JSON gösterimi
{
  "sourceId": {
    object (AttributionSourceId)
  },
  "content": {
    object (Content)
  }
}

AttributionSourceId

Bu ilişkilendirmeye katkıda bulunan kaynağın tanımlayıcısı.

Alanlar
source Union type
Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
groundingPassage object (GroundingPassageId)

Satır içi pasajın tanımlayıcısı.

semanticRetrieverChunk object (SemanticRetrieverChunk)

Semantic Retriever aracılığıyla getirilen Chunk için tanımlayıcı.

Birbirini hariç tutan alanların sonu.
JSON gösterimi
{

  // source
  "groundingPassage": {
    object (GroundingPassageId)
  },
  "semanticRetrieverChunk": {
    object (SemanticRetrieverChunk)
  }
  // Union type
}

GroundingPassageId

GroundingPassage içindeki bir parçanın tanımlayıcısı.

Alanlar
passageId string

Yalnızca çıkış. GenerateAnswerRequest öğesinin GroundingPassage.id değeriyle eşleşen pasajın kimliği.

partIndex integer

Yalnızca çıkış. GenerateAnswerRequest'un GroundingPassage.content içindeki bölümün dizini.

JSON gösterimi
{
  "passageId": string,
  "partIndex": integer
}

SemanticRetrieverChunk

SemanticRetrieverConfig kullanılarak GenerateAnswerRequest içinde belirtilen Semantic Retriever aracılığıyla alınan Chunk tanımlayıcısı.

Alanlar
source string

Yalnızca çıkış. İsteğin SemanticRetrieverConfig.source değeriyle eşleşen kaynağın adı. Örnek: corpora/123 veya corpora/123/documents/abc

chunk string

Yalnızca çıkış. Atıf metnini içeren Chunk öğesinin adı. Örnek: corpora/123/documents/abc/chunks/xyz

JSON gösterimi
{
  "source": string,
  "chunk": string
}

GroundingMetadata

Temellendirme etkinleştirildiğinde istemciye döndürülen meta veriler.

Alanlar
groundingChunks[] object (GroundingChunk)

Belirtilen dayanak kaynağından alınan destekleyici referansların listesi. Akış sırasında bu, yalnızca önceki yanıtların temellendirme meta verilerine dahil edilmemiş temellendirme parçalarını içerir.

groundingSupports[] object (GroundingSupport)

Temellendirme desteğinin listesi.

webSearchQueries[] string

Takip eden web araması için web araması sorguları.

imageSearchQueries[] string

Temellendirme için kullanılan görsel arama sorguları.

searchEntryPoint object (SearchEntryPoint)

İsteğe bağlıdır. Sonraki web aramaları için Google arama girişi.

retrievalMetadata object (RetrievalMetadata)

Temellendirme akışında veri alma ile ilgili meta veriler.

googleMapsWidgetContextToken string

İsteğe bağlıdır. Bağlama dayalı içerik verisini oluşturmak için PlacesContextElement widget'ıyla birlikte kullanılabilen Google Haritalar widget'ı bağlam parçasının kaynak adı. Yalnızca Google Haritalar ile temellendirme etkinleştirildiğinde doldurulur.

JSON gösterimi
{
  "groundingChunks": [
    {
      object (GroundingChunk)
    }
  ],
  "groundingSupports": [
    {
      object (GroundingSupport)
    }
  ],
  "webSearchQueries": [
    string
  ],
  "imageSearchQueries": [
    string
  ],
  "searchEntryPoint": {
    object (SearchEntryPoint)
  },
  "retrievalMetadata": {
    object (RetrievalMetadata)
  },
  "googleMapsWidgetContextToken": string
}

SearchEntryPoint

Google Arama giriş noktası.

Alanlar
renderedContent string

İsteğe bağlıdır. Bir web sayfasına veya uygulama WebView'una yerleştirilebilen web içeriği snippet'i.

sdkBlob string (bytes format)

İsteğe bağlıdır. <arama terimi, arama URL'si> grubunun dizisini temsil eden Base64 kodlu JSON.

Base64 ile kodlanmış bir dize.

JSON gösterimi
{
  "renderedContent": string,
  "sdkBlob": string
}

GroundingChunk

GroundingChunk, modelin yanıtını destekleyen kanıt segmentini temsil eder. Bu, web'den bir parça, bir dosyadan alınan bağlam veya Google Haritalar'dan alınan bilgiler olabilir.

Alanlar
chunk_type Union type
Parça türü. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
web object (Web)

Web'den temellendirme parçası.

image object (Image)

İsteğe bağlıdır. Görsel aramadan elde edilen temellendirme parçası.

retrievedContext object (RetrievedContext)

İsteğe bağlıdır. Dosya arama aracı tarafından alınan bağlamdan elde edilen dayanak parçası.

maps object (Maps)

İsteğe bağlıdır. Google Haritalar'dan temellendirme parçası.

Birbirini hariç tutan alanların sonu.
JSON gösterimi
{

  // chunk_type
  "web": {
    object (Web)
  },
  "image": {
    object (Image)
  },
  "retrievedContext": {
    object (RetrievedContext)
  },
  "maps": {
    object (Maps)
  }
  // Union type
}

Web

Web'den alınan parça.

Alanlar
uri string

Yalnızca çıkış. Parçanın URI referansı.

title string

Yalnızca çıkış. Parçanın başlığı.

JSON gösterimi
{
  "uri": string,
  "title": string
}

Resim

Görsel arama parçası.

Alanlar
sourceUri string

İlişkilendirme için web sayfası URI'si.

imageUri string

Resim öğesi URL'si.

title string

Görselin alındığı web sayfasının başlığı.

domain string

Görselin alındığı web sayfasının kök alanı (ör. "example.com").

JSON gösterimi
{
  "sourceUri": string,
  "imageUri": string,
  "title": string,
  "domain": string
}

RetrievedContext

Dosya arama aracı tarafından alınan bağlamdan parça.

Alanlar
customMetadata[] object (CustomMetadata)

İsteğe bağlıdır. Alınan bağlamla ilgili kullanıcı tarafından sağlanan meta veriler.

uri string

İsteğe bağlıdır. Anlamsal erişim dokümanının URI referansı.

title string

İsteğe bağlıdır. Dokümanın başlığı.

text string

İsteğe bağlıdır. Parçanın metni.

fileSearchStore string

İsteğe bağlıdır. Dokümanı içeren FileSearchStore adı. Örnek: fileSearchStores/123

pageNumber integer

İsteğe bağlıdır. Varsa alınan bağlamın sayfa numarası.

mediaId string

İsteğe bağlıdır. Çok formatlı dosya arama sonuçları için medya blob'u kaynak adı. Biçim: fileSearchStores/{file_search_store_id}/media/{blobId}

JSON gösterimi
{
  "customMetadata": [
    {
      object (CustomMetadata)
    }
  ],
  "uri": string,
  "title": string,
  "text": string,
  "fileSearchStore": string,
  "pageNumber": integer,
  "mediaId": string
}

CustomMetadata

Kullanıcı, GroundingFact hakkında meta veriler sağladı.

Alanlar
key string

Meta verilerin anahtarı.

value Union type
Meta verilerin değeri. Dize, dize listesi veya sayı olabilir. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
stringValue string

İsteğe bağlıdır. Meta verilerin dize değeri.

stringListValue object (StringList)

İsteğe bağlıdır. Meta veriler için dize değerlerinin listesi.

numericValue number

İsteğe bağlıdır. Meta verilerin sayısal değeri. Bu değer için beklenen aralık, kullanılan key değerine bağlıdır.

Birbirini hariç tutan alanların sonu.
JSON gösterimi
{
  "key": string,

  // value
  "stringValue": string,
  "stringListValue": {
    object (StringList)
  },
  "numericValue": number
  // Union type
}

StringList

Dize değerlerinin listesi.

Alanlar
values[] string

Listenin dize değerleri.

JSON gösterimi
{
  "values": [
    string
  ]
}

Haritalar

Google Haritalar'dan bir temellendirme parçası. Haritalar parçası tek bir yere karşılık gelir.

Alanlar
uri string

Yerin URI referansı.

title string

Yerin adı.

text string

Yer yanıtının metin açıklaması.

placeId string

Yerin places/{placeId} biçimindeki kimliği. Kullanıcılar bu kimliği kullanarak ilgili yeri arayabilir.

placeAnswerSources object (PlaceAnswerSources)

Google Haritalar'da belirli bir yerin özellikleri hakkında yanıtlar sağlayan kaynaklar.

JSON gösterimi
{
  "uri": string,
  "title": string,
  "text": string,
  "placeId": string,
  "placeAnswerSources": {
    object (PlaceAnswerSources)
  }
}

PlaceAnswerSources

Google Haritalar'da belirli bir yerin özellikleri hakkında yanıtlar sağlayan kaynaklar koleksiyonu. Her PlaceAnswerSources mesajı, Google Haritalar'daki belirli bir yere karşılık gelir. Google Haritalar aracı, yerin özellikleriyle ilgili soruları (ör. "Bar Foo'da kablosuz bağlantı var mı?" veya "Foo Bar tekerlekli sandalye kullanıcılarına uygun mu?") yanıtlamak için bu kaynakları kullandı. Şu anda kaynak olarak yalnızca yorum snippet'lerini destekliyoruz.

Alanlar
reviewSnippets[] object (ReviewSnippet)

Google Haritalar'da belirli bir yerin özellikleri hakkında yanıtlar oluşturmak için kullanılan yorum snippet'leri.

JSON gösterimi
{
  "reviewSnippets": [
    {
      object (ReviewSnippet)
    }
  ]
}

ReviewSnippet

Google Haritalar'da belirli bir yerin özellikleriyle ilgili bir soruyu yanıtlayan kullanıcı yorumu snippet'ini kapsar.

Alanlar
reviewId string

Yorum snippet'inin kimliği.

googleMapsUri string

Google Haritalar'daki kullanıcı yorumuna karşılık gelen bağlantı.

title string

Yorumun başlığı.

JSON gösterimi
{
  "reviewId": string,
  "googleMapsUri": string,
  "title": string
}

GroundingSupport

Temellendirme desteği

Alanlar
groundingChunkIndices[] integer

İsteğe bağlıdır. İddiayla ilişkili alıntıları belirten dizinlerin listesi (response.candidate.grounding_metadata içindeki "grounding_chunk" öğesine). Örneğin, [1,3,4], grounding_chunk[1], grounding_chunk[3], grounding_chunk[4]'ün iddiayla ilişkilendirilen içerik olduğu anlamına gelir. Yanıt akış halindeyse groundingChunkIndices, tüm yanıtlardaki dizinleri ifade eder. Tüm yanıtlardaki dayanak parçalarını (aynı sırayı koruyarak) biriktirmek istemcinin sorumluluğundadır.

confidenceScores[] number

İsteğe bağlıdır. Destek referanslarının güven puanı. 0 ile 1 arasında değişir. 1, en yüksek güven düzeyini ifade eder. Bu listenin boyutu, groundingChunkIndices ile aynı olmalıdır.

renderedParts[] integer

Yalnızca çıkış. Aday içeriğin parts alanındaki dizinler. Bu dizinler, hangi oluşturulan parçaların bu destek kaynağıyla ilişkili olduğunu belirtir.

segment object (Segment)

Bu desteğin ait olduğu içerik segmenti.

JSON gösterimi
{
  "groundingChunkIndices": [
    integer
  ],
  "confidenceScores": [
    number
  ],
  "renderedParts": [
    integer
  ],
  "segment": {
    object (Segment)
  }
}

Segment

İçeriğin segmenti.

Alanlar
partIndex integer

Üst Content nesnesindeki bir Part nesnesinin dizini.

startIndex integer

Belirli bir bölümdeki başlangıç dizini (bayt cinsinden ölçülür). Parçanın başlangıcından itibaren sıfırdan başlayan ofset (dahil).

endIndex integer

Belirli bir bölümdeki bitiş dizini (bayt cinsinden ölçülür). Parçanın başlangıcından itibaren, sıfırdan başlayan ve hariç tutulan ofset.

text string

Yanıttaki segmente karşılık gelen metin.

JSON gösterimi
{
  "partIndex": integer,
  "startIndex": integer,
  "endIndex": integer,
  "text": string
}

RetrievalMetadata

Temellendirme akışında veri alma ile ilgili meta veriler.

Alanlar
googleSearchDynamicRetrievalScore number

İsteğe bağlıdır. Google Arama'dan alınan bilgilerin istemi yanıtlamaya yardımcı olma olasılığını gösteren puan. Puan [0, 1] aralığındadır. 0 en düşük olasılığı, 1 ise en yüksek olasılığı gösterir. Bu puan yalnızca Google Arama temellendirmesi ve dinamik alma etkinleştirildiğinde doldurulur. Google Arama'nın tetiklenip tetiklenmeyeceğini belirlemek için eşikle karşılaştırılır.

JSON gösterimi
{
  "googleSearchDynamicRetrievalScore": number
}

LogprobsResult

Logprobs Result

Alanlar
topCandidates[] object (TopCandidates)

Uzunluk = toplam kod çözme adımı sayısı.

chosenCandidates[] object (Candidate)

Uzunluk = toplam kod çözme adımı sayısı. Seçilen adaylar topCandidates listesinde olabilir veya olmayabilir.

logProbabilitySum number

Tüm jetonlar için log olasılıklarının toplamı.

JSON gösterimi
{
  "topCandidates": [
    {
      object (TopCandidates)
    }
  ],
  "chosenCandidates": [
    {
      object (Candidate)
    }
  ],
  "logProbabilitySum": number
}

TopCandidates

Her kod çözme adımında en yüksek log olasılıklarına sahip adaylar.

Alanlar
candidates[] object (Candidate)

Günlük olasılığına göre azalan düzende sıralanır.

JSON gösterimi
{
  "candidates": [
    {
      object (Candidate)
    }
  ]
}

Aday

Logprobs jetonu ve puanı için aday.

Alanlar
token string

Adayın jeton dize değeri.

tokenId integer

Adayın jeton kimliği değeri.

logProbability number

Adayın log olasılığı.

JSON gösterimi
{
  "token": string,
  "tokenId": integer,
  "logProbability": number
}

UrlContextMetadata

URL bağlamı alma aracıyla ilgili meta veriler.

Alanlar
urlMetadata[] object (UrlMetadata)

URL bağlamı listesi.

JSON gösterimi
{
  "urlMetadata": [
    {
      object (UrlMetadata)
    }
  ]
}

UrlMetadata

Tek bir URL alma bağlamı.

Alanlar
retrievedUrl string

Araç tarafından alınan URL.

urlRetrievalStatus enum (UrlRetrievalStatus)

URL alma işleminin durumu.

JSON gösterimi
{
  "retrievedUrl": string,
  "urlRetrievalStatus": enum (UrlRetrievalStatus)
}

UrlRetrievalStatus

URL alma işleminin durumu.

Sıralamalar
URL_RETRIEVAL_STATUS_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
URL_RETRIEVAL_STATUS_SUCCESS URL başarıyla alındı.
URL_RETRIEVAL_STATUS_ERROR Hata nedeniyle URL alınamadı.
URL_RETRIEVAL_STATUS_PAYWALL İçerik ödeme duvarının arkasında olduğu için URL alınamadı.
URL_RETRIEVAL_STATUS_UNSAFE İçerik güvenli olmadığı için URL alınamadı.

CitationMetadata

Bir içerik parçası için kaynak ilişkilendirmeleri koleksiyonu.

Alanlar
citationSources[] object (CitationSource)

Belirli bir yanıt için kaynaklara yapılan atıflar.

JSON gösterimi
{
  "citationSources": [
    {
      object (CitationSource)
    }
  ]
}

CitationSource

Belirli bir yanıtın bir bölümü için kaynağa yapılan atıf.

Alanlar
startIndex integer

İsteğe bağlıdır. Yanıtın bu kaynağa atfedilen segmentinin başlangıcı.

Dizin, segmentin başlangıcını bayt cinsinden gösterir.

endIndex integer

İsteğe bağlıdır. İlişkilendirilen segmentin sonu (hariç).

uri string

İsteğe bağlıdır. Metnin bir bölümü için kaynak olarak atfedilen URI.

license string

İsteğe bağlıdır. Segment için kaynak olarak atfedilen GitHub projesinin lisansı.

Kod alıntıları için lisans bilgileri gereklidir.

JSON gösterimi
{
  "startIndex": integer,
  "endIndex": integer,
  "uri": string,
  "license": string
}

HarmCategory

Puanın kategorisi.

Bu kategoriler, geliştiricilerin ayarlamak isteyebileceği çeşitli zarar türlerini kapsar.

Sıralamalar
HARM_CATEGORY_UNSPECIFIED Kategori belirtilmemiş.
HARM_CATEGORY_DEROGATORY

PaLM: Kimliği ve/veya korunan özelliği hedefleyen olumsuz ya da zararlı yorumlar. DESTEĞİ SONLANDIRILDI: Yalnızca PaLM kategorisi, Gemini modelleri tarafından desteklenmez.

HARM_CATEGORY_TOXICITY

PaLM: Kaba, saygısız veya küfürlü içerik. DESTEĞİ SONLANDIRILDI: Yalnızca PaLM kategorisi, Gemini modelleri tarafından desteklenmez.

HARM_CATEGORY_VIOLENCE

PaLM: Bir bireye veya gruba yönelik şiddeti tasvir eden senaryoları ya da genel vahşet tasvirlerini açıklar. DESTEĞİ SONLANDIRILDI: Yalnızca PaLM kategorisi, Gemini modelleri tarafından desteklenmez.

HARM_CATEGORY_SEXUAL

PaLM: Cinsel eylemlere veya diğer müstehcen içeriklere atıfta bulunur. DESTEĞİ SONLANDIRILDI: Yalnızca PaLM kategorisi, Gemini modelleri tarafından desteklenmez.

HARM_CATEGORY_MEDICAL

PaLM: Doğrulanmamış tıbbi önerileri teşvik ediyor. DESTEĞİ SONLANDIRILDI: Yalnızca PaLM kategorisi, Gemini modelleri tarafından desteklenmez.

HARM_CATEGORY_DANGEROUS

PaLM: Zararlı eylemleri teşvik eden, kolaylaştıran veya destekleyen tehlikeli içerikler. DESTEĞİ SONLANDIRILDI: Yalnızca PaLM kategorisi, Gemini modelleri tarafından desteklenmez.

HARM_CATEGORY_HARASSMENT Gemini - Taciz edici içerik.
HARM_CATEGORY_HATE_SPEECH Gemini: Nefret söylemi ve içeriği.
HARM_CATEGORY_SEXUALLY_EXPLICIT Gemini - Müstehcen içerik.
HARM_CATEGORY_DANGEROUS_CONTENT Gemini - Tehlikeli içerik.
HARM_CATEGORY_CIVIC_INTEGRITY

Gemini: Sivil dürüstlüğe zarar vermek için kullanılabilecek içerikler. DESTEĞİ SONLANDIRILDI: Bunun yerine enableEnhancedCivicAnswers'ı kullanın.

HARM_CATEGORY_JAILBREAK Gemini: Modelin güvenlik talimatlarını atlatmaya veya ihlal etmeye çalışan istemler (jailbreak girişimleri).

ModalityTokenCount

Tek bir modalite için jeton sayma bilgilerini temsil eder.

Alanlar
modality enum (Modality)

Bu jeton sayısıyla ilişkili modalite.

tokenCount integer

Jeton sayısı.

JSON gösterimi
{
  "modality": enum (Modality),
  "tokenCount": integer
}

Yöntem

İçerik parçası modalitesi

Sıralamalar
MODALITY_UNSPECIFIED Belirtilmemiş modalite.
TEXT Düz metin.
IMAGE Resim.
VIDEO Video.
AUDIO Ses.
DOCUMENT Doküman (ör. PDF)

SafetyRating

Bir içeriğin güvenlik derecelendirmesi.

Güvenlik derecelendirmesi, bir içerik parçasının zarar kategorisini ve bu kategorideki zarar olasılığı düzeyini içerir. İçerik, güvenlik açısından çeşitli zarar kategorilerine göre sınıflandırılır ve zarar sınıflandırmasının olasılığı buraya eklenir.

Alanlar
category enum (HarmCategory)

Zorunlu. Bu puanın kategorisi.

probability enum (HarmProbability)

Zorunlu. Bu içeriğin zarar verme olasılığı.

blocked boolean

Bu içerik bu derecelendirme nedeniyle mi engellendi?

JSON gösterimi
{
  "category": enum (HarmCategory),
  "probability": enum (HarmProbability),
  "blocked": boolean
}

HarmProbability

Bir içeriğin zararlı olma olasılığı.

Sınıflandırma sistemi, içeriğin güvenli olmama olasılığını gösterir. Bu, bir içeriğin ne kadar zararlı olduğunu göstermez.

Sıralamalar
HARM_PROBABILITY_UNSPECIFIED Olasılık belirtilmemiş.
NEGLIGIBLE İçeriğin güvenli olmama olasılığı ihmal edilebilir düzeydedir.
LOW İçeriğin güvenli olmama olasılığı düşüktür.
MEDIUM İçeriğin güvenli olmama olasılığı orta düzeydedir.
HIGH İçeriğin güvenli olmama olasılığı yüksektir.

SafetySetting

Güvenlik ayarı, güvenlik engelleme davranışını etkiler.

Bir kategori için güvenlik ayarı iletildiğinde, içeriğin engellenme olasılığı değişir.

Alanlar
category enum (HarmCategory)

Zorunlu. Bu ayarın kategorisi.

threshold enum (HarmBlockThreshold)

Zorunlu. Zararın engellendiği olasılık eşiğini kontrol eder.

JSON gösterimi
{
  "category": enum (HarmCategory),
  "threshold": enum (HarmBlockThreshold)
}

HarmBlockThreshold

Belirli bir zarar olasılığında ve bu olasılığın üzerinde engelleme yapın.

Sıralamalar
HARM_BLOCK_THRESHOLD_UNSPECIFIED Eşik belirtilmedi.
BLOCK_LOW_AND_ABOVE İHMAL EDİLEBİLİR düzeyde olan içeriklere izin verilir.
BLOCK_MEDIUM_AND_ABOVE İHMAL EDİLEBİLİR ve DÜŞÜK düzeyde olan içeriklere izin verilir.
BLOCK_ONLY_HIGH ÖNEMSİZ, DÜŞÜK ve ORTA düzeyde risk içeren içeriklere izin verilir.
BLOCK_NONE Tüm içeriklere izin verilir.
OFF Güvenlik filtresini kapatın.

ServiceTier

İsteğin hizmet katmanı.

Sıralamalar
unspecified Varsayılan hizmet kademesi (standart).
standard Standart hizmet katmanı.
flex Flex hizmet katmanı.
priority Öncelikli hizmet katmanı.

İçerik

Bir mesajın çok parçalı içeriğini barındıran temel yapılandırılmış veri türü.

Content, Content üreticisini belirten bir role alanı ve mesaj sırasının içeriğini barındıran çok parçalı veriler içeren bir parts alanı içerir.

Alanlar
parts[] object (Part)

Tek bir mesajı oluşturan sıralı Parts. Parçaların farklı MIME türleri olabilir.

role string

İsteğe bağlıdır. İçeriğin yapımcısı. "user" veya "model" olmalıdır.

Çok turlu görüşmeler için ayarlanması faydalıdır. Diğer durumlarda boş bırakılabilir veya ayarlanmayabilir.

JSON gösterimi
{
  "parts": [
    {
      object (Part)
    }
  ],
  "role": string
}

Bölüm

Çok parçalı bir Content mesajının parçası olan medyayı içeren veri türü.

Part, ilişkili bir veri türüne sahip verilerden oluşur. Part, Part.data içinde kabul edilen türlerden yalnızca birini içerebilir.

inlineData alanı ham baytlarla doldurulmuşsa Part, medyanın türünü ve alt türünü tanımlayan sabit bir IANA MIME türüne sahip olmalıdır.

Alanlar
thought boolean

İsteğe bağlıdır. Parçanın model tarafından düşünülüp düşünülmediğini gösterir.

thoughtSignature string (bytes format)

İsteğe bağlıdır. Düşüncenin opak imzası. Bu imza, sonraki isteklerde yeniden kullanılabilir.

Base64 ile kodlanmış bir dize.

partMetadata object (Struct format)

Parça ile ilişkili özel meta veriler. İçerik temsili olarak genai.Part kullanan temsilcilerin ek bilgileri takip etmesi gerekebilir. Örneğin, Part'ın kaynaklandığı bir dosyanın/kaynağın adı veya birden fazla Part akışını çoğaltmanın bir yolu olabilir.

mediaResolution object (MediaResolution)

İsteğe bağlıdır. Giriş medyasının çözünürlüğü.

mediaProcessing enum (MediaProcessing)

İsteğe bağlıdır. Modelin, bu bölümdeki medyayı anlamak için nasıl işlediği. Yalnızca video bölümleri için anlamlıdır (video MIME ile inlineData veya fileData). Video olmayan bölümler bu alanı yoksayar.

audioTranscription object (AudioTranscription)

İsteğe bağlıdır. Ses (giriş veya çıkış) transkripti. Bu, yalnızca bu bölüm ses verileri içerdiğinde ayarlanır.

speechMetadata object (SpeechMetadata)

İsteğe bağlıdır. Metin parçalarının nasıl seslendirileceğini veya sentezleneceğini özelleştirmek için metin parçalarına uygulanan meta veriler (ör. konuşmacı kimliğini veya konuşma stilini belirtme).

data Union type
Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
text string

Satır içi metin.

inlineData object (Blob)

Satır içi medya baytları.

functionCall object (FunctionCall)

Modelden döndürülen ve bağımsız değişkenler ile değerlerini içeren FunctionDeclaration.name dizesini temsil eden tahmini FunctionCall.

functionResponse object (FunctionResponse)

FunctionDeclaration.name değerini temsil eden bir dize ve işlevden gelen tüm çıkışları içeren yapılandırılmış bir JSON nesnesi içeren FunctionCall işlevinin sonuç çıkışı, model için bağlam olarak kullanılır.

fileData object (FileData)

URI tabanlı veriler.

executableCode object (ExecutableCode)

Model tarafından oluşturulan ve yürütülmesi amaçlanan kod.

codeExecutionResult object (CodeExecutionResult)

ExecutableCode yürütme sonucu.

toolCall object (ToolCall)

Sunucu tarafı araç çağrısı. Bu alan, model sunucuda yürütülmesi gereken bir araç çağrısı tahmin ettiğinde doldurulur. İstemcinin bu mesajı API'ye geri göndermesi beklenir.

toolResponse object (ToolResponse)

Sunucu tarafı ToolCall yürütme işleminin çıkışı. Bu alan, istemci tarafından ilgili ToolCall yürütme sonuçlarıyla doldurulur.

Birbirini hariç tutan alanların sonu.
metadata Union type
Verilerin ek ön işleme adımlarını kontrol eder. Parça başına statik medya ön işlemeyi yapılandırmak için inline_data veya file_data mevcut olduğunda bunu ayarlayın. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
videoMetadata object (VideoMetadata)

İsteğe bağlıdır. Video meta verileri. Meta veriler yalnızca video verileri inlineData veya fileData içinde sunulduğunda belirtilmelidir.

Birbirini hariç tutan alanların sonu.
JSON gösterimi
{
  "thought": boolean,
  "thoughtSignature": string,
  "partMetadata": {
    object
  },
  "mediaResolution": {
    object (MediaResolution)
  },
  "mediaProcessing": enum (MediaProcessing),
  "audioTranscription": {
    object (AudioTranscription)
  },
  "speechMetadata": {
    object (SpeechMetadata)
  },

  // data
  "text": string,
  "inlineData": {
    object (Blob)
  },
  "functionCall": {
    object (FunctionCall)
  },
  "functionResponse": {
    object (FunctionResponse)
  },
  "fileData": {
    object (FileData)
  },
  "executableCode": {
    object (ExecutableCode)
  },
  "codeExecutionResult": {
    object (CodeExecutionResult)
  },
  "toolCall": {
    object (ToolCall)
  },
  "toolResponse": {
    object (ToolResponse)
  }
  // Union type

  // metadata
  "videoMetadata": {
    object (VideoMetadata)
  }
  // Union type
}

Blob

Ham medya baytları.

Metin, ham bayt olarak gönderilmemelidir. "text" alanını kullanın.

Alanlar
mimeType string

Kaynak verilerin IANA standardı MIME türü. Desteklenen türlere örnekler: - Resimler: image/png, image/jpeg, image/jpg, image/webp, image/heic, image/heif, image/gif, image/avif - Ses: audio/*, video/audio/s16le, video/audio/wav - Video: video/* - Metin: text/plain, text/html, text/css, text/javascript, text/x-typescript, text/csv, text/markdown, text/x-python, text/xml, text/rtf, video/text/timestamp - Uygulamalar: application/x-javascript, application/x-typescript, application/x-python-code, application/json, application/x-ipynb+json, application/rtf, application/pdf Daha fazla bilgi için Desteklenen dosya biçimleri başlıklı makaleyi inceleyin. //

data string (bytes format)

Medya biçimleri için ham baytlar.

Base64 ile kodlanmış bir dize.

displayName string

İsteğe bağlıdır. Bu blob'u modele referans vermek için kullanılan adı belirtir (ör. "my_blob.png"). verbalizationMode, REFERENCE_ONLY olarak ayarlandığında blob referans tanımlayıcısı olarak kullanılır.

JSON gösterimi
{
  "mimeType": string,
  "data": string,
  "displayName": string
}

FunctionCall

Modelden döndürülen ve bağımsız değişkenler ile değerlerini içeren FunctionDeclaration.name dizesini temsil eden tahmini FunctionCall.

Alanlar
id string

İsteğe bağlıdır. İşlev çağrısının benzersiz tanımlayıcısı. Doldurulursa istemci functionCall işlemini yürütür ve eşleşen id ile yanıtı döndürür.

name string

Zorunlu. Çağrılacak işlevin adı. A-Z, a-z, 0-9 karakterlerini, alt çizgileri ve kısa çizgileri içerebilir. Maksimum uzunluk 128 karakterdir.

args object (Struct format)

İsteğe bağlıdır. JSON nesnesi biçimindeki işlev parametreleri ve değerleri.

JSON gösterimi
{
  "id": string,
  "name": string,
  "args": {
    object
  }
}

FunctionResponse

FunctionDeclaration.name öğesini temsil eden bir dize ve işlevden gelen tüm çıkışları içeren yapılandırılmış bir JSON nesnesi içeren FunctionCall öğesinden elde edilen sonuç çıkışı, model için bağlam olarak kullanılır. Bu, model tahminine dayalı olarak yapılan FunctionCall işleminin sonucunu içermelidir.

Alanlar
id string

İsteğe bağlıdır. Bu yanıtın ait olduğu işlev çağrısının tanımlayıcısı. İlgili işlev çağrısıyla id eşleşmesi için istemci tarafından doldurulur.

name string

Zorunlu. Çağrılacak işlevin adı. a-z, A-Z, 0-9 karakterlerini veya alt çizgi ve kısa çizgi içermeli ve en fazla 128 karakter uzunluğunda olmalıdır.

response object (Struct format)

Zorunlu. JSON nesnesi biçimindeki işlev yanıtı. Arayanlar, işlev çıkışını döndürmek için işlevin söz dizimine uyan herhangi bir anahtarı (ör. "output", "result" vb.) kullanabilir. Özellikle işlev çağrısı yürütülemediyse yanıtta, hata ayrıntılarını modele döndürmek için bir "error" anahtarı bulunabilir.

Multimedya, değeri multimedyayı barındıran bir FunctionResponsePart nesnesinin inlineData.display_name değeri olan tek bir "$ref" anahtarı içeren bir alt nesne kullanılarak eklenebilir. https://ai.google.dev/gemini-api/docs/function-calling#multimodal adresini ziyaret edin.

parts[] object (FunctionResponsePart)

İsteğe bağlıdır. İşlev yanıtını oluşturan sıralı Parts. Parçaların farklı IANA MIME türleri olabilir.

willContinue boolean

İsteğe bağlıdır. İşlev çağrısının devam ettiğini ve daha fazla yanıt döndürüleceğini belirterek işlev çağrısını bir oluşturucuya dönüştürür. Yalnızca NON_BLOCKING işlev çağrıları için geçerlidir, aksi takdirde yoksayılır. Yanlış değerine ayarlanırsa gelecekteki yanıtlar dikkate alınmaz. İşlev çağrısının tamamlandığını belirtmek için willContinue=False ile boş response döndürmesine izin verilir. Bu durumda model oluşturma işlemi yine de tetiklenebilir. Oluşturma işleminin tetiklenmesini önlemek ve işlev çağrısını tamamlamak için scheduling değerini SILENT olarak ayarlayın.

scheduling enum (Scheduling)

İsteğe bağlıdır. Yanıtın görüşmede nasıl planlanması gerektiğini belirtir. Yalnızca NON_BLOCKING işlev çağrıları için geçerlidir. Diğer durumlarda yoksayılır. Varsayılan olarak WHEN_IDLE değerine ayarlanır.

JSON gösterimi
{
  "id": string,
  "name": string,
  "response": {
    object
  },
  "parts": [
    {
      object (FunctionResponsePart)
    }
  ],
  "willContinue": boolean,
  "scheduling": enum (Scheduling)
}

FunctionResponsePart

FunctionResponse mesajının parçası olan medyayı içeren bir veri türü.

FunctionResponsePart, ilişkili bir veri türüne sahip verilerden oluşur. FunctionResponsePart, FunctionResponsePart.data içinde kabul edilen türlerden yalnızca birini içerebilir.

inlineData alanı ham baytlarla doldurulmuşsa FunctionResponsePart, medyanın türünü ve alt türünü tanımlayan sabit bir IANA MIME türüne sahip olmalıdır.

Alanlar
data Union type
İşlev yanıtı bölümünün verileri. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
inlineData object (FunctionResponseBlob)

Satır içi medya baytları.

Birbirini hariç tutan alanların sonu.
JSON gösterimi
{

  // data
  "inlineData": {
    object (FunctionResponseBlob)
  }
  // Union type
}

FunctionResponseBlob

İşlev yanıtı için ham medya baytları.

Metin, ham bayt olarak gönderilmemelidir. "FunctionResponse.response" alanını kullanın.

Alanlar
mimeType string

Kaynak verilerin IANA standardı MIME türü. Örnekler: - image/png - image/jpeg Desteklenmeyen bir MIME türü sağlanırsa hata döndürülür. Desteklenen türlerin tam listesi için Desteklenen dosya biçimleri başlıklı makaleyi inceleyin.

data string (bytes format)

Medya biçimleri için ham baytlar.

Base64 ile kodlanmış bir dize.

JSON gösterimi
{
  "mimeType": string,
  "data": string
}

Planlama

Yanıtın görüşmede nasıl planlanması gerektiğini belirtir.

Sıralamalar
SCHEDULING_UNSPECIFIED Bu değer kullanılmıyor.
SILENT Sonucu yalnızca görüşme bağlamına ekleyin, kesintiye uğratmayın veya oluşturmayı tetiklemeyin.
WHEN_IDLE Sonucu görüşme bağlamına ekleyin ve devam eden oluşturma işlemini kesintiye uğratmadan çıkış oluşturmak için istem gönderin.
INTERRUPT Sonucu görüşme bağlamına ekler, devam eden oluşturma işlemini kesintiye uğratır ve çıkış oluşturma istemi gönderir.

FileData

URI tabanlı veriler.

Alanlar
mimeType string

İsteğe bağlıdır. Kaynak verilerin IANA standardı MIME türü.

fileUri string

Zorunlu. URI.

displayName string

İsteğe bağlıdır. Modele bu dosyayı belirtmek için kullanılan adı belirtir (ör. "my_file.pdf"). verbalizationMode, REFERENCE_ONLY olarak ayarlandığında dosya referans tanımlayıcısı olarak kullanılır.

JSON gösterimi
{
  "mimeType": string,
  "fileUri": string,
  "displayName": string
}

ExecutableCode

Model tarafından oluşturulan ve yürütülmesi amaçlanan kod ve modele döndürülen sonuç.

Yalnızca CodeExecution aracı kullanılırken oluşturulur. Bu durumda kod otomatik olarak yürütülür ve ilgili CodeExecutionResult da oluşturulur.

Alanlar
id string

İsteğe bağlıdır. ExecutableCode parçasının benzersiz tanımlayıcısı. Sunucu, eşleşen id ile CodeExecutionResult döndürür.

language enum (Language)

Zorunlu. code için programlama dili.

code string

Zorunlu. Yürütülecek kod.

JSON gösterimi
{
  "id": string,
  "language": enum (Language),
  "code": string
}

Dil

Oluşturulan kod için desteklenen programlama dilleri.

Sıralamalar
LANGUAGE_UNSPECIFIED Belirtilmemiş dil. Bu değer kullanılmamalıdır.
PYTHON Python >= 3.10, numpy ve simpy kullanılabilir. Varsayılan dil Python'dır.

CodeExecutionResult

ExecutableCode yürütme sonucu.

Yalnızca CodeExecution aracı kullanıldığında oluşturulur.

Alanlar
id string

İsteğe bağlıdır. Bu sonucun ait olduğu ExecutableCode bölümünün tanımlayıcısı. Yalnızca ilgili ExecutableCode öğesinin kimliği varsa doldurulur.

outcome enum (Outcome)

Zorunlu. Kod yürütmenin sonucu.

output string

İsteğe bağlıdır. Kod yürütme başarılı olduğunda stdout, aksi takdirde stderr veya başka bir açıklama içerir.

JSON gösterimi
{
  "id": string,
  "outcome": enum (Outcome),
  "output": string
}

Sonuç

Kod yürütmenin olası sonuçlarının listesi.

Sıralamalar
OUTCOME_UNSPECIFIED Belirtilmemiş durum. Bu değer kullanılmamalıdır.
OUTCOME_OK Kod yürütme başarıyla tamamlandı. output, varsa stdout'u içerir.
OUTCOME_FAILED Kod yürütülemedi. output, varsa stderr ve stdout'u içerir.
OUTCOME_DEADLINE_EXCEEDED Kod yürütme işlemi çok uzun sürdü ve iptal edildi. Kısmi output olabilir veya olmayabilir.

ToolCall

Modelden döndürülen, tahmini sunucu tarafı ToolCall. Bu mesaj, modelin çağırmak istediği bir araç hakkında bilgi içerir. İstemcinin bu ToolCall işlemini yürütmesi beklenmez. Bunun yerine istemci, bu ToolCall değerini sonraki bir sırada Content mesajı içinde ilgili ToolResponse ile birlikte API'ye geri göndermelidir.

Alanlar
id string

İsteğe bağlıdır. Araç çağrısının benzersiz tanımlayıcısı. Sunucu, eşleşen id ile araç yanıtını döndürür.

toolName string

İsteğe bağlıdır. Çağrılan aracın adı.

toolType enum (ToolType)

Zorunlu. Çağrılan aracın türü.

args object (Struct format)

İsteğe bağlıdır. Araç çağrısı bağımsız değişkenleri. Örnek: {"arg1" : "value1", "arg2" : "value2" , ...}

JSON gösterimi
{
  "id": string,
  "toolName": string,
  "toolType": enum (ToolType),
  "args": {
    object
  }
}

ToolType

İşlev çağrısındaki aracın türü.

Sıralamalar
TOOL_TYPE_UNSPECIFIED Belirtilmemiş araç türü.
GOOGLE_SEARCH_WEB Google Arama aracı, Tool.google_search.search_types.web_search ile eşleşir.
GOOGLE_SEARCH_IMAGE Görsel arama aracı, Tool.google_search.search_types.image_search ile eşlenir.
URL_CONTEXT URL bağlam aracı, Tool.url_context ile eşlenir.
GOOGLE_MAPS Google Haritalar aracı, Tool.google_maps ile eşlenir.

ToolResponse

Sunucu tarafı ToolCall yürütme işleminin çıkışı. Bu mesaj, modelden gelen bir ToolCall tarafından başlatılan araç çağrısının sonuçlarını içerir. İstemci, bu ToolResponse değerini bir sonraki adımda ilgili ToolCall ile birlikte bir Content mesajında API'ye geri göndermelidir.

Alanlar
id string

İsteğe bağlıdır. Bu yanıtın ait olduğu araç çağrısının tanımlayıcısı.

toolType enum (ToolType)

Zorunlu. Çağrılan aracın türü. İlgili ToolCall içindeki toolType ile eşleşir.

response object (Struct format)

İsteğe bağlıdır. Aracın yanıtı.

JSON gösterimi
{
  "id": string,
  "toolType": enum (ToolType),
  "response": {
    object
  }
}

VideoMetadata

Meta veriler, giriş video içeriğini açıklar. Statik video ön işlemeyi (ör. zaman kırpma, kare hızı, maksimum kare sayısı veya ayıklanan içerik katmanları) yapılandırmak için inlineData veya fileData video içerdiğinde bunu Part.video_metadata ya da FunctionResponsePart.video_metadata olarak ayarlayın.

Alanlar
startOffset string (Duration format)

İsteğe bağlıdır. Videonun başlangıç ofseti.

En fazla dokuz kesirli basamak içeren ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

endOffset string (Duration format)

İsteğe bağlıdır. Videonun bitiş ofseti.

En fazla dokuz kesirli basamak içeren ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

fps number

İsteğe bağlıdır. Modele gönderilen videonun kare hızı. Belirtilmezse varsayılan değer 1, 0 olur. FPS aralığı (0,0, 24,0] şeklindedir.

JSON gösterimi
{
  "startOffset": string,
  "endOffset": string,
  "fps": number
}

MediaResolution

Tokenizasyon için medya çözünürlüğü.

Alanlar
value Union type
Medya çözünürlük düzeyi. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
level enum (Level)

Belirli bir medya için kullanılan jetonlaştırma kalitesi. Gemini API desteği için .

Birbirini hariç tutan alanların sonu.
JSON gösterimi
{

  // value
  "level": enum (Level)
  // Union type
}

Seviye

Medya çözünürlük düzeyi.

Sıralamalar
MEDIA_RESOLUTION_UNSPECIFIED Medya çözünürlüğü ayarlanmadı.
MEDIA_RESOLUTION_LOW Medya çözünürlüğü düşük olarak ayarlandı.
MEDIA_RESOLUTION_MEDIUM Medya çözünürlüğü orta olarak ayarlandı.
MEDIA_RESOLUTION_HIGH Medya çözünürlüğü yüksek olarak ayarlandı.
MEDIA_RESOLUTION_ULTRA_HIGH Medya çözünürlüğü ultra yüksek olarak ayarlandı.

MediaProcessing

Modelin, giriş medyasını anlamak için nasıl işlediği.

Sıralamalar
MEDIA_PROCESSING_UNSPECIFIED Varsayılan olarak modele özgü işleme kullanılır.
STATIC Sabit kare hızıyla kare ayıklama. Tüm çerçeveler bağlama yerleştirildi.
AGENTIC Modele dayalı dinamik gezinme. Çoğu kullanım alanı için önerilir.

AudioTranscription

Ses bölümünün transkripti. Birden fazla konuşmacının olduğu seslerde her konuşmacı segmenti, speakerLabel'ı taşıyan kendi AudioTranscription'ına sahip ayrı bir parçadır.

Alanlar
text string

Zorunlu. Bu ses segmentinin transkript metni.

speakerLabel string

İsteğe bağlıdır. Bu ses segmentinin konuşmacısını tanımlayan bir etiket (ör. "spk_1", "spk_2"). Diyalog ayrıştırma ayarlandığında gösterilir.

words[] object (WordInfo)

İsteğe bağlıdır. Kelime düzeyinde ayrıntılı transkriptler ve zamanlama ayrıntıları wordTimestamp ayarlandığında gösterilir.

JSON gösterimi
{
  "text": string,
  "speakerLabel": string,
  "words": [
    {
      object (WordInfo)
    }
  ]
}

WordInfo

Tanınan tek bir kelimeyle ilgili bilgiler.

Alanlar
word string

Zorunlu. Kelimenin transkripti.

startOffset string (Duration format)

İsteğe bağlıdır. Kelimenin sesin başlangıcına göre zaman cinsinden başlangıç ofseti.

En fazla dokuz kesirli basamak içeren ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

endOffset string (Duration format)

İsteğe bağlıdır. Kelimenin sesin başlangıcına göre zaman cinsinden bitiş ofseti.

En fazla dokuz kesirli basamak içeren ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

JSON gösterimi
{
  "word": string,
  "startOffset": string,
  "endOffset": string
}

SpeechMetadata

text bölüm için konuşma meta verileri.

Alanlar
speaker string

İsteğe bağlıdır. Çoklu konuşmacı sentezi için isteğe bağlı konuşmacı adı.

style string

İsteğe bağlıdır. Konuşma sentezi için isteğe bağlı stil talimatı.

JSON gösterimi
{
  "speaker": string,
  "style": string
}

Ortam

Bir temsilcinin yürütme ortamı.

Alanlar
id string

Zorunlu. Yalnızca çıkış. Ortamın kimliği.

sources[] object (Source)

Ortama bağlanacak kaynaklar.

created string

Yalnızca çıkış. Ortamın oluşturulduğu zaman (ISO 8601 biçiminde: YYYY-AA-GGTsa:dk:snZ).

updated string

Yalnızca çıkış. Ortamın son güncellendiği zaman (ISO 8601 biçiminde: YYYY-AA-GGTsa:dk:snZ).

lastAccessed string

Yalnızca çıkış. Ortama en son erişilen zaman (ISO 8601 biçiminde: YYYY-AA-GGTsa:dk:snZ).

status enum (Status)

Yalnızca çıkış. Ortam kapsayıcısının durumu.

fileCount string (int64 format)

Yalnızca çıkış. Ortamdaki dosya sayısı (yalnızca çıkış).

sizeBytes string (int64 format)

Yalnızca çıkış. Ortam dosyalarının bayt cinsinden toplam boyutu (yalnızca çıkış).

network Union type
Ortam için ağ yapılandırması. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
networkAllowlist object (EnvironmentNetworkEgressAllowlist)

Yalnızca belirli alanlara izin verme

networkMode enum (NetworkMode)

Ağ çıkış modu.

Birbirini hariç tutan alanların sonu.
JSON gösterimi
{
  "id": string,
  "sources": [
    {
      object (Source)
    }
  ],
  "created": string,
  "updated": string,
  "lastAccessed": string,
  "status": enum (Status),
  "fileCount": string,
  "sizeBytes": string,

  // network
  "networkAllowlist": {
    object (EnvironmentNetworkEgressAllowlist)
  },
  "networkMode": enum (NetworkMode)
  // Union type
}

Durum

Ortamın durumu.

Sıralamalar
STATUS_UNSPECIFIED
ACTIVE
EXPIRED

NetworkMode

İzin verilenler listesinde olmayan yapılandırmalar için ağ çıkış modu.

Sıralamalar
NETWORK_MODE_UNSPECIFIED Varsayılan değer. Kullanılmıyor.
DISABLED Tüm ağ çıkışları engellenir.

Şema

Schema nesnesi, giriş ve çıkış veri türlerinin tanımlanmasına olanak tanır. Bu türler nesne olabileceği gibi temel öğeler ve diziler de olabilir. OpenAPI 3.0 şema nesnesinin belirli bir alt kümesini temsil eder.

Alanlar
type enum (Type)

Zorunlu. Veri türü.

format string

İsteğe bağlıdır. Verilerin biçimi. Herhangi bir değere izin verilir ancak çoğu değer özel bir işlevi tetiklemez.

title string

İsteğe bağlıdır. Şemanın başlığı.

description string

İsteğe bağlıdır. Parametrenin kısa bir açıklaması. Bu bilgilerde kullanım örnekleri yer alabilir. Parametre açıklaması Markdown olarak biçimlendirilebilir.

nullable boolean

İsteğe bağlıdır. Değerin boş olup olamayacağını gösterir.

enum[] string

İsteğe bağlıdır. Type.STRING öğesinin enum biçimindeki olası değerleri. Örneğin, Enum Direction'ı şu şekilde tanımlayabiliriz : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]}

maxItems string (int64 format)

İsteğe bağlıdır. Type.ARRAY için maksimum öğe sayısı.

minItems string (int64 format)

İsteğe bağlıdır. Type.ARRAY için minimum öğe sayısı.

properties map (key: string, value: object (Schema))

İsteğe bağlıdır. Type.OBJECT özellikleri.

"key": value çiftlerinin listesini içeren bir nesne. Örnek: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[] string

İsteğe bağlıdır. Type.OBJECT'in zorunlu özellikleri.

minProperties string (int64 format)

İsteğe bağlıdır. Type.OBJECT için minimum özellik sayısı.

maxProperties string (int64 format)

İsteğe bağlıdır. Type.OBJECT için maksimum özellik sayısı.

minLength string (int64 format)

İsteğe bağlıdır. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING

maxLength string (int64 format)

İsteğe bağlıdır. Type.STRING'in maksimum uzunluğu

pattern string

İsteğe bağlıdır. Bir dizeyi normal ifadeyle kısıtlamak için Type.STRING kalıbı.

example value (Value format)

İsteğe bağlıdır. Nesne örneği. Yalnızca nesne kök olduğunda doldurulur.

anyOf[] object (Schema)

İsteğe bağlıdır. Değer, listedeki alt şemalardan herhangi birine (bir veya daha fazla) göre doğrulanmalıdır.

propertyOrdering[] string

İsteğe bağlıdır. Özelliklerin sırası. OpenAPI spesifikasyonunda standart bir alan değildir. Yanıttaki özelliklerin sırasını belirlemek için kullanılır.

default value (Value format)

İsteğe bağlıdır. Alanın varsayılan değeri. JSON şemasına göre bu alan, doküman oluşturucular için tasarlanmıştır ve doğrulamayı etkilemez. Bu nedenle, default alanı içeren şemalar gönderen geliştiricilerin bilinmeyen alan hataları almaması için bu alan buraya eklenir ve yoksayılır.

items object (Schema)

İsteğe bağlıdır. Type.ARRAY öğelerinin şeması.

minimum number

İsteğe bağlıdır. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER

maximum number

İsteğe bağlıdır. Type.INTEGER ve Type.NUMBER için maksimum değer

JSON gösterimi
{
  "type": enum (Type),
  "format": string,
  "title": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "maxItems": string,
  "minItems": string,
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "minProperties": string,
  "maxProperties": string,
  "minLength": string,
  "maxLength": string,
  "pattern": string,
  "example": value,
  "anyOf": [
    {
      object (Schema)
    }
  ],
  "propertyOrdering": [
    string
  ],
  "default": value,
  "items": {
    object (Schema)
  },
  "minimum": number,
  "maximum": number
}

Tür

Tür, https://spec.openapis.org/oas/v3.0.3#data-types adresinde tanımlanan OpenAPI veri türlerinin listesini içerir.

Sıralamalar
TYPE_UNSPECIFIED Belirtilmedi, kullanılmamalıdır.
STRING Dize türü.
NUMBER Sayı türü.
INTEGER Tam sayı türü.
BOOLEAN Boole türü.
ARRAY Dizi türü.
OBJECT Nesne türü.
NULL Boş tür.

Araç

Modelin yanıt oluşturmak için kullanabileceği araç ayrıntıları.

Tool, sistemin modelin bilgisi ve kapsamı dışında bir işlem veya bir dizi işlem gerçekleştirmek için harici sistemlerle etkileşime girmesini sağlayan bir kod parçasıdır.

Alanlar
functionDeclarations[] object (FunctionDeclaration)

İsteğe bağlıdır. Modelin işlev çağrısı için kullanabileceği FunctionDeclarations listesi.

Model veya sistem, işlevi yürütmez. Bunun yerine, tanımlanan işlev, yürütme için istemci tarafına bağımsız değişkenlerle birlikte FunctionCall olarak döndürülebilir. Model, yanıtta FunctionCall değerini doldurarak bu işlevlerin bir alt kümesini çağırmaya karar verebilir. Bir sonraki görüşme sırası, bir sonraki model sırası için Content.role "function" oluşturma bağlamına sahip bir FunctionResponse içerebilir.

googleSearchRetrieval object (GoogleSearchRetrieval)

İsteğe bağlıdır. Google Arama tarafından desteklenen erişim aracı.

codeExecution object (CodeExecution)

İsteğe bağlıdır. Modelin, içerik üretme sürecinde kod yürütmesine olanak tanır.

computerUse object (ComputerUse)

İsteğe bağlıdır. Modelin bilgisayarla doğrudan etkileşim kurmasını destekleyen araç. Etkinleştirilirse bilgisayar kullanımına özel işlev bildirimlerini otomatik olarak doldurur.

urlContext object (UrlContext)

İsteğe bağlıdır. URL bağlamı alma işlemini destekleyen araç.

mcpServers[] object (McpServer)

İsteğe bağlıdır. Bağlanılacak MCP sunucuları.

googleMaps object (GoogleMaps)

İsteğe bağlıdır. Modelin yanıtını kullanıcının sorgusuyla ilgili coğrafi bağlamla desteklemeye olanak tanıyan araç.

JSON gösterimi
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "googleSearchRetrieval": {
    object (GoogleSearchRetrieval)
  },
  "codeExecution": {
    object (CodeExecution)
  },
  "googleSearch": {
    object (GoogleSearch)
  },
  "computerUse": {
    object (ComputerUse)
  },
  "urlContext": {
    object (UrlContext)
  },
  "fileSearch": {
    object (FileSearch)
  },
  "mcpServers": [
    {
      object (McpServer)
    }
  ],
  "googleMaps": {
    object (GoogleMaps)
  }
}

FunctionDeclaration

OpenAPI 3.03 spesifikasyonunda tanımlandığı şekilde bir işlev bildiriminin yapılandırılmış temsili. Bu beyana işlev adı ve parametreler dahildir. Bu FunctionDeclaration, model tarafından Tool olarak kullanılabilen ve istemci tarafından yürütülebilen bir kod bloğunun temsilidir.

Alanlar
name string

Zorunlu. İşlevin adı. a-z, A-Z, 0-9 karakterlerini veya alt çizgi, iki nokta üst üste, nokta ve kısa çizgi içermeli ve en fazla 128 karakter uzunluğunda olmalıdır.

description string

Zorunlu. İşlevin kısa bir açıklaması.

behavior enum (Behavior)

İsteğe bağlıdır. İşlev davranışını belirtir. Şu anda yalnızca BidiGenerateContent yöntemi tarafından desteklenmektedir.

parameters object (Schema)

İsteğe bağlıdır. Bu işlevin parametrelerini açıklar. Open API 3.03 Parametre Nesnesi dize anahtarını yansıtır: parametrenin adı. Parametre adları büyük/küçük harfe duyarlıdır. Şema Değeri: Parametre için kullanılan türü tanımlayan şema.

parametersJsonSchema value (Value format)

İsteğe bağlıdır. İşlevin parametrelerini JSON şeması biçiminde açıklar. Şema, özelliklerin işlevin parametreleri olduğu bir nesneyi tanımlamalıdır. Örneğin:

{
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "age": { "type": "integer" }
  },
  "additionalProperties": false,
  "required": ["name", "age"],
  "propertyOrdering": ["name", "age"]
}

Bu alan parameters ile karşılıklı olarak birbirini hariç tutar.

response object (Schema)

İsteğe bağlıdır. Bu işlevin çıkışını JSON şeması biçiminde açıklar. Open API 3.03 Yanıt Nesnesi'ni yansıtır. Şema, işlevin yanıt değeri için kullanılan türü tanımlar.

responseJsonSchema value (Value format)

İsteğe bağlıdır. Bu işlevin çıkışını JSON şeması biçiminde açıklar. Şemada belirtilen değer, işlevin yanıt değeridir.

Bu alan response ile karşılıklı olarak birbirini hariç tutar.

JSON gösterimi
{
  "name": string,
  "description": string,
  "behavior": enum (Behavior),
  "parameters": {
    object (Schema)
  },
  "parametersJsonSchema": value,
  "response": {
    object (Schema)
  },
  "responseJsonSchema": value
}

Davranış

İşlev davranışını tanımlar. Varsayılan değer: BLOCKING.

Sıralamalar
UNSPECIFIED Bu değer kullanılmıyor.
BLOCKING Bu ayar belirlenirse sistem, sohbete devam etmeden önce işlev yanıtını almayı bekler.
NON_BLOCKING Bu ayar yapılırsa sistem, işlev yanıtını almak için beklemez. Bunun yerine, kullanıcı ile model arasındaki sohbeti sürdürürken işlev yanıtlarını kullanılabilir hale geldikçe işlemeye çalışır.

GoogleSearchRetrieval

Google tarafından desteklenen, temellendirme için herkese açık web verilerini alan araç.

Alanlar
dynamicRetrievalConfig object (DynamicRetrievalConfig)

Belirtilen kaynak için dinamik alma yapılandırmasını belirtir.

JSON gösterimi
{
  "dynamicRetrievalConfig": {
    object (DynamicRetrievalConfig)
  }
}

DynamicRetrievalConfig

Dinamik alma özelliğini özelleştirme seçeneklerini açıklar.

Alanlar
mode enum (Mode)

Dinamik getirmede kullanılacak tahmin aracının modu.

dynamicThreshold number

Dinamik alma işleminde kullanılacak eşik. Ayarlanmazsa sistemin varsayılan değeri kullanılır.

JSON gösterimi
{
  "mode": enum (Mode),
  "dynamicThreshold": number
}

Mod

Dinamik getirmede kullanılacak tahmin aracının modu.

Sıralamalar
MODE_UNSPECIFIED Her zaman alma işlemini tetikle.
MODE_DYNAMIC Yalnızca sistem gerekli olduğuna karar verdiğinde alma işlemini çalıştırın.

CodeExecution

Bu türün alanı yok.

Model tarafından oluşturulan kodu çalıştıran ve sonucu otomatik olarak modele döndüren araç.

Yalnızca bu araç kullanılırken oluşturulan ExecutableCode ve CodeExecutionResult raporlarına da göz atın.

GoogleSearch

GoogleSearch araç türü. Modelde Google Arama'yı destekleyen araç. Google tarafından desteklenir.

Alanlar
timeRangeFilter object (Interval)

İsteğe bağlıdır. Arama sonuçlarını belirli bir zaman aralığına göre filtreleyin. Müşteriler bir başlangıç zamanı ayarlarsa bitiş zamanı da ayarlamalıdır (veya tam tersi).

searchTypes object (SearchTypes)

İsteğe bağlıdır. Etkinleştirilecek arama türleri grubu. Politika ayarlanmazsa web araması varsayılan olarak etkinleştirilir.

JSON gösterimi
{
  "timeRangeFilter": {
    object (Interval)
  },
  "searchTypes": {
    object (SearchTypes)
  }
}

Aralık

Bir zaman aralığını, Başlangıç zaman damgası (dahil) ve Bitiş zaman damgası (hariç) olarak kodlanmış şekilde gösterir.

Başlangıç değeri, bitiş değerinden küçük veya ona eşit olmalıdır. Başlangıç bitişe eşit olduğunda aralık boştur (hiçbir zamanla eşleşmez). Hem başlangıç hem de bitiş belirtilmediğinde aralık herhangi bir zamanla eşleşir.

Alanlar
startTime string (Timestamp format)

İsteğe bağlıdır. Aralığın başlangıç zamanı dahildir.

Bu aralıkla eşleşen bir zaman damgası belirtilirse başlangıçla aynı veya başlangıçtan sonra olmalıdır.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

endTime string (Timestamp format)

İsteğe bağlıdır. Aralığın bitiş zamanı dahil değildir.

Bu aralıkla eşleşen bir zaman damgası belirtilirse bitişten önce olmalıdır.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

JSON gösterimi
{
  "startTime": string,
  "endTime": string
}

SearchTypes

GoogleSearch aracında etkinleştirilebilecek farklı arama türleri.

Alanlar
JSON gösterimi
{
  "webSearch": {
    object (WebSearch)
  },
  "imageSearch": {
    object (ImageSearch)
  }
}

WebSearch

Bu türün alanı yok.

Temellendirme ve ilgili yapılandırmalar için standart web araması.

ImageSearch

Bu türün alanı yok.

Temellendirme ve ilgili yapılandırmalar için görsel arama.

ComputerUse

Bilgisayar Kullanımı araç türü.

Alanlar
environment enum (Environment)

Zorunlu. İşletilen ortam.

excludedPredefinedFunctions[] string

İsteğe bağlıdır. Varsayılan olarak, önceden tanımlanmış işlevler son model çağrısına dahil edilir. Bunlardan bazıları, otomatik olarak dahil edilme işleminden açıkça hariç tutulabilir. Bu iki amaca hizmet edebilir: 1. Daha kısıtlı / farklı bir işlem alanı kullanma 2. Önceden tanımlanmış işlevlerin tanımlarını / talimatlarını iyileştirme

enablePromptInjectionDetection boolean

İsteğe bağlıdır. Bilgisayar kullanımı isteğinde istem enjeksiyonu tespiti kontrolünün etkinleştirilip etkinleştirilmeyeceğini belirler.

disabledSafetyPolicies[] enum (SafetyPolicy)

İsteğe bağlıdır. Bilgisayar kullanımı için güvenlik politikaları devre dışı bırakıldı.

JSON gösterimi
{
  "environment": enum (Environment),
  "excludedPredefinedFunctions": [
    string
  ],
  "enablePromptInjectionDetection": boolean,
  "disabledSafetyPolicies": [
    enum (SafetyPolicy)
  ]
}

Ortam

Kullanılan ortamı (ör. web tarayıcısı) temsil eder.

Sıralamalar
ENVIRONMENT_UNSPECIFIED Varsayılan olarak tarayıcıdır.
ENVIRONMENT_BROWSER Web tarayıcısında çalışır.
ENVIRONMENT_MOBILE Mobil ortamda çalışır.
ENVIRONMENT_DESKTOP Masaüstü ortamında çalışır.

SafetyPolicy

Bilgisayar kullanımı için önceden tanımlanmış güvenlik politikaları.

Sıralamalar
SAFETY_POLICY_UNSPECIFIED Belirtilmemiş güvenlik politikası.
FINANCIAL_TRANSACTIONS Finansal işlemler için güvenlik politikası.
SENSITIVE_DATA_MODIFICATION Hassas verilerin değiştirilmesiyle ilgili güvenlik politikası.
COMMUNICATION_TOOL İletişim araçları (ör. Gmail, Chat, Meet) için güvenlik politikası.
ACCOUNT_CREATION Hesap oluşturma için güvenlik politikası.
DATA_MODIFICATION Veri değişikliği için güvenlik politikası.
LEGAL_TERMS_AND_AGREEMENTS Yasal şartlar ve sözleşmeler için güvenlik politikası.

UrlContext

Bu türün alanı yok.

URL bağlamı alma işlemini destekleyen araç.

FileSearch

Semantik erişim korpuslarından bilgi alan FileSearch aracı. Dosyalar, ImportFile API kullanılarak Semantic Retrieval derlemlerine aktarılır.

Alanlar
fileSearchStoreNames[] string

Zorunlu. Alınacak fileSearchStores'un adları. Örnek: fileSearchStores/my-file-search-store-123

metadataFilter string

İsteğe bağlıdır. Anlamsal erişim dokümanlarına ve parçalarına uygulanacak meta veri filtresi.

topK integer

İsteğe bağlıdır. Alınacak anlamsal alma parçalarının sayısı.

JSON gösterimi
{
  "fileSearchStoreNames": [
    string
  ],
  "metadataFilter": string,
  "topK": integer
}

McpServer

MCPServer, model tarafından işlem yapmak için çağrılabilen bir sunucudur. MCP protokolünü uygulayan bir sunucudur.

Alanlar
name string

MCPServer'ın adı.

transport Union type
MCPServer'a bağlanmak için kullanılacak aktarım. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
streamableHttpTransport object (StreamableHttpTransport)

HTTP isteklerini ve yanıtlarını aktarabilen bir taşıma protokolü.

Birbirini hariç tutan alanların sonu.
JSON gösterimi
{
  "name": string,

  // transport
  "streamableHttpTransport": {
    object (StreamableHttpTransport)
  }
  // Union type
}

StreamableHttpTransport

HTTP isteklerini ve yanıtlarını aktarabilen bir taşıma protokolü.

Alanlar
url string

MCPServer uç noktasının tam URL'si. Örnek: "https://api.example.com/mcp"

headers map (key: string, value: string)

İsteğe bağlı: Gerekirse kimlik doğrulama üstbilgileri, zaman aşımları vb. için alanlar.

"key": value çiftlerinin listesini içeren bir nesne. Örnek: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

timeout string (Duration format)

Normal işlemler için HTTP zaman aşımı.

En fazla dokuz kesirli basamak içeren ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

sseReadTimeout string (Duration format)

SSE okuma işlemleri için zaman aşımı.

En fazla dokuz kesirli basamak içeren ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

terminateOnClose boolean

Aktarım kapandığında istemci oturumunun kapatılıp kapatılmayacağı.

JSON gösterimi
{
  "url": string,
  "headers": {
    string: string,
    ...
  },
  "timeout": string,
  "sseReadTimeout": string,
  "terminateOnClose": boolean
}

GoogleMaps

Kullanıcının sorgusu için coğrafi bağlam sağlayan Google Haritalar aracı.

Alanlar
enableWidget boolean

İsteğe bağlıdır. Yanıtın GroundingMetadata'sında widget bağlam jetonunun döndürülüp döndürülmeyeceğini belirler. Geliştiriciler, modelin yanıtta referans verdiği yerlerle ilgili coğrafi bağlam içeren bir Google Haritalar widget'ı oluşturmak için widget bağlam jetonunu kullanabilir.

JSON gösterimi
{
  "enableWidget": boolean
}

REST Kaynağı: auth_tokens

Kaynak: AuthToken

Geçici kimlik doğrulama jetonu oluşturma isteği.

Alanlar
name string

Yalnızca çıkış. Tanımlayıcı. Jetonun kendisi.

expireTime string (Timestamp format)

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. İsteğe bağlı bir zaman. Bu zamandan sonra, elde edilen jeton kullanıldığında BidiGenerateContent oturumlarındaki mesajlar reddedilir. (Gemini, bu sürenin ardından oturumu önceden kapatabilir.)

Ayarlanmazsa varsayılan olarak 30 dakika sonrasına ayarlanır. Bu değer ayarlanırsa gelecekte 20 saatten az olmalıdır.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

newSessionExpireTime string (Timestamp format)

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. Bu istekten kaynaklanan jetonu kullanan yeni Live API oturumlarının reddedileceği zaman.

Ayarlanmazsa bu değer gelecekte varsayılan olarak 60 saniye olur. Bu değer ayarlanırsa gelecekte 20 saatten az olmalıdır.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

fieldMask string (FieldMask format)

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. fieldMask boşsa ve bidiGenerateContentSetup yoksa geçerli BidiGenerateContentSetup mesajı Live API bağlantısından alınır.

fieldMask boşsa ve bidiGenerateContentSetup mevcutsa geçerli BidiGenerateContentSetup mesajı bu istekteki bidiGenerateContentSetup öğesinden tamamen alınır. Live API bağlantısından gelen kurulum mesajı yok sayılır.

fieldMask boş değilse bidiGenerateContentSetup içindeki ilgili alanlar, Live API bağlantısındaki kurulum mesajındaki alanların üzerine yazılır.

Bu, alanların tam nitelikli adlarının virgülle ayrılmış bir listesidir. Örnek: "user.displayName,photo".

config Union type
Oluşturulan jetonun yönteme özel yapılandırması. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
bidiGenerateContentSetup object (BidiGenerateContentSetup)

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. BidiGenerateContent için özel yapılandırma.

Birbirini hariç tutan alanların sonu.
uses integer

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. Jetonun kullanılabileceği sayı. Bu değer sıfırsa herhangi bir sınır uygulanmaz. Live API oturumunun devam ettirilmesi kullanım olarak sayılmaz. Belirtilmezse varsayılan değer 1'dir.

JSON gösterimi
{
  "name": string,
  "expireTime": string,
  "newSessionExpireTime": string,
  "fieldMask": string,

  // config
  "bidiGenerateContentSetup": {
    object (BidiGenerateContentSetup)
  }
  // Union type
  "uses": integer
}

BidiGenerateContentSetup

İlk BidiGenerateContentClientMessage içinde (ve yalnızca ilk içinde) gönderilecek mesaj. Akış RPC'si süresince geçerli olacak yapılandırmayı içerir.

Müşteriler, başka mesaj göndermeden önce BidiGenerateContentSetupComplete mesajını beklemelidir.

Alanlar
model string

Zorunlu. Modelin kaynak adı. Bu, modelin kullanacağı bir kimlik görevi görür.

Biçim: models/{model}

generationConfig object (GenerationConfig)

İsteğe bağlıdır. Oluşturma yapılandırması.

Aşağıdaki alanlar desteklenmez:

  • responseLogprobs
  • responseMimeType
  • logprobs
  • responseSchema
  • responseJsonSchema
  • stop_sequence
  • skipResponseCache
  • routing_config
  • audio_timestamp
systemInstruction object (Content)

İsteğe bağlıdır. Kullanıcı, model için sistem talimatları sağladı.

Not: Bölümlerde yalnızca metin kullanılmalıdır ve her bölümdeki içerik ayrı bir paragrafta yer almalıdır.

tools[] object (Tool)

İsteğe bağlıdır. Modelin bir sonraki yanıtı oluşturmak için kullanabileceği Tools listesi.

Tool, sistemin modelin bilgisi ve kapsamı dışında bir işlem veya bir dizi işlem gerçekleştirmek için harici sistemlerle etkileşime girmesini sağlayan bir kod parçasıdır.

realtimeInputConfig object (RealtimeInputConfig)

İsteğe bağlıdır. Anlık girişin işlenmesini yapılandırır.

sessionResumption object (SessionResumptionConfig)

İsteğe bağlıdır. Oturum devam ettirme mekanizmasını yapılandırır.

Dahil edilirse sunucu SessionResumptionUpdate mesaj gönderir.

contextWindowCompression object (ContextWindowCompressionConfig)

İsteğe bağlıdır. Bağlam penceresi sıkıştırma mekanizmasını yapılandırır.

Dahil edilirse sunucu, yapılandırılan uzunluğu aştığında bağlamın boyutunu otomatik olarak küçültür.

inputAudioTranscription object (AudioTranscriptionConfig)

İsteğe bağlıdır. Ayarlandığında, ses girişinin transkriptini etkinleştirir. Yapılandırılmışsa transkript, giriş ses diliyle uyumlu olur.

outputAudioTranscription object (AudioTranscriptionConfig)

İsteğe bağlıdır. Ayarlandığında, modelin ses çıkışının transkriptini etkinleştirir. Transkript, yapılandırılmışsa çıkış sesi için belirtilen dil koduyla uyumlu olur.

historyConfig object (HistoryConfig)

İsteğe bağlıdır. İstemci ile sunucu arasındaki geçmiş alışverişini yapılandırır.

labels map (key: string, value: string)

İsteğe bağlıdır. İstek için kullanıcı tanımlı meta veriler içeren etiketler.

İsteğe bağlıdır. Etiketler, standart birleştirilmiş Cloud etiketi koşullarına uymalıdır: - Etiket anahtarları bir harfle başlamalıdır. - Etiket anahtarları ve değerleri 63 karakterden (Unicode kod noktaları) uzun olamaz ve yalnızca küçük harf, sayısal karakter, alt çizgi ve kısa çizgi içerebilir. - Uluslararası karakterlere izin verilir.

Kullanım: - Toplayıcılardan alınan güvenlik tanımlayıcıları: safety_identifier anahtarını kullanın (ör. {"safety_identifier": "user_session_123"})

"key": value çiftlerinin listesini içeren bir nesne. Örnek: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

JSON gösterimi
{
  "model": string,
  "generationConfig": {
    object (GenerationConfig)
  },
  "systemInstruction": {
    object (Content)
  },
  "tools": [
    {
      object (Tool)
    }
  ],
  "realtimeInputConfig": {
    object (RealtimeInputConfig)
  },
  "sessionResumption": {
    object (SessionResumptionConfig)
  },
  "contextWindowCompression": {
    object (ContextWindowCompressionConfig)
  },
  "inputAudioTranscription": {
    object (AudioTranscriptionConfig)
  },
  "outputAudioTranscription": {
    object (AudioTranscriptionConfig)
  },
  "historyConfig": {
    object (HistoryConfig)
  },
  "labels": {
    string: string,
    ...
  }
}

GenerationConfig

Model oluşturma ve çıkışlar için yapılandırma seçenekleri. Her model için tüm parametreler yapılandırılamaz.

Alanlar
stopSequences[] string

İsteğe bağlıdır. Çıkış oluşturmayı durduracak karakter dizileri (en fazla 5). Belirtilirse API, stop_sequence ilk kez göründüğünde durur. Durdurma dizisi, yanıta dahil edilmez.

responseMimeType string

İsteğe bağlıdır. Oluşturulan aday metnin MIME türü. Desteklenen MIME türleri: text/plain: (varsayılan) Metin çıkışı. application/json: Yanıt adaylarındaki JSON yanıtı. text/x.enum: Yanıt adaylarında dize yanıtı olarak ENUM. Desteklenen tüm metin MIME türlerinin listesi için belgelere bakın.

responseSchema
(deprecated)
object (Schema)

İsteğe bağlıdır. Oluşturulan aday metnin çıkış şeması. Şemalar, OpenAPI şemasının bir alt kümesi olmalıdır ve nesneler, temel öğeler veya diziler olabilir.

Bu politika ayarlanırsa uyumlu bir responseMimeType politikası da ayarlanmalıdır. Uyumlu MIME türleri: application/json: JSON yanıtı için şema. Daha fazla bilgi için JSON metin oluşturma kılavuzuna bakın.

Kullanımdan kaldırıldı. Bunun yerine responseFormat politikasını kullanın.

_responseJsonSchema
(deprecated)
value (Value format)

İsteğe bağlıdır. Oluşturulan yanıtın çıkış şeması. Bu, JSON Şeması'nı kabul eden responseSchema için bir alternatiftir.

Ayarlanırsa responseSchema atlanmalıdır ancak responseMimeType gereklidir.

JSON şemasının tamamı gönderilebilse de tüm özellikler desteklenmez. Özellikle yalnızca aşağıdaki özellikler desteklenir:

  • $id
  • $defs
  • $ref
  • $anchor
  • type
  • format
  • title
  • description
  • enum (dizeler ve sayılar için)
  • items
  • prefixItems
  • minItems
  • maxItems
  • minimum
  • maximum
  • anyOf
  • oneOf (anyOf ile aynı şekilde yorumlanır)
  • properties
  • additionalProperties
  • required

Standart olmayan propertyOrdering özelliği de ayarlanabilir.

Döngüsel referanslar sınırlı bir dereceye kadar açılır ve bu nedenle yalnızca zorunlu olmayan özelliklerde kullanılabilir. (Null değer alabilen özellikler yeterli değildir.) Bir alt şemada $ref ayarlanırsa $ ile başlayanlar dışında başka özellik ayarlanamaz.

Kullanımdan kaldırıldı. Bunun yerine responseFormat politikasını kullanın.

responseJsonSchema value (Value format)

İsteğe bağlıdır. Dahili bir ayrıntı. Bu alan yerine responseJsonSchema kullanın.

responseModalities[] enum (Modality)

İsteğe bağlıdır. Yanıtın istenen modaliteleri. Modelin döndürebileceği ve yanıtta beklenen modalite kümesini temsil eder. Bu, yanıtın modaliteleriyle tam eşleşmedir.

Bir model, desteklenen modalitelerin birden fazla kombinasyonuna sahip olabilir. İstenen modaliteler desteklenen kombinasyonlardan herhangi biriyle eşleşmiyorsa hata döndürülür.

Boş bir liste, yalnızca metin istemeye eşdeğerdir.

candidateCount integer

İsteğe bağlıdır. Döndürülecek oluşturulan yanıt sayısı. Ayarlanmazsa varsayılan olarak 1 olur. Bu özelliğin önceki nesil modellerde (Gemini 1.0 ailesi) kullanılamadığını lütfen unutmayın.

maxOutputTokens integer

İsteğe bağlıdır. Yanıt adayına dahil edilecek maksimum jeton sayısı.

Not: Varsayılan değer modele göre değişir. getModel işlevinden döndürülen Model öğesinin Model.output_token_limit özelliğine bakın.

temperature number

İsteğe bağlıdır. Çıktının rastgeleliğini kontrol eder.

Not: Varsayılan değer modele göre değişir. getModel işlevinden döndürülen Model nesnesinin Model.temperature özelliğine bakın.

Değerler [0,0, 2,0] arasında olabilir.

Bu alan artık desteklenmiyor ve Gemini 3.6 Flash ve daha yeni modellerde sessizce yoksayılıyor.

topP number

İsteğe bağlıdır. Örnekleme sırasında dikkate alınacak jetonların maksimum kümülatif olasılığı.

Model, birleştirilmiş Top-k ve Top-p (çekirdek) örneklemesini kullanır.

Yalnızca en olası parçaların dikkate alınması için parçalar, atanan olasılıklarına göre sıralanır. Top-k örnekleme, dikkate alınacak maksimum jeton sayısını doğrudan sınırlandırırken çekirdek örnekleme, jeton sayısını kümülatif olasılığa göre sınırlandırır.

Not: Varsayılan değer Model parametresine göre değişir ve getModel işlevinden döndürülen Model.top_p özelliği tarafından belirtilir. Boş bir topK özelliği, modelin top-k örneklemesi uygulamadığını ve isteklerde topK ayarlanmasına izin vermediğini gösterir.

Bu alan artık desteklenmiyor ve Gemini 3.6 Flash ve daha yeni modellerde sessizce yoksayılıyor.

topK integer

İsteğe bağlıdır. Örnekleme sırasında dikkate alınacak maksimum jeton sayısı.

Gemini modelleri, Top-p (çekirdek) örnekleme veya Top-k ve çekirdek örneklemenin bir kombinasyonunu kullanır. Top-k örneklemesi, en olası topK jeton kümesini dikkate alır. Çekirdek örnekleme ile çalışan modellerde topK ayarına izin verilmez.

Not: Varsayılan değer Model öğesine göre değişir ve getModel işlevinden döndürülen Model.top_p özelliği tarafından belirtilir. Boş bir topK özelliği, modelin top-k örneklemesi uygulamadığını ve isteklerde topK ayarlanmasına izin vermediğini gösterir.

Bu alan artık desteklenmiyor ve Gemini 3.6 Flash ve daha yeni modellerde sessizce yoksayılıyor.

seed integer

İsteğe bağlıdır. Kod çözmede kullanılan temel değer. Ayarlanmazsa istek, rastgele oluşturulmuş bir çekirdek kullanır.

presencePenalty number

İsteğe bağlıdır. Yanıt içinde daha önce görülen bir sonraki jetonun logprob'larına uygulanan varlık cezası.

Bu ceza, ikili açma/kapatma şeklindedir ve jetonun kaç kez kullanıldığına (ilk kullanımdan sonra) bağlı değildir. Her kullanımda artan bir ceza için frequencyPenalty kullanın.

Pozitif bir ceza, yanıtta daha önce kullanılmış jetonların kullanımını engelleyerek kelime dağarcığını artırır.

Negatif ceza, yanıtta daha önce kullanılmış jetonların kullanımını teşvik ederek kelime dağarcığını azaltır.

frequencyPenalty number

İsteğe bağlıdır. Bir sonraki jetonun logprobs değerine uygulanan ve her jetonun yanıtta şimdiye kadar görülme sayısıyla çarpılan sıklık cezası.

Pozitif ceza, daha önce kullanılmış jetonların kullanımını, jetonun kullanım sayısıyla orantılı olarak azaltır: Bir jeton ne kadar çok kullanılırsa modelin o jetonu tekrar kullanması o kadar zorlaşır ve yanıtların kelime dağarcığı genişler.

Dikkat: Negatif ceza, modelin jetonları, jetonun kullanılma sayısıyla orantılı olarak yeniden kullanmasını teşvik eder. Küçük negatif değerler, yanıtın kelime dağarcığını azaltır. Daha büyük negatif değerler, modelin maxOutputTokens sınırına ulaşana kadar yaygın bir jetonu tekrarlamaya başlamasına neden olur.

responseLogprobs boolean

İsteğe bağlıdır. Doğru ise logprobs sonuçlarını yanıtta dışa aktarın.

logprobs integer

İsteğe bağlıdır. Yalnızca responseLogprobs=True ise geçerlidir. Bu, Candidate.logprobs_result içinde her kod çözme adımında döndürülecek en yüksek logprob sayısını (seçilen aday dahil) ayarlar. Sayı [0, 20] aralığında olmalıdır.

enableEnhancedCivicAnswers boolean

İsteğe bağlıdır. Gelişmiş sivil yanıtları etkinleştirir. Bu özellik tüm modellerde kullanılamayabilir.

speechConfig object (SpeechConfig)

İsteğe bağlıdır. Konuşma oluşturma yapılandırması.

thinkingConfig object (ThinkingConfig)

İsteğe bağlıdır. Düşünebilen özellikler için yapılandırma. Düşünmeyi desteklemeyen modeller için bu alan ayarlanırsa hata döndürülür.

imageConfig object (ImageConfig)

İsteğe bağlıdır. Görüntü üretme yapılandırması. Bu yapılandırma seçeneklerini desteklemeyen modeller için bu alan ayarlanırsa hata döndürülür.

mediaResolution enum (MediaResolution)

İsteğe bağlıdır. Belirtilirse belirtilen medya çözünürlüğü kullanılır.

enableAffectiveDialog boolean

İsteğe bağlıdır. Etkinleştirilirse model, duyguları algılar ve yanıtlarını buna göre uyarlar.

responseFormat object (ResponseFormatConfig)

İsteğe bağlıdır. Yanıt çıkış biçimi için yapılandırma. Çıkış yapılandırmasının her modalite (metin, ses, görüntü) için düz bir yapıda belirtilmesine olanak tanır.

translationConfig object (TranslationConfig)

İsteğe bağlıdır. Çeviri için yapılandırma.

audioTranscriptionConfig object (AudioTranscriptionConfig)

İsteğe bağlıdır. Ses transkripti (konuşma tanıma) yapılandırması.

JSON gösterimi
{
  "stopSequences": [
    string
  ],
  "responseMimeType": string,
  "responseSchema": {
    object (Schema)
  },
  "_responseJsonSchema": value,
  "responseJsonSchema": value,
  "responseModalities": [
    enum (Modality)
  ],
  "candidateCount": integer,
  "maxOutputTokens": integer,
  "temperature": number,
  "topP": number,
  "topK": integer,
  "seed": integer,
  "presencePenalty": number,
  "frequencyPenalty": number,
  "responseLogprobs": boolean,
  "logprobs": integer,
  "enableEnhancedCivicAnswers": boolean,
  "speechConfig": {
    object (SpeechConfig)
  },
  "thinkingConfig": {
    object (ThinkingConfig)
  },
  "imageConfig": {
    object (ImageConfig)
  },
  "mediaResolution": enum (MediaResolution),
  "enableAffectiveDialog": boolean,
  "responseFormat": {
    object (ResponseFormatConfig)
  },
  "translationConfig": {
    object (TranslationConfig)
  },
  "audioTranscriptionConfig": {
    object (AudioTranscriptionConfig)
  }
}

Yöntem

Yanıtın desteklenen modaliteleri.

Sıralamalar
MODALITY_UNSPECIFIED Varsayılan değer.
TEXT Modelin metin döndürmesi gerektiğini belirtir.
IMAGE Modelin resim döndürmesi gerektiğini belirtir.
AUDIO Modelin ses döndürmesi gerektiğini belirtir.

SpeechConfig

Konuşma oluşturma ve transkripsiyon için yapılandırma.

Alanlar
voiceConfig object (VoiceConfig)

Tek sesli çıkış durumunda yapılandırma.

multiSpeakerVoiceConfig object (MultiSpeakerVoiceConfig)

İsteğe bağlıdır. Çoklu hoparlör kurulumu için yapılandırma. voiceConfig alanıyla karşılıklı olarak birbirini dışlar.

languageCode string

İsteğe bağlıdır. Kullanıcının uygulamayı kullanmak üzere yapılandırdığı IETF BCP-47 dil kodu. Konuşma tanıma ve sentezleme için kullanılır.

Geçerli değerler: de-DE, en-AU, en-GB, en-IN, en-US, es-US, fr-FR, hi-IN, pt-BR, ar-XA, es-ES, fr-CA, id-ID, it-IT, ja-JP, tr-TR, vi-VN, bn-IN, gu-IN, kn-IN, ml-IN, mr-IN, ta-IN, te-IN, nl-NL, ko-KR, cmn-CN, pl-PL, ru-RU ve th-TH.

JSON gösterimi
{
  "voiceConfig": {
    object (VoiceConfig)
  },
  "multiSpeakerVoiceConfig": {
    object (MultiSpeakerVoiceConfig)
  },
  "languageCode": string
}

VoiceConfig

Kullanılacak sesin yapılandırması.

Alanlar
voice_config Union type
Hoparlörün kullanacağı yapılandırma. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
prebuiltVoiceConfig object (PrebuiltVoiceConfig)

Kullanılacak önceden oluşturulmuş sesin yapılandırması.

voice string

İsteğe bağlıdır. Sentez için konuşmacı tanımlayıcısı. Desteklenen biçimler:

  • Önceden oluşturulmuş sesler için konuşmacı adı (ör. Orus veya Kore).
  • Kayıtlı sesler için ses kimliği (örneğin, voice_xxx).
  • Ses kopyalama anahtarı (örneğin, voicekey_xxx).
Birbirini hariç tutan alanların sonu.
JSON gösterimi
{

  // voice_config
  "prebuiltVoiceConfig": {
    object (PrebuiltVoiceConfig)
  },
  "voice": string
  // Union type
}

PrebuiltVoiceConfig

Kullanılacak önceden oluşturulmuş konuşmacının yapılandırması.

Alanlar
voiceName string

İsteğe bağlıdır. Kullanılacak hazır sesin adı.

JSON gösterimi
{
  "voiceName": string
}

MultiSpeakerVoiceConfig

Çoklu hoparlör kurulumu için yapılandırma.

Alanlar
speakerVoiceConfigs[] object (SpeakerVoiceConfig)

Zorunlu. Etkinleştirilen tüm konuşmacı sesleri.

JSON gösterimi
{
  "speakerVoiceConfigs": [
    {
      object (SpeakerVoiceConfig)
    }
  ]
}

SpeakerVoiceConfig

Çoklu hoparlör kurulumunda tek bir hoparlörün yapılandırması.

Alanlar
speaker string

Zorunlu. Kullanılacak konuşmacının adı. İstemdekiyle aynı olmalıdır.

voiceConfig object (VoiceConfig)

Zorunlu. Kullanılacak sesin yapılandırması.

JSON gösterimi
{
  "speaker": string,
  "voiceConfig": {
    object (VoiceConfig)
  }
}

ThinkingConfig

Düşünebilen özellikler için yapılandırma.

Alanlar
includeThoughts boolean

Yanıta düşüncelerin dahil edilip edilmeyeceğini belirtir. Doğru ise düşünceler yalnızca mevcut olduğunda döndürülür.

thinkingBudget integer

Modelin oluşturması gereken düşünce jetonlarının sayısı.

thinkingLevel enum (ThinkingLevel)

İsteğe bağlıdır. Modelin yanıt üretmeden önce iç akıl yürütme sürecinin maksimum derinliğini kontrol eder. Varsayılan değer modele bağlıdır. Daha fazla bilgi için Düşünme seviyeleri kılavuzuna bakın. Gemini 3 veya sonraki modeller için önerilir. Önceki modellerle kullanılması hataya neden olur.

JSON gösterimi
{
  "includeThoughts": boolean,
  "thinkingBudget": integer,
  "thinkingLevel": enum (ThinkingLevel)
}

ThinkingLevel

Kullanıcının, tam sayı bütçesi yerine enum kullanarak ne kadar düşüneceğini belirtmesine izin verin.

Sıralamalar
THINKING_LEVEL_UNSPECIFIED Varsayılan değer.
MINIMAL Düşünme süreci çok kısa veya hiç yok.
LOW Düşük düşünme seviyesi.
MEDIUM Orta düzey düşünme.
HIGH Yüksek düzey düşünme.

ImageConfig

Görüntü üretme özelliklerinin yapılandırması.

Alanlar
aspectRatio string

İsteğe bağlıdır. Oluşturulacak görüntünün en-boy oranı. Desteklenen en-boy oranları: 1:1, 1:4, 4:1, 1:8, 8:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 veya 21:9.

Belirtilmezse model, sağlanan referans görsellere göre varsayılan bir en-boy oranı seçer.

imageSize string

İsteğe bağlıdır. Oluşturulan resimlerin boyutunu belirtir. Desteklenen değerler: 512, 1K, 2K, 4K. Belirtilmezse model, varsayılan değer olan 1K değerini kullanır.

JSON gösterimi
{
  "aspectRatio": string,
  "imageSize": string
}

MediaResolution

Giriş medyasının çözünürlüğü.

Sıralamalar
MEDIA_RESOLUTION_UNSPECIFIED Medya çözünürlüğü ayarlanmadı.
MEDIA_RESOLUTION_LOW Medya çözünürlüğü düşük (64 jeton) olarak ayarlandı.
MEDIA_RESOLUTION_MEDIUM Medya çözünürlüğü orta (256 jeton) olarak ayarlandı.
MEDIA_RESOLUTION_HIGH Medya çözünürlüğü yüksek olarak ayarlandı (256 jetonla yakınlaştırılmış yeniden çerçeveleme).

ResponseFormatConfig

Yanıt çıkış biçimi için yapılandırma. Bu, her isteğe bağlı alt alanın belirli bir çıkış modalitesini yapılandırdığı düz bir nesnedir.

Alanlar
text object (TextResponseFormat)

İsteğe bağlıdır. Metin çıkış biçimi yapılandırması.

audio object (AudioResponseFormat)

İsteğe bağlıdır. Ses çıkış biçimi yapılandırması.

image object (ImageResponseFormat)

İsteğe bağlıdır. Resim çıkış biçimi yapılandırması.

JSON gösterimi
{
  "text": {
    object (TextResponseFormat)
  },
  "audio": {
    object (AudioResponseFormat)
  },
  "image": {
    object (ImageResponseFormat)
  }
}

TextResponseFormat

Metin çıkış biçimi yapılandırması.

Alanlar
mimeType enum (MimeType)

İsteğe bağlıdır. Metin çıkışının MIME türü.

schema value (Value format)

İsteğe bağlıdır. Çıkışın uyması gereken JSON şeması. Yalnızca mimeType, APPLICATION_JSON olduğunda geçerlidir.

JSON gösterimi
{
  "mimeType": enum (MimeType),
  "schema": value
}

MimeType

Metin çıkışı için desteklenen MIME türleri.

Sıralamalar
MIME_TYPE_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
APPLICATION_JSON JSON çıkış biçimi.
TEXT_PLAIN Düz metin çıkış biçimi.

AudioResponseFormat

Ses çıkış biçimi yapılandırması.

Alanlar
mimeType enum (MimeType)

İsteğe bağlıdır. Ses çıkışının MIME türü.

delivery enum (Delivery)

İsteğe bağlıdır. Ses çıkışının yayın modu.

sampleRate integer

İsteğe bağlıdır. Hz cinsinden örnek hızı.

bitRate integer

İsteğe bağlıdır. Saniye başına bit (b/sn.) cinsinden bit hızı. Yalnızca sıkıştırılmış biçimler (MP3, Opus) için geçerlidir.

JSON gösterimi
{
  "mimeType": enum (MimeType),
  "delivery": enum (Delivery),
  "sampleRate": integer,
  "bitRate": integer
}

MimeType

Ses çıkışı için desteklenen MIME türleri.

Sıralamalar
MIME_TYPE_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
AUDIO_MP3 MP3 ses biçimi.
AUDIO_OGG_OPUS OGG Opus ses biçimi.
AUDIO_L16 Ham PCM (L16) ses biçimi.
AUDIO_WAV WAV ses biçimi.
AUDIO_ALAW A-law ses biçimi.
AUDIO_MULAW Mu-law ses biçimi.

Adrese teslim

Ses çıkışı için yayınlama modu.

Sıralamalar
DELIVERY_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
INLINE Ses verileri, yanıtta satır içi olarak döndürülür.
URI Ses verileri URI olarak döndürülür.

ImageResponseFormat

Resim çıkış biçimi yapılandırması.

Alanlar
mimeType enum (MimeType)

İsteğe bağlıdır. Resim çıkışının MIME türü.

delivery enum (Delivery)

İsteğe bağlıdır. Resim çıkışının yayınlanma modu.

aspectRatio enum (AspectRatio)

İsteğe bağlıdır. Resim çıkışının en-boy oranı.

imageSize enum (ImageSize)

İsteğe bağlıdır. Resim çıkışının boyutu.

JSON gösterimi
{
  "mimeType": enum (MimeType),
  "delivery": enum (Delivery),
  "aspectRatio": enum (AspectRatio),
  "imageSize": enum (ImageSize)
}

MimeType

Resim çıkışı için desteklenen MIME türleri.

Sıralamalar
MIME_TYPE_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
IMAGE_JPEG JPEG resim biçimi.

Adrese teslim

Resim çıkışı için yayınlama modu.

Sıralamalar
DELIVERY_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
INLINE Resim verileri, yanıtta satır içi olarak döndürülür.
URI Resim verileri URI olarak döndürülür.

AspectRatio

Resim çıkışı için desteklenen en-boy oranları.

Sıralamalar
ASPECT_RATIO_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
ASPECT_RATIO_ONE_BY_ONE 1:1 en-boy oranı.
ASPECT_RATIO_TWO_BY_THREE 2:3 en-boy oranı.
ASPECT_RATIO_THREE_BY_TWO 3:2 en-boy oranı.
ASPECT_RATIO_THREE_BY_FOUR 3:4 en-boy oranı.
ASPECT_RATIO_FOUR_BY_THREE 4:3 en-boy oranı
ASPECT_RATIO_FOUR_BY_FIVE 4:5 en-boy oranı.
ASPECT_RATIO_FIVE_BY_FOUR 5:4 en-boy oranı.
ASPECT_RATIO_NINE_BY_SIXTEEN 9:16 en-boy oranı
ASPECT_RATIO_SIXTEEN_BY_NINE 16:9 en-boy oranı.
ASPECT_RATIO_TWENTY_ONE_BY_NINE 21:9 en-boy oranı
ASPECT_RATIO_ONE_BY_EIGHT 1:8 en-boy oranı.
ASPECT_RATIO_EIGHT_BY_ONE 8:1 en-boy oranı.
ASPECT_RATIO_ONE_BY_FOUR 1:4 en-boy oranı.
ASPECT_RATIO_FOUR_BY_ONE 4:1 en-boy oranı.

ImageSize

Resim çıkışı için desteklenen resim boyutları.

Sıralamalar
IMAGE_SIZE_UNSPECIFIED Varsayılan değer. Bu değer kullanılmıyor.
IMAGE_SIZE_FIVE_TWELVE 512 piksel resim boyutu.
IMAGE_SIZE_ONE_K 1K resim boyutu.
IMAGE_SIZE_TWO_K 2K resim boyutu.
IMAGE_SIZE_FOUR_K 4K resim boyutu.

TranslationConfig

Çeviri özellikleri için yapılandırma.

Alanlar
targetLanguageCode string

Zorunlu. Çevirinin hedef dili. Desteklenen değerler, BCP-47 dil kodlarıdır (ör. "en", "es", "fr").

echoTargetLanguage boolean

İsteğe bağlıdır. Doğru ise model, hedef dil konuşulduğunda ses üretir. Yani girişi tekrarlar. "False" ise hedef dil için ses üretilmez.

JSON gösterimi
{
  "targetLanguageCode": string,
  "echoTargetLanguage": boolean
}

AudioTranscriptionConfig

Ses transkripti yapılandırması.

Alanlar
languageCodes[] string

İsteğe bağlıdır. Sesteki diller hakkında ipuçları sağlayan BCP-47 dil kodları. Atlanırsa veya boş bırakılırsa varsayılan olarak otomatik dil algılama kullanılır.

adaptationPhrases[]
(deprecated)
string

İsteğe bağlıdır. Konuşma adaptasyonu için kullanılan ifadelerin listesi. Bu ifadeler, ASR modelini bu belirli terimlerin tanınmasını iyileştirecek şekilde yönlendirir.

customVocabulary[] string

İsteğe bağlıdır. Konuşma tanıma modelini belirli terimleri (ürün adları, özel adlar, jargon) tanımaya yönlendirmek için özel kelime öbeklerinin listesi.

wordTimestamp boolean

İsteğe bağlıdır. Kelime düzeyinde zaman damgası oluşturmayı yapılandırır.

diarization boolean

İsteğe bağlıdır. Konuşmacı ayırmayı yapılandırır.

mode enum (Mode)

İsteğe bağlıdır. Transkript modunu yapılandırır. Desteklenen değerler: VERBATIM, SMART. Belirtilmezse varsayılan olarak VERBATIM transkripsiyonu kullanılır. SMART modunda model; akıcılık bozukluklarını giderme (dolgu kelimelerini, tekrarları ve yanlış başlangıçları ortadan kaldırma), basit dil bilgisi düzeltmeleri, otomatik biçimlendirme (paragraflar, madde işaretleri, numaralı listeler) ve küçük kullanıcı düzenlemeleri (satır içi kendi kendine düzeltmeler) yapar. Zaman damgaları ve günlük kaydı, SMART moduyla uyumlu değil.

language_config Union type
Desteği sonlandırıldı: Bunun yerine üst düzey language_codes kullanın. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
languageAuto
(deprecated)
object (LanguageAuto)

İsteğe bağlıdır. Model, dili otomatik olarak algılar.

languageHints
(deprecated)
object (LanguageHints)

İsteğe bağlıdır. Sesteki bir veya daha fazla dili belirtir.

Birbirini hariç tutan alanların sonu.
JSON gösterimi
{
  "languageCodes": [
    string
  ],
  "adaptationPhrases": [
    string
  ],
  "customVocabulary": [
    string
  ],
  "wordTimestamp": boolean,
  "diarization": boolean,
  "mode": enum (Mode),

  // language_config
  "languageAuto": {
    object (LanguageAuto)
  },
  "languageHints": {
    object (LanguageHints)
  }
  // Union type
}

LanguageAuto

Bu türün alanı yok.

Ses dilinin otomatik olarak algılanması gerektiğini belirtir.

LanguageHints

Ses kaydında bulunabilecek diller hakkında modele ipuçları sağlar.

Alanlar
languageCodes[]
(deprecated)
string

Zorunlu. BCP-47 dil kodları.

JSON gösterimi
{
  "languageCodes": [
    string
  ]
}

Mod

Metne dönüştürme modu.

Sıralamalar
MODE_UNSPECIFIED Transkripsiyon modu belirtilmemiş.
VERBATIM Tam metne dönüştürme modu.
SMART Akıllı transkripsiyon modu.

RealtimeInputConfig

BidiGenerateContent uygulamasında gerçek zamanlı giriş davranışını yapılandırır.

Alanlar
automaticActivityDetection object (AutomaticActivityDetection)

İsteğe bağlıdır. Ayar yapılmazsa otomatik etkinlik algılama varsayılan olarak etkinleştirilir. Otomatik ses algılama devre dışı bırakılırsa istemcinin etkinlik sinyalleri göndermesi gerekir.

activityHandling enum (ActivityHandling)

İsteğe bağlıdır. Etkinliğin ne gibi bir etkisi olduğunu tanımlar.

turnCoverage enum (TurnCoverage)

İsteğe bağlıdır. Kullanıcının sırasına hangi girişin dahil edildiğini tanımlar.

interimTranscriptTimestampEnabled boolean

İsteğe bağlıdır. Ara transkript zaman damgalarını yapılandırır.

JSON gösterimi
{
  "automaticActivityDetection": {
    object (AutomaticActivityDetection)
  },
  "activityHandling": enum (ActivityHandling),
  "turnCoverage": enum (TurnCoverage),
  "interimTranscriptTimestampEnabled": boolean
}

AutomaticActivityDetection

Etkinliğin otomatik olarak algılanmasını yapılandırır.

Alanlar
disabled boolean

İsteğe bağlıdır. Etkinleştirilirse (varsayılan) algılanan ses ve metin girişi etkinlik olarak sayılır. Devre dışı bırakılırsa istemcinin etkinlik sinyalleri göndermesi gerekir.

startOfSpeechSensitivity enum (StartSensitivity)

İsteğe bağlıdır. Konuşmanın algılanma olasılığını belirler.

prefixPaddingMs integer

İsteğe bağlıdır. Konuşma başlangıcı işlenmeden önce algılanan konuşmanın gerekli süresi. Bu değer ne kadar düşük olursa konuşma başlangıcı algılama o kadar hassas olur ve daha kısa konuşmalar tanınabilir. Ancak bu durum, yanlış pozitif olasılığını da artırır.

endOfSpeechSensitivity enum (EndSensitivity)

İsteğe bağlıdır. Algılanan konuşmanın sona erme olasılığını belirler.

silenceDurationMs integer

İsteğe bağlıdır. Konuşma sonu işlenmeden önce algılanan konuşma dışı seslerin (ör. sessizlik) gerekli süresi. Bu değer ne kadar büyük olursa kullanıcının etkinliğini kesintiye uğratmadan konuşma boşlukları o kadar uzun olabilir ancak bu, modelin gecikmesini artırır.

JSON gösterimi
{
  "disabled": boolean,
  "startOfSpeechSensitivity": enum (StartSensitivity),
  "prefixPaddingMs": integer,
  "endOfSpeechSensitivity": enum (EndSensitivity),
  "silenceDurationMs": integer
}

StartSensitivity

Konuşmanın başlangıcının nasıl algılanacağını belirler.

Sıralamalar
START_SENSITIVITY_UNSPECIFIED Varsayılan değer START_SENSITIVITY_HIGH'dır.
START_SENSITIVITY_HIGH Otomatik algılama, konuşmanın başlangıcını daha sık algılar.
START_SENSITIVITY_LOW Otomatik algılama, konuşmanın başlangıcını daha az algılar.

EndSensitivity

Konuşmanın sonunun nasıl algılanacağını belirler.

Sıralamalar
END_SENSITIVITY_UNSPECIFIED Varsayılan değer END_SENSITIVITY_HIGH'dır.
END_SENSITIVITY_HIGH Otomatik algılama, konuşmayı daha sık sonlandırır.
END_SENSITIVITY_LOW Otomatik algılama, konuşmayı daha az sonlandırır.

ActivityHandling

Kullanıcı etkinliğini işlemenin farklı yolları.

Sıralamalar
ACTIVITY_HANDLING_UNSPECIFIED Belirtilmezse varsayılan davranış START_OF_ACTIVITY_INTERRUPTS olur.
START_OF_ACTIVITY_INTERRUPTS Doğru ise etkinliğin başlangıcı, modelin yanıtını kesintiye uğratır ("araya girme" olarak da adlandırılır). Modelin mevcut yanıtı, kesinti anında kesilir. Bu varsayılan davranıştır.
NO_INTERRUPTION Modelin yanıtı kesintiye uğramaz.

TurnCoverage

Kullanıcının sırasına hangi girişin dahil edileceğiyle ilgili seçenekler.

Sıralamalar
TURN_COVERAGE_UNSPECIFIED Belirtilmezse modele göre varsayılan bir davranış seçilir. Örneğin, Gemini 2.5 için varsayılan değer TURN_INCLUDES_ONLY_ACTIVITY, Gemini 3.1 ve sonraki sürümler için ise TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO'dir.
TURN_INCLUDES_ONLY_ACTIVITY Son sıradan sonraki etkinlikleri içerir, etkinlik dışı durumları (ör. ses akışındaki sessizlik) hariç tutar.
TURN_INCLUDES_ALL_INPUT Son sıradan bu yana tüm gerçek zamanlı girişleri (ör. ses akışındaki sessizlik gibi etkinlik dışı durumlar dahil) içerir.
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO Son sıradan bu yana ses etkinliğini ve tüm videoları içerir. Otomatik etkinlik algılama özelliğiyle ses etkinliği, konuşma anlamına gelir ve sessizliği hariç tutar.

SessionResumptionConfig

Oturum devam ettirme yapılandırması.

Bu mesaj, oturum yapılandırmasına BidiGenerateContentSetup.session_resumption olarak dahil edilir. Yapılandırılırsa sunucu SessionResumptionUpdate mesaj gönderir.

Alanlar
handle string

Önceki bir oturumun herkese açık kullanıcı adı. Mevcut değilse yeni bir oturum oluşturulur.

Oturum tanıtıcıları, önceki bağlantılardaki SessionResumptionUpdate.token değerlerinden gelir.

JSON gösterimi
{
  "handle": string
}

ContextWindowCompressionConfig

Bağlam penceresi sıkıştırmayı etkinleştirir. Bu, modelin bağlam penceresini belirli bir uzunluğu aşmayacak şekilde yöneten bir mekanizmadır.

Alanlar
compression_mechanism Union type
Kullanılan bağlam penceresi sıkıştırma mekanizması. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
slidingWindow object (SlidingWindow)

Kayan pencere mekanizması.

Birbirini hariç tutan alanların sonu.
triggerTokens string (int64 format)

Bağlam penceresi sıkıştırmasını tetiklemek için gereken jeton sayısı (bir sıra çalıştırılmadan önce).

Daha kısa bağlam pencereleri daha hızlı model yanıtları sağlayabileceğinden, bu özellik kalite ile gecikme arasında denge kurmak için kullanılabilir. Ancak sıkıştırma işlemleri geçici bir gecikme artışına neden olacağından sık sık tetiklenmemelidir.

Ayarlanmazsa varsayılan değer, modelin bağlam penceresi sınırının% 80'idir. Bu durumda, bir sonraki kullanıcı isteği/model yanıtı için% 20'lik bir alan kalır.

JSON gösterimi
{

  // compression_mechanism
  "slidingWindow": {
    object (SlidingWindow)
  }
  // Union type
  "triggerTokens": string
}

SlidingWindow

SlidingWindow yöntemi, bağlam penceresinin başındaki içeriği silerek çalışır. Elde edilen bağlam her zaman bir KULLANICI rolü sırasının başında başlar. Sistem talimatları ve tüm BidiGenerateContentSetup.prefix_turns her zaman sonucun başında kalır.

Alanlar
targetTokens string (int64 format)

Saklanacak hedef jeton sayısı. Varsayılan değer triggerTokens/2'dir.

Bağlam penceresinin bazı bölümlerinin silinmesi, gecikme süresinde geçici bir artışa neden olur. Bu nedenle, sık sık sıkıştırma işlemlerinden kaçınmak için bu değerin kalibre edilmesi gerekir.

JSON gösterimi
{
  "targetTokens": string
}

HistoryConfig

Geçmiş yapılandırması.

Bu mesaj, oturum yapılandırmasına BidiGenerateContentSetup.history_config olarak dahil edilir. Geçmiş mesajlarının paylaşımını yapılandırır.

Alanlar
initialHistoryInClientContent boolean

İsteğe bağlıdır. Doğru ise setupComplete gönderildikten sonra sunucu bekler ve turnComplete, true olana kadar ilk olarak clientContent mesajı işler. Bu ilk geçmiş, model çağrısını tetiklemez ve MODEL rolüyle sona erebilir. turnComplete, true olduktan sonra istemci, realtimeInput üzerinden anlık sohbeti başlatabilir.

JSON gösterimi
{
  "initialHistoryInClientContent": boolean
}

Yöntem: auth_tokens.create

BidiGenerateContent oturumunun davranışını kısıtlamak için kullanılabilecek bir jeton oluşturur.

Uç nokta

yayın https://generativelanguage.googleapis.com/v1beta/auth_tokens

İstek metni

İstek metni, AuthToken öğesinin bir örneğini içerir.

Alanlar
expireTime string (Timestamp format)

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. İsteğe bağlı bir zaman. Bu zamandan sonra, elde edilen jeton kullanıldığında BidiGenerateContent oturumlarındaki mesajlar reddedilir. (Gemini, bu sürenin ardından oturumu önceden kapatabilir.)

Ayarlanmazsa varsayılan olarak 30 dakika sonrasına ayarlanır. Bu değer ayarlanırsa gelecekte 20 saatten az olmalıdır.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

newSessionExpireTime string (Timestamp format)

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. Bu istekten kaynaklanan jetonu kullanan yeni Live API oturumlarının reddedileceği zaman.

Ayarlanmazsa bu değer gelecekte varsayılan olarak 60 saniye olur. Bu değer ayarlanırsa gelecekte 20 saatten az olmalıdır.

Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

fieldMask string (FieldMask format)

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. fieldMask boşsa ve bidiGenerateContentSetup yoksa geçerli BidiGenerateContentSetup mesajı Live API bağlantısından alınır.

fieldMask boşsa ve bidiGenerateContentSetup mevcutsa geçerli BidiGenerateContentSetup mesajı bu istekteki bidiGenerateContentSetup öğesinden tamamen alınır. Live API bağlantısından gelen kurulum mesajı yok sayılır.

fieldMask boş değilse bidiGenerateContentSetup içindeki ilgili alanlar, Live API bağlantısındaki kurulum mesajındaki alanların üzerine yazılır.

Bu, alanların tam nitelikli adlarının virgülle ayrılmış bir listesidir. Örnek: "user.displayName,photo".

config Union type
Oluşturulan jetonun yönteme özel yapılandırması. Aşağıda, birbirini dışlayan alanların listesi verilmiştir. Yanıtta alanlardan en fazla biri ayarlanır:
bidiGenerateContentSetup object (BidiGenerateContentSetup)

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. BidiGenerateContent için özel yapılandırma.

Birbirini hariç tutan alanların sonu.
uses integer

İsteğe bağlıdır. Yalnızca giriş. Değiştirilemez. Jetonun kullanılabileceği sayı. Bu değer sıfırsa herhangi bir sınır uygulanmaz. Live API oturumunun devam ettirilmesi kullanım olarak sayılmaz. Belirtilmezse varsayılan değer 1'dir.

Yanıt metni

Başarılıysa yanıt metni, AuthToken öğesinin yeni oluşturulan bir örneğini içerir.