Generating content

Gemini API; resim, ses, kod ve araçlarla içerik oluşturmayı destekler. Bu özelliklerin her biriyle ilgili ayrıntılar için okumaya devam edin ve göreve odaklanmış örnek kodu inceleyin veya kapsamlı kılavuzları okuyun.

Yöntem: models.generateContent

Giriş GenerateContentRequest verildiğinde model yanıtı oluşturur. Ayrıntılı kullanım bilgileri için metin oluşturma kılavuzuna bakın. Giriş özellikleri, ince ayarlı modeller de dahil olmak üzere modeller arasında farklılık gösterir. Ayrıntılar için model kılavuzuna ve ayarlama kılavuzuna bakın.

Uç nokta

post https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateContent

Yol parametreleri

model string

Zorunlu. Tamamlama oluşturmak için kullanılacak Model öğesinin 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. Modelle yapılan mevcut görüşmenin içeriği.

Tek dönüşlü 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ı. Tools, bir sonraki yanıtı oluşturmak için kullanabileceği Model listesi.

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

toolConfig object (ToolConfig)

İsteğe bağlı. İstekte belirtilen tüm Tool için araç yapılandırması. Kullanım örneği için İşlev çağırma kılavuzu'na bakın.

safetySettings[] object (SafetySetting)

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

Bu politika, GenerateContentRequest.contents ve GenerateContentResponse.candidates'te uygulanacaktır. Her SafetyCategory türü için birden fazla ayar olmamalıdır. API, bu ayarlarda belirlenen eşikleri karşılamayan tüm içerikleri ve yanıtları engeller. Bu liste, safetySettings içinde belirtilen her SafetyCategory için varsayılan ayarları geçersiz kılar. Listede belirli bir SafetyCategory için SafetySetting yoksa API, bu 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. Mevcut güvenlik ayarları hakkında ayrıntılı bilgi için kılavuza bakın. Ayrıca, yapay zeka uygulamalarınıza güvenlikle ilgili hususları nasıl dahil edeceğinizi öğrenmek için Güvenlik rehberine de göz atın.

systemInstruction object (Content)

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

generationConfig object (GenerationConfig)

İsteğe bağlı. Model oluşturma ve çıkışlarla ilgili yapılandırma seçenekleri.

cachedContent string

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

serviceTier enum (ServiceTier)

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

store boolean

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

Örnek istek

Metin

Python

from google import genai

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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ğrısı

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.7-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.7-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.7-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.7-flash" });
  const chatResponse = await chat.sendMessage({
    message: "The final result is " + resultValue,
  });
  console.log(chatResponse.text);
  return chatResponse;
}

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.7-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.7-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.7-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.7-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.7-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.7-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.7-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);
  return response;
}

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.7-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.7-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.7-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.7-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.7-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.7-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 yayınlanan bir yanıt oluşturur.

Uç nokta

post https://generativelanguage.googleapis.com/v1beta/{model=models/*}:streamGenerateContent

Yol parametreleri

model string

Zorunlu. Tamamlama oluşturmak için kullanılacak Model öğesinin 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. Modelle yapılan mevcut görüşmenin içeriği.

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

tools[] object (Tool)

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

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

toolConfig object (ToolConfig)

İsteğe bağlı. İstekte belirtilen tüm Tool için araç yapılandırması. Kullanım örneği için İşlev çağırma kılavuzu'na bakın.

safetySettings[] object (SafetySetting)

İsteğe bağlı. Güvenli olmayan içeriklerin engellenmesi için benzersiz SafetySetting örneklerinin listesi.

Bu politika, GenerateContentRequest.contents ve GenerateContentResponse.candidates'te uygulanacaktır. Her SafetyCategory türü için birden fazla ayar olmamalıdır. API, bu ayarlarda belirlenen eşikleri karşılamayan tüm içerikleri ve yanıtları engeller. Bu liste, safetySettings içinde belirtilen her SafetyCategory için varsayılan ayarları geçersiz kılar. Listede belirli bir SafetyCategory için SafetySetting yoksa API, bu 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. Mevcut güvenlik ayarları hakkında ayrıntılı bilgi için kılavuza bakın. Ayrıca, yapay zeka uygulamalarınıza güvenlikle ilgili hususları nasıl dahil edeceğinizi öğrenmek için Güvenlik rehberine de göz atın.

systemInstruction object (Content)

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

generationConfig object (GenerationConfig)

İsteğe bağlı. Model oluşturma ve çıkışlarla ilgili yapılandırma seçenekleri.

cachedContent string

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

serviceTier enum (ServiceTier)

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

store boolean

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

Örnek istek

Metin

Python

from google import genai

client = genai.Client()
response = client.models.generate_content_stream(
    model="gemini-3.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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.7-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 örneklerinin bir akışını içerir.

GenerateContentResponse

Birden fazla aday yanıtını destekleyen modelden gelen yanıt.

Güvenlik derecelendirmeleri ve içerik filtreleme, hem GenerateContentResponse.prompt_feedback istemi hem de finishReason ve safetyRatings'deki her aday için bildirilir. API: - İstenen adayların tümünü veya hiçbirini döndürür. - Yalnızca istemde bir sorun varsa hiç aday döndürmez (promptFeedback bölümüne bakın). - finishReason ve safetyRatings bölümlerinde her aday hakkında geri bildirim bildirir.

Alanlar
candidates[] object (Candidate)

Modelden gelen aday yanıtlar.

promptFeedback object (PromptFeedback)

İçerik filtreleriyle ilgili istem geri bildirimini 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

İstemde GenerateContentRequest.content içinde belirtilen geri bildirim meta verileri kümesi.

Alanlar
blockReason enum (BlockReason)

İsteğe bağlı. Ayarlanmışsa istem engellendi ve aday döndürülmedi. İstemi yeniden ifade edin.

safetyRatings[] object (SafetyRating)

İstem 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 neden engellendiğini 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 simgesini inceleyin.
OTHER İstem, bilinmeyen nedenlerle engellendi.
BLOCKLIST İstem, terminoloji engelleme listesinde yer alan terimler nedeniyle engellendi.
PROHIBITED_CONTENT İstem, yasaklanmış içerik nedeniyle engellendi.
IMAGE_SAFETY Güvenli olmayan resim oluşturma içeriği nedeniyle adaylar engellendi.

UsageMetadata

Üretim isteğinin jeton kullanımıyla ilgili meta veriler.

Alanlar
promptTokenCount integer

İstemdeki jeton sayısı. cachedContent ayarlandığında bu değer, toplam etkili istem boyutu olmaya devam eder. Yani, önbelleğe alınan içerikteki jeton sayısını da içerir.

cachedContentTokenCount integer

İstemin önbelleğe alınan bölümündeki (ö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ç kullanma 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 jeton sayısı (istem + düşünceler + yanıt adayları).

promptTokensDetails[] object (ModalityTokenCount)

Yalnızca çıkış. İstek girişinde işlenen yöntemlerin listesi.

cacheTokensDetails[] object (ModalityTokenCount)

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

candidatesTokensDetails[] object (ModalityTokenCount)

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

toolUsePromptTokensDetails[] object (ModalityTokenCount)

Yalnızca çıkış. Araç kullanımı isteği girişleri için işlenen yöntemlerin 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)

Altta yatan 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ı belirtilmemiş.
UNSTABLE_EXPERIMENTAL

Altta yatan model, birçok ayarlamaya tabidir.

EXPERIMENTAL Bu aşamadaki modeller yalnızca deneysel amaçlarla kullanılır.
PREVIEW Bu aşamadaki modeller, deneysel modellerden daha olgunlaşmıştır.
STABLE Bu aşamadaki modeller kararlı ve üretimde kullanıma hazır olarak 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ılmıştı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şturulmuş içerik.

finishReason enum (FinishReason)

İsteğe bağlı. 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 içinde yer alan tüm metinler için okuma bilgileriyle doldurulabilir. Bunlar, temel LLM'nin eğitim verisindeki telif hakkıyla korunan materyallerden"alıntılanan" pasajlardır.

tokenCount integer

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

groundingAttributions[] object (GroundingAttribution)

Yalnızca çıkış. Temellendirilmiş bir yanıta katkıda bulunan kaynakların atıf bilgileri.

Bu alan, GenerateAnswer görüşmeleri için doldurulur.

groundingMetadata object (GroundingMetadata)

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

Bu alan, GenerateContent görüşmeleri için doldurulur.

avgLogprobs number

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

logprobsResult object (LogprobsResult)

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

urlContextMetadata object (UrlContextMetadata)

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

index integer

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

finishMessage string

İsteğe bağlı. Yalnızca çıkış. Modelin jeton oluşturmayı durdurma nedenini ayrıntılı olarak 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)
  },
  "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 durdurma sırası.
MAX_TOKENS İstekle belirtilen maksimum jeton sayısına ulaşıldı.
SAFETY Yanıt adayı içeriği, güvenlik nedeniyle işaretlendi.
RECITATION Yanıt adayı içeriği, okuma nedenleriyle işaretlendi.
LANGUAGE Yanıt adayı içeriği, desteklenmeyen bir dil kullandığı için işaretlendi.
OTHER Bilinmeyen neden.
BLOCKLIST İçerikte yasaklanmış terimler bulunduğundan jeton oluşturma işlemi durduruldu.
PROHIBITED_CONTENT Yasaklanmış içerik barındırabileceği için jeton oluşturma işlemi durduruldu.
SPII İçerik, hassas kimlik bilgileri (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 resimlerde güvenlik ihlalleri olduğu için jeton oluşturma işlemi durduruldu.
IMAGE_PROHIBITED_CONTENT Oluşturulan resimlerde yasaklanmış başka içerikler olduğu için resim oluşturma işlemi durduruldu.
IMAGE_OTHER Resim oluşturma işlemi, diğer çeşitli sorunlar nedeniyle durduruldu.
NO_IMAGE Modelin resim oluşturması bekleniyordu ancak resim oluşturulmadı.
IMAGE_RECITATION Okuma nedeniyle görüntü üretme 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ütmeyi sonlandırdı.
MISSING_THOUGHT_SIGNATURE İstek, en az bir düşünce imzası eksik.
MALFORMED_RESPONSE Yanıt yanlış biçimlendirildiği için işlem tamamlandı.
ESCALATION İstek, bir eskalasyon kuralı tarafından filtrelendi.

GroundingAttribution

Bir yanıta katkıda bulunan kaynağın atfı.

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 kaynak içeriği temellendirme.

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
source aşağıdakilerden yalnızca biri olabilir:
groundingPassage object (GroundingPassageId)

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

semanticRetrieverChunk object (SemanticRetrieverChunk)

Anlamsal alıcı aracılığıyla getirilen bir Chunk için tanımlayıcı.

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'nın GroundingPassage.id ile eşleşen pasajın kimliği.

partIndex integer

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

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

SemanticRetrieverChunk

Chunk, SemanticRetrieverConfig kullanılarak GenerateAnswerRequest içinde belirtilen Semantik Alıcı aracılığıyla alınan öğenin tanımlayıcısı.

Alanlar
source string

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

chunk string

Yalnızca çıkış. Atfedilen metni 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 temellendirme kaynağından alınan destekleyici referansların listesi. Yayın 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 arama sorguları

imageSearchQueries[] string

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

searchEntryPoint object (SearchEntryPoint)

İsteğe bağlı. Aşağıdaki web aramaları için Google arama girişi.

retrievalMetadata object (RetrievalMetadata)

Temellendirme akışında almayla ilgili meta veriler.

googleMapsWidgetContextToken string

İsteğe bağlı. İçerik verilerini oluşturmak için PlacesContextElement widget'ı ile 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ı. Web sayfasına veya uygulama web görünümüne yerleştirilebilen web içeriği snippet'i.

sdkBlob string (bytes format)

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

Base64 kodlu bir dize.

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

GroundingChunk

GroundingChunk, modelin yanıtını temellendiren destekleyici kanıt segmentini temsil eder. Web'den bir parça, dosyadan alınan bir bağlam veya Google Haritalar'daki bilgiler olabilir.

Alanlar
chunk_type Union type
Parça türü. chunk_type aşağıdakilerden yalnızca biri olabilir:
web object (Web)

Web'den temellendirme parçası.

image object (Image)

İsteğe bağlı. Görsel aramadaki temellendirme parçası.

retrievedContext object (RetrievedContext)

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

maps object (Maps)

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

JSON gösterimi
{

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

Web

Web'den alınan bölüm.

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 aramadaki parçalar.

Alanlar
sourceUri string

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

imageUri string

Resim öğesi URL'si.

title string

Resmin alındığı web sayfasının başlığı.

domain string

Resmin 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 alınan parça.

Alanlar
customMetadata[] object (CustomMetadata)

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

uri string

İsteğe bağlı. Anlamsal alma belgesinin URI referansı.

title string

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

text string

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

fileSearchStore string

İsteğe bağlı. Belgeyi içeren FileSearchStore'nın adı. Örnek: fileSearchStores/123

pageNumber integer

İsteğe bağlı. Alınan bağlamın sayfa numarası (varsa).

mediaId string

İsteğe bağlı. Çok formatlı dosya arama sonuçları için medya blob 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

GroundingFact hakkında kullanıcı tarafından sağlanan meta veriler.

Alanlar
key string

Meta verilerin anahtarı.

value Union type
Meta verilerin değeri. Dize, dize listesi veya sayı olabilir. value aşağıdakilerden yalnızca biri olabilir:
stringValue string

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

stringListValue object (StringList)

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

numericValue number

İsteğe bağlı. Meta verilerin sayısal değeri. Bu değerin beklenen aralığı, kullanılan key bağlıdır.

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ı. Bir Haritalar parçası tek bir yere karşılık gelir.

Alanlar
uri string

Yerin URI referansı.

title string

Yerin başlığı.

text string

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

placeId string

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

placeAnswerSources object (PlaceAnswerSources)

Google Haritalar'da belirli bir yerin özellikleri hakkında yanıtlar veren 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 veren kaynakların derlenmesi. Her PlaceAnswerSources mesajı, Google Haritalar'daki belirli bir yere karşılık gelir. Google Haritalar aracı, yerin özellikleri (ör. "Foo Bar'da kablosuz internet var mı?" veya "Foo Bar'a tekerlekli sandalyeyle erişilebilir mi?") ile ilgili soruları yanıtlamak için bu kaynakları kullanır. Şu anda yalnızca kaynak olarak inceleme snippet'lerini destekliyoruz.

Alanlar
reviewSnippets[] object (ReviewSnippet)

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

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

ReviewSnippet

Google Haritalar'da belirli bir yerin özellikleri hakkındaki 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 bir 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ı. İddiayla ilişkili alıntıları belirten bir indeks listesi (response.candidate.grounding_metadata içindeki "grounding_chunk"a göre). Örneğin, [1,3,4], grounding_chunk[1], grounding_chunk[3], grounding_chunk[4] öğelerinin iddiayla ilişkilendirilen alınan içerik olduğu anlamına gelir. Yanıt akış halinde ise groundingChunkIndices, tüm yanıtlardaki dizinleri ifade eder. Tüm yanıtlardaki temellendirme parçalarını (aynı sırayı koruyarak) biriktirmek istemcinin sorumluluğundadır.

confidenceScores[] number

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

renderedParts[] integer

Yalnızca çıkış. Adayın içeriğinin parts alanındaki dizinler. Bu dizinler, oluşturulan hangi bölümlerin 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

Bir Bölüm nesnesinin üst İçerik nesnesi içindeki dizini.

startIndex integer

Verilen bölümdeki başlangıç dizini (bayt cinsinden). Bölümün başlangıcından itibaren sıfırdan başlayan, dahil edici ofset.

endIndex integer

Belirtilen Bölüm'deki bayt cinsinden ölçülen bitiş dizini. Bölümün başlangıcından itibaren, sıfırdan başlayarak hariç tutulan uzaklık.

text string

Yanıtın segmentine karşılık gelen metin.

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

RetrievalMetadata

Temellendirme akışında almayla ilgili meta veriler.

Alanlar
googleSearchDynamicRetrievalScore number

İsteğe bağlı. Google Arama'daki bilgilerin isteme yanıt vermeye ne kadar yardımcı olabileceğini gösteren puan. Puan [0, 1] aralığındadır. 0 en düşük olasılığı, 1 ise en yüksek olasılığı ifade eder. Bu puan yalnızca Google Arama'da temellendirme 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 içinde olabilir veya olmayabilir.

logProbabilitySum number

Tüm jetonların 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 günlük olasılıklara sahip adaylar.

Alanlar
candidates[] object (Candidate)

Log 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 dizesi 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'nin alınmasıyla ilgili 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 alma işlemi başarılı.
URL_RETRIEVAL_STATUS_ERROR URL alma işlemi hata nedeniyle başarısız oldu.
URL_RETRIEVAL_STATUS_PAYWALL İçerik ödeme duvarının arkasında olduğundan URL alma işlemi başarısız oldu.
URL_RETRIEVAL_STATUS_UNSAFE İçerik güvenli olmadığı için URL alma işlemi başarısız oldu.

CitationMetadata

Bir içerik için kaynak ilişkilendirmelerinin toplandığı yer.

Alanlar
citationSources[] object (CitationSource)

Belirli bir yanıtla ilgili kaynak alıntıları.

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

CitationSource

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

Alanlar
startIndex integer

İsteğe bağlı. Bu kaynağa atfedilen yanıt segmentinin başlangıcı.

Dizin, bayt cinsinden ölçülen segmentin başlangıcını gösterir.

endIndex integer

İsteğe bağlı. Atfedilen segmentin bitişi (hariç).

uri string

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

license string

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

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

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

HarmCategory

Derecelendirmenin kategorisi.

Bu kategoriler, geliştiricilerin düzenlemek 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 veya zararlı yorumlar.
HARM_CATEGORY_TOXICITY PaLM: Kaba, saygısız veya küfürlü içerik
HARM_CATEGORY_VIOLENCE PaLM: Bir bireye veya gruba karşı şiddeti tasvir eden senaryoları ya da kanlı sahnelerin genel açıklamalarını tanımlar.
HARM_CATEGORY_SEXUAL PaLM: Cinsel eylemlere veya diğer müstehcen içeriklere atıfta bulunuyor.
HARM_CATEGORY_MEDICAL PaLM: Kontrol edilmemiş tıbbi tavsiyeleri teşvik ediyor.
HARM_CATEGORY_DANGEROUS PaLM: Zararlı eylemleri teşvik eden, kolaylaştıran veya destekleyen tehlikeli içerikler.
HARM_CATEGORY_HARASSMENT Gemini: Taciz edici içerikler.
HARM_CATEGORY_HATE_SPEECH Gemini - Nefret söylemi ve içerik.
HARM_CATEGORY_SEXUALLY_EXPLICIT Gemini: Müstehcen içerik
HARM_CATEGORY_DANGEROUS_CONTENT Gemini - Tehlikeli içerik
HARM_CATEGORY_CIVIC_INTEGRITY

Gemini: Sivil bütünlüğe zarar vermek için kullanılabilecek içerikler. DEPRECATED: use enableEnhancedCivicAnswers instead.

HARM_CATEGORY_JAILBREAK Gemini: Modelin güvenlik kurallarını atlatmaya veya baltalamaya yönelik istemler (jailbreak girişimleri).

ModalityTokenCount

Tek bir format için jeton sayma bilgilerini gösterir.

Alanlar
modality enum (Modality)

Bu jeton sayısıyla ilişkili yöntem.

tokenCount integer

Jeton sayısı.

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

Yöntem

İçerik Bölümü modu

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çeriğin zarar kategorisini ve bu kategorideki zarar olasılığı düzeyini içerir. İçerikler, çeşitli zarar kategorilerinde güvenlik açısından sınıflandırılır ve zarar sınıflandırması olasılığı burada yer alır.

Alanlar
category enum (HarmCategory)

Zorunlu. Bu puanın kategorisi.

probability enum (HarmProbability)

Zorunlu. Bu içeriğin zararlı olma 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 zararlılık düzeyini göstermez.

Sıralamalar
HARM_PROBABILITY_UNSPECIFIED Olasılık belirtilmemiş.
NEGLIGIBLE İçeriğin güvenli olmama ihtimali çok düşüktür.
LOW İçeriğin güvenli olmama olasılığı düşüktür.
MEDIUM İçeriğin güvenli olmama olasılığı orta seviyededir.
HIGH İçeriğin güvenli olmama olasılığı yüksekse

SafetySetting

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

Bir kategori için güvenlik ayarının geçirilmesi, içeriğin engellenmesine izin verilen olasılığı değiştirir.

Alanlar
category enum (HarmCategory)

Zorunlu. Bu ayarın kategorisi.

threshold enum (HarmBlockThreshold)

Zorunlu. Zararın engelleneceğ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 ötesinde engelleme

Sıralamalar
HARM_BLOCK_THRESHOLD_UNSPECIFIED Eşik belirtilmemiş.
BLOCK_LOW_AND_ABOVE NEGLIGIBLE (ÖNEMSİZ) derecesine sahip içeriklere izin verilir.
BLOCK_MEDIUM_AND_ABOVE ÖNEMSİZ ve DÜŞÜK düzeyde olan içeriklere izin verilir.
BLOCK_ONLY_HIGH NEGLIGIBLE (ÖNEMSİZ), LOW (DÜŞÜK) ve MEDIUM (ORTA) düzeyindeki içeriklere izin verilir.
BLOCK_NONE Tüm içeriğe izin verilir.
OFF Güvenlik filtresini devre dışı bırakın.

ServiceTier

İsteğin hizmet katmanı.

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

İçerik

Bir iletinin çok parçalı içeriğini içeren temel yapılandırılmış veri türü.

Bir Content, Content üreticisini belirten bir role alanı ve ileti dönüşünün içeriğini içeren çok parçalı verileri içeren bir parts alanı içerir.

Alanlar
parts[] object (Part)

Tek bir iletiyi oluşturan Parts sıralı. Bölümlerin MIME türleri farklı olabilir.

role string

İsteğe bağlı. İçeriğin üreticisi. "user" veya "model" olmalıdır.

Çok aşamalı etkileşim görüşmeleri için ayarlanması yararlıdır. Aksi takdirde boş bırakılabilir veya ayarlanmayabilir.

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

Bölüm

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

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

Part alanı, inlineData alanı ham baytlarla doldurulmuşsa 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ı. Parçanın model tarafından üretilip üretilmediğini gösterir.

thoughtSignature string (bytes format)

İsteğe bağlı. Düşünce için opak bir imza. Böylece, sonraki isteklerde yeniden kullanılabilir.

Base64 kodlu bir dize.

partMetadata object (Struct format)

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

mediaResolution object (MediaResolution)

İsteğe bağlı. Giriş medyası için medya çözünürlüğü.

mediaProcessing enum (MediaProcessing)

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

data Union type
data aşağıdakilerden yalnızca biri olabilir:
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ğerleriyle birlikte FunctionDeclaration.name'yi temsil eden bir dize içeren tahmini bir FunctionCall.

functionResponse object (FunctionResponse)

FunctionCall işlevinin sonuç çıkışı, 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çerir. Bu çı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, modelin 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şleminden elde edilen çıkış. Bu alan, istemci tarafından ilgili ToolCall yürütme sonuçlarıyla doldurulur.

metadata Union type
Verilerin ek ön işlenmesini kontrol eder. metadata aşağıdakilerden yalnızca biri olabilir:
videoMetadata object (VideoMetadata)

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

JSON gösterimi
{
  "thought": boolean,
  "thoughtSignature": string,
  "partMetadata": {
    object
  },
  "mediaResolution": {
    object (MediaResolution)
  },
  "mediaProcessing": enum (MediaProcessing),

  // 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. "Metin" alanı kullanılmalıdır.

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 Ek bağlam için Desteklenen dosya biçimleri başlıklı makaleyi inceleyin. //

data string (bytes format)

Medya biçimleri için ham baytlar.

Base64 kodlu bir dize.

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

FunctionCall

Modelden döndürülen ve bağımsız değişkenler ile değerleriyle birlikte FunctionDeclaration.name'yi temsil eden bir dize içeren tahmini bir FunctionCall.

Alanlar
id string

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

name string

Zorunlu. Çağrılacak işlevin adı. a-z, A-Z, 0-9 olmalı veya alt çizgi ve tire içermeli ve maksimum uzunluğu 128 olmalıdır.

args object (Struct format)

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

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

FunctionResponse

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

Alanlar
id string

İsteğe bağlı. 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 eşleşmesi için istemci tarafından doldurulur id.

name string

Zorunlu. Çağrılacak işlevin adı. a-z, A-Z, 0-9 olmalı veya alt çizgi ve tire içermeli ve maksimum uzunluğu 128 olmalıdır.

response object (Struct format)

Zorunlu. JSON nesnesi biçimindeki işlev yanıtı. Arayanlar, işlevin çıktısı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ülemezse yanıt, hata ayrıntılarını modele döndürmek için bir "error" anahtarı içerebilir.

Multimedya, değeri multimedyayı barındıran bir FunctionResponsePart öğesinin inlineData.display_name 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ı. İşlev yanıtını oluşturan sıralı Parts. Bölümlerin farklı IANA MIME türleri olabilir.

willContinue boolean

İsteğe bağlı. İş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ı 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ış olarak ayarlanırsa gelecekteki yanıtlar dikkate alınmaz. İşlev çağrısının tamamlandığını belirtmek için response ile willContinue=False boş döndürmeye izin verilir. Bu durum, model oluşturma işlemini yine de tetikleyebilir. Üretimi tetiklememek ve işlev çağrısını tamamlamak için scheduling değerini SILENT olarak da ayarlayın.

scheduling enum (Scheduling)

İsteğe bağlı. Yanıtın görüşmede nasıl planlanacağını belirtir. Yalnızca NON_BLOCKING işlev çağrıları için geçerlidir, aksi takdirde 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 iletisinin bir parçası olan medyayı içeren bir veri türü.

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

FunctionResponsePart alanı, inlineData alanı ham baytlarla doldurulmuşsa 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. data aşağıdakilerden yalnızca biri olabilir:
inlineData object (FunctionResponseBlob)

Satır içi medya baytları.

JSON gösterimi
{

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

FunctionResponseBlob

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

Metin, ham bayt olarak gönderilmemelidir. "FunctionResponse.response" alanı kullanılmalıdır.

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 kodlu bir dize.

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

Planlama

Yanıtın görüşmede nasıl planlanacağını belirtir.

Sıralamalar
SCHEDULING_UNSPECIFIED Bu değer kullanılmıyor.
SILENT Yalnızca sonucu görüşme bağlamına ekleyin, üretimi kesmeyin veya tetiklemeyin.
WHEN_IDLE Sonucu görüşme bağlamına ekleyin ve devam eden üretimi kesintiye uğratmadan çıkış oluşturma istemi gönderin.
INTERRUPT Sonucu sohbet bağlamına ekleyin, devam eden üretimi durdurun ve çıkış oluşturma istemi verin.

FileData

URI tabanlı veriler.

Alanlar
mimeType string

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

fileUri string

Zorunlu. URI.

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

ExecutableCode

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

Yalnızca CodeExecution aracı kullanılırken oluşturulur. Bu araçta kod otomatik olarak yürütülür ve karşılık gelen bir CodeExecutionResult de oluşturulur.

Alanlar
id string

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

language enum (Language)

Zorunlu. code 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 numpy ve simpy'nin kullanılabildiği Python >= 3.10 Varsayılan dil Python'dur.

CodeExecutionResult

ExecutableCode yürütme sonucu.

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

Alanlar
id string

İsteğe bağlı. 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ı. 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 numaralandırılması.

Sıralamalar
OUTCOME_UNSPECIFIED Durum belirtilmemiş. 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 bir output mevcut olabilir veya olmayabilir.

ToolCall

Modelden tahmin edilen bir sunucu taraflı ToolCall döndürüldü. Bu mesaj, modelin çağırmak istediği bir araçla ilgili bilgiler içeriyor. İstemcinin bu ToolCall'yı yürütmesi beklenmez. Bunun yerine, istemci bu ToolCall öğesini, karşılık gelen ToolResponse ile birlikte Content mesajındaki sonraki dönüşte API'ye geri iletmelidir.

Alanlar
id string

İsteğe bağlı. 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ı. Ç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ı. 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şlenir.
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şleminden elde edilen çıkış. Bu mesaj, modelden ToolCall tarafından başlatılan bir araç çağrısının sonuçlarını içerir. İstemci, bu ToolResponse değerini Content mesajı içinde sonraki dönüşte API'ye geri iletmelidir. Bu iletme işleminde, ilgili ToolCall değeri de yer almalıdır.

Alanlar
id string

İsteğe bağlı. 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ü, ilgili ToolCall içindeki toolType ile eşleşir.

response object (Struct format)

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

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

VideoMetadata

Desteği sonlandırıldı: Bunun yerine GenerateContentRequest.processing_options kullanın. Meta veriler, giriş video içeriğini tanımlar.

Alanlar
startOffset string (Duration format)

İsteğe bağlı. 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ı. Videonun bitiş uzaklığı.

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

fps number

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

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

MediaResolution

Token oluşturma için medya çözünürlüğü.

Alanlar
value Union type
Medya çözünürlük düzeyi. value aşağıdakilerden yalnızca biri olabilir:
level enum (Level)

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

JSON gösterimi
{

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

Seviye

Medyanın çözünürlük düzeyi.

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

MediaProcessing

Model, anlamak için giriş medyasını nasıl işler?

Sıralamalar
MEDIA_PROCESSING_UNSPECIFIED Varsayılan. Modele özgü işleme (3.5 Pro+ -> AGENTIC, eski modeller -> STATIC) kullanılır.
STATIC Sabit kare hızıyla kare ayıklama. Tüm çerçeveler bağlam içinde yerleştirilir.
AGENTIC Modele dayalı dinamik gezinme. Çoğu kullanım alanı için önerilir.

Ortam

Bir aracı için yürütme ortamı.

Alanlar
id string

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

sources[] object (Source)

Ortama monte edilecek kaynaklar.

created string

Yalnızca çıkış. Ortamın oluşturulduğu zaman, ISO 8601 biçiminde (YYYY-AA-GGTss:dd:ssZ).

updated string

Yalnızca çıkış. Ortamın en 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 dosyaların sayısı (yalnızca çıkış).

sizeBytes string (int64 format)

Yalnızca çıkış. Bayt cinsinden ortam dosyalarının toplam boyutu (yalnızca çıkış).

network Union type
Ortam için ağ yapılandırması. network aşağıdakilerden yalnızca biri olabilir:
networkAllowlist object (EnvironmentNetworkEgressAllowlist)

Yalnızca belirli alanlara izin verin.

networkMode enum (NetworkMode)

Ağ çıkışı modu.

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 listesi dışındaki yapılandırmalar için ağ çıkışı modu.

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

Şema

Schema nesnesi, giriş ve çıkış veri türlerinin tanımlanmasına olanak tanır. Bu türler nesne olabileceği gibi temel türler 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ı. Verilerin biçimi. Herhangi bir değere izin verilir ancak çoğu özel bir işlevi tetiklemez.

title string

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

description string

İsteğe bağlı. Parametrenin kısa bir açıklaması. Kullanım örnekleri içerebilir. Parametre açıklaması Markdown olarak biçimlendirilebilir.

nullable boolean

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

enum[] string

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

maxItems string (int64 format)

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

minItems string (int64 format)

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

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

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

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

required[] string

İsteğe bağlı. Type.OBJECT için zorunlu özellikler.

minProperties string (int64 format)

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

maxProperties string (int64 format)

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

minLength string (int64 format)

İsteğe bağlı. TÜR DİZESİ İÇİN ŞEMA ALANLARI Tür.DİZE'nin minimum uzunluğu

maxLength string (int64 format)

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

pattern string

İsteğe bağlı. Bir dizeyi normal ifadeyle sınırlamak için Type.STRING kalıbı.

example value (Value format)

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

anyOf[] object (Schema)

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

propertyOrdering[] string

İsteğe bağlı. Özelliklerin sırası. Açık API 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ı. 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 buraya dahil edilmiş ve yok sayılmıştır.

items object (Schema)

İsteğe bağlı. Type.ARRAY türündeki öğelerin şeması.

minimum number

İsteğe bağlı. TÜR TAM SAYI VE SAYI İÇİN ŞEMA ALANLARI Türün minimum değeri.TAM SAYI ve Tür.SAYI

maximum number

İsteğe bağlı. Type.INTEGER ve Type.NUMBER değerinin maksimum değeri

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 tarafından tanımlanan OpenAPI veri türlerinin listesini içerir.

Sıralamalar
TYPE_UNSPECIFIED Belirtilmediğinden kullanılmamalıdır.
STRING Dize türü.
NUMBER Numara 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 işlemler dizisi gerçekleştirmek için harici sistemlerle etkileşime girmesini sağlayan bir kod parçasıdır.

Next ID: 17

Alanlar
functionDeclarations[] object (FunctionDeclaration)

İsteğe bağlı. İşlev çağrısı için kullanılabilecek, modele sunulan FunctionDeclarations listesi.

Model veya sistem işlevi yürütmüyor. 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 öğesini doldurarak bu işlevlerin bir alt kümesini çağırmaya karar verebilir. Bir sonraki görüşme adımında, bir sonraki model adımı için Content.role "işlev" oluşturma bağlamına sahip bir FunctionResponse yer alabilir.

googleSearchRetrieval object (GoogleSearchRetrieval)

İsteğe bağlı. Google Arama tarafından desteklenen bir alma aracı.

codeExecution object (CodeExecution)

İsteğe bağlı. Modelin, oluşturma işlemi kapsamında kod yürütmesini sağlar.

computerUse object (ComputerUse)

İsteğe bağlı. Modelin doğrudan bilgisayarla etkileşim kurmasını destekleyen araç. Etkinleştirilirse bilgisayar kullanımına özgü İşlev Bildirimleri otomatik olarak doldurulur.

urlContext object (UrlContext)

İsteğe bağlı. URL bağlamı almayı destekleyen araç.

mcpServers[] object (McpServer)

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

googleMaps object (GoogleMaps)

İsteğe bağlı. Modelin yanıtını, kullanıcının sorgusuyla ilgili coğrafi bağlamla temellendirmeye 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ış gösterimi. 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 gösterimidir.

Alanlar
name string

Zorunlu. İşlevin adı. a-z, A-Z, 0-9 olmalı veya alt çizgi, iki nokta, 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ı. İşlev davranışını belirtir. Şu anda yalnızca BidiGenerateContent yöntemi tarafından desteklenmektedir.

parameters object (Schema)

İsteğe bağlı. 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ı. İş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 aynı anda olamaz.

response object (Schema)

İsteğe bağlı. Bu işlevin çıkışını JSON şema biçiminde açıklar. Open API 3.03 Response Object'i 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ı. Bu işlevin çıkışını JSON şema biçiminde açıklar. Şema tarafından belirtilen değer, işlevin yanıt değeridir.

Bu alan response ile aynı anda olamaz.

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 olarak BLOCKING değerine ayarlanır.

Sıralamalar
UNSPECIFIED Bu değer kullanılmıyor.
BLOCKING Ayarlanırsa sistem, sohbete devam etmeden önce işlev yanıtını almayı bekler.
NON_BLOCKING Ayarlanı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 alma aracı.

Alanlar
dynamicRetrievalConfig object (DynamicRetrievalConfig)

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

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

DynamicRetrievalConfig

Dinamik almayı özelleştirme seçeneklerini açıklar.

Alanlar
mode enum (Mode)

Dinamik alma işleminde kullanılacak tahmin edicinin 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 alma işleminde kullanılacak tahmin edicinin modu.

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

CodeExecution

Bu türde alan yok.

Model tarafından oluşturulan kodu yürüten ve sonucu otomatik olarak modele döndüren araç.

Bu araç yalnızca kullanıldığında oluşturulan ExecutableCode ve CodeExecutionResult simgelerini de inceleyin.

GoogleSearch

Google Arama aracı türü. Modelde Google Arama'yı destekleyen araç. Google tarafından desteklenmektedir.

Alanlar
timeRangeFilter object (Interval)

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

searchTypes object (SearchTypes)

İsteğe bağlı. Etkinleştirilecek arama türleri grubu. 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ıç ve bitiş aynı olduğunda aralık boştur (herhangi bir zamanla eşleşmez). Hem başlangıç hem de bitiş belirtilmediğinde aralık herhangi bir zamana karşılık gelir.

Alanlar
startTime string (Timestamp format)

İsteğe bağlı. 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ürde alan yok.

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

ImageSearch

Bu türde alan yok.

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

ComputerUse

Bilgisayar Kullanımı aracı türü.

Alanlar
environment enum (Environment)

Zorunlu. Çalıştırılan ortam.

excludedPredefinedFunctions[] string

İsteğe bağlı. Varsayılan olarak, önceden tanımlanmış işlevler nihai model çağrısına dahil edilir. Bunlardan bazıları, otomatik olarak dahil edilmemek üzere açıkça hariç tutulabilir. Bu, iki amaca hizmet edebilir: 1. Daha kısıtlı veya 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ı. Bilgisayar kullanım isteğinde istem enjeksiyonu algılama kontrolünün etkinleştirilip etkinleştirilmeyeceği.

disabledSafetyPolicies[] enum (SafetyPolicy)

İsteğe bağlı. 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

Web tarayıcısı gibi çalıştırılan ortamı 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 ile ilgili güvenlik politikası.
DATA_MODIFICATION Veri değişikliğiyle ilgili güvenlik politikası.
LEGAL_TERMS_AND_AGREEMENTS Yasal şartlar ve sözleşmeler için güvenlik politikası.

UrlContext

Bu türde alan yok.

URL bağlamı almayı destekleyen araç.

FileSearch

Semantic Retrieval korpuslarından bilgi alan FileSearch aracı. Dosyalar, ImportFile API kullanılarak Semantic Retrieval korpuslarına aktarılır.

Alanlar
fileSearchStoreNames[] string

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

metadataFilter string

İsteğe bağlı. Anlamsal alma belgelerine ve parçalarına uygulanacak meta veri filtresi.

topK integer

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

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

McpServer

MCPServer, işlem gerçekleştirmek için model tarafından çağrılabilen bir sunucudur. MCP protokolünü uygulayan bir sunucudur. Sonraki kimlik: 6

Alanlar
name string

MCPServer'ın adı.

transport Union type
MCPServer'a bağlanmak için kullanılacak taşıma. transport aşağıdakilerden yalnızca biri olabilir:
streamableHttpTransport object (StreamableHttpTransport)

HTTP isteklerini ve yanıtlarını yayınlayabilen bir aktarım.

JSON gösterimi
{
  "name": string,

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

StreamableHttpTransport

HTTP isteklerini ve yanıtlarını yayınlayabilen bir aktarım. Sonraki kimlik: 6

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 başlıkları, 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

İletim kapatıldığı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ı. Yanıttaki GroundingMetadata'da widget bağlamı jetonunun döndürülüp döndürülmeyeceği. Geliştiriciler, modelin yanıtta referans verdiği yerlerle ilgili coğrafi alan bağlamına sahip bir Google Haritalar widget'ı oluşturmak için widget bağlam parçacığını kullanabilir.

JSON gösterimi
{
  "enableWidget": boolean
}

REST Kaynağı: auth_tokens

Kaynak: AuthToken

Kısa ömürlü bir 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ı. Yalnızca giriş. Değiştirilemez. İsteğe bağlı bir süre. Bu süre sonunda, sonuç jetonu kullanılırken BidiGenerateContent oturumlarındaki mesajlar reddedilir. (Gemini, bu sürenin ardından oturumu önceden kapatabilir.)

Ayarlanmazsa varsayılan olarak 30 dakika sonrası kullanılır. Ayarlanırsa bu değer, 20 saatten kısa bir süre 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".

newSessionExpireTime string (Timestamp format)

İsteğe bağlı. Yalnızca giriş. Değiştirilemez. Bu istekten elde edilen jetonun kullanıldığı yeni Live API oturumlarının reddedileceği süre.

Ayarlanmamışsa varsayılan olarak 60 saniye sonraki zamana ayarlanır. Ayarlanırsa bu değer, 20 saatten kısa bir süre 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".

fieldMask string (FieldMask format)

İsteğe bağlı. 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 is mevcutsa bu istekte geçerli BidiGenerateContentSetup mesajı tamamen bidiGenerateContentSetup öğesinden alınır. Live API bağlantısından gelen kurulum mesajı yoksayılır.

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

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

config Union type
Oluşan jeton için yönteme özgü yapılandırma. config aşağıdakilerden yalnızca biri olabilir:
bidiGenerateContentSetup object (BidiGenerateContentSetup)

İsteğe bağlı. Yalnızca giriş. Değiştirilemez. BidiGenerateContent'ya özel yapılandırma.

uses integer

İsteğe bağlı. Yalnızca giriş. Değiştirilemez. Jetonun kullanılabileceği sayı. Bu değer sıfırsa sınır uygulanmaz. Canlı API oturumuna devam etmek kullanım olarak sayılmaz. Belirtilmemişse 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

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

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

Alanlar
model string

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

Biçim: models/{model}

generationConfig object (GenerationConfig)

İsteğe bağlı. 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ı. Kullanıcı, model için sistem talimatları sağladı.

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

tools[] object (Tool)

İsteğe bağlı. 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 işlemler dizisi 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ı. Gerçek zamanlı girişin işlenmesini yapılandırır.

sessionResumption object (SessionResumptionConfig)

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

Dahil edilirse sunucu SessionResumptionUpdate ileti gönderir.

contextWindowCompression object (ContextWindowCompressionConfig)

İsteğe bağlı. 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ı. Ayarlanırsa ses girişinin transkripsiyonunu etkinleştirir. Metne dönüştürme, yapılandırılmışsa giriş sesinin diliyle eşleşir.

outputAudioTranscription object (AudioTranscriptionConfig)

İsteğe bağlı. Ayarlanırsa modelin ses çıkışının transkripsiyonunu etkinleştirir. Transkript, yapılandırılmışsa çıktı sesi için belirtilen dil koduyla eşleşir.

historyConfig object (HistoryConfig)

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

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

GenerationConfig

Model oluşturma ve çıkışlarla ilgili yapılandırma seçenekleri. Her modelde tüm parametreler yapılandırılamaz.

Alanlar
stopSequences[] string

İsteğe bağlı. Çıkış oluşturmayı durduracak karakter dizileri kümesi (en fazla 5). Belirtilirse API, stop_sequence karakterinin ilk görünümünde durur. Durdurma sırası, yanıtın bir parçası olarak dahil edilmez.

responseMimeType string

İsteğe bağlı. Oluşturulan aday metnin MIME türü. Desteklenen MIME türleri şunlardır: 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 dokümanlara bakın.

responseSchema
(deprecated)
object (Schema)

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

Ayarlanırsa uyumlu bir responseMimeType 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.

_responseJsonSchema
(deprecated)
value (Value format)

İsteğe bağlı. Oluşturulan yanıtın çıkış şeması. Bu, responseSchema için bir alternatiftir ve JSON şemasını kabul eder.

Ayarlandıysa responseSchema atlanmalıdır ancak responseMimeType gereklidir.

Tam JSON şeması gönderilebilir ancak 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 ölçüde açılır ve bu nedenle yalnızca zorunlu olmayan özelliklerde kullanılabilir. (Boş değer atanabilir özellikler yeterli değildir.) Bir alt şemada $ref ayarlanırsa $ ile başlayanlar dışında başka özellik ayarlanamaz.

responseJsonSchema value (Value format)

İsteğe bağlı. Dahili bir ayrıntı. Bu alan yerine responseJsonSchema kullanın.

responseModalities[] enum (Modality)

İsteğe bağlı. Yanıtın istenen biçimleri. Modelin döndürebileceği ve yanıtta beklenmesi gereken modaliteler kümesini temsil eder. Bu, yanıtın biçimleriyle tam olarak eşleşir.

Bir model, desteklenen formatların birden fazla kombinasyonuna sahip olabilir. İstenen yöntemler 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öndürülecek oluşturulmuş yanıt sayısı. Ayarlanmamışsa varsayılan olarak 1 olur. Bu özelliğin önceki nesil modellerde (Gemini 1.0 ailesi) çalışmadığını lütfen unutmayın.

maxOutputTokens integer

İsteğe bağlı. 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ı. Çıkışın rastgeleliğini kontrol eder.

Not: Varsayılan değer modele göre değişir. getModel işlevinden döndürülen Model öğesinin Model.temperature özelliğine bakın.

Değerler [0.0, 2.0] arasında değişebilir.

topP number

İsteğe bağlı. Örnekleme sırasında dikkate alınacak jetonların maksimum kümülatif olasılığı.

Model, birleştirilmiş Top-k ve Top-p (çekirdek) örnekleme kullanır.

Jetonlar, yalnızca en olası jetonların dikkate alınması için 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ırlar. Nucleus örnekleme ise jeton sayısını kümülatif olasılığa göre sınırlar.

Not: Varsayılan değer Model göre değişir ve getModel işlevinden döndürülen Model.top_p özelliğiyle belirtilir. Boş bir topK özelliği, modelin top-k örnekleme uygulamadığını ve isteklerde topK ayarlanmasına izin vermediğini gösterir.

topK integer

İsteğe bağlı. Örnekleme sırasında dikkate alınacak maksimum jeton sayısı.

Gemini modelleri, Top-p (çekirdek) örnekleme veya Top-k ile çekirdek örneklemenin bir kombinasyonunu kullanır. Top-k örnekleme, topK en olası jeton kümesini dikkate alır. Çekirdek örnekleme ile çalışan modellerde topK ayarına izin verilmez.

Not: Varsayılan değer Model göre değişir ve getModel işlevinden döndürülen Model.top_p özelliğiyle belirtilir. Boş bir topK özelliği, modelin top-k örnekleme uygulamadığını ve isteklerde topK ayarlanmasına izin vermediğini gösterir.

seed integer

İsteğe bağlı. Kod çözme işleminde kullanılan başlangıç değeri. Ayarlanmazsa istekte rastgele oluşturulmuş bir başlangıç değeri kullanılır.

presencePenalty number

İsteğe bağlı. Jeton yanıtta daha önce görülmüşse sonraki jetonun logprobs'ine varlık cezası uygulanır.

Bu ceza, ikili (açık/kapalı) bir cezadır ve jetonun (ilk kullanımdan sonra) kaç kez kullanıldığına bağlı değildir. Her kullanımla artan bir ceza için frequencyPenalty kullanın.

Pozitif ceza, yanıtta daha önce kullanılmış olan jetonların kullanılmasını engelleyerek kelime dağarcığını artırır.

Negatif ceza, yanıtta daha önce kullanılmış olan jetonların kullanılmasını teşvik ederek kelime dağarcığını azaltır.

frequencyPenalty number

İsteğe bağlı. Sonraki jetonun logprobs'una uygulanan sıklık cezası, her jetonun yanıtta şimdiye kadar görülme sayısıyla çarpılır.

Pozitif ceza, jetonun kullanılma sayısıyla orantılı olarak, daha önce kullanılmış jetonların kullanılmasını engeller: Bir jeton ne kadar çok kullanılırsa modelin bu jetonu tekrar kullanması o kadar zorlaşır ve yanıtların kelime dağarcığı artar.

Dikkat: Negatif ceza, modeli, parçanın kullanıldığı sayıyla orantılı olarak parçaları yeniden kullanmaya 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 ortak bir jetonu tekrarlamaya başlamasına neden olur.

responseLogprobs boolean

İsteğe bağlı. Doğruysa logprobs sonuçlarını yanıta aktarın.

logprobs integer

İsteğe bağlı. Yalnızca responseLogprobs=True ise geçerlidir. Bu, Candidate.logprobs_result içindeki her kod çözme adımında döndürülecek, seçilen aday da dahil olmak üzere en iyi logprobs sayısını ayarlar. Sayı [0, 20] aralığında olmalıdır.

enableEnhancedCivicAnswers boolean

İsteğe bağlı. Gelişmiş vatandaşlık yanıtlarını etkinleştirir. Bu özellik tüm modellerde kullanılamayabilir.

speechConfig object (SpeechConfig)

İsteğe bağlı. Konuşma oluşturma yapılandırması.

thinkingConfig object (ThinkingConfig)

İsteğe bağlı. Düşünme özellikleri için yapılandırma. Bu alan, düşünmeyi desteklemeyen modeller için ayarlanırsa hata döndürülür.

imageConfig object (ImageConfig)

İsteğe bağlı. Görüntü üretme için yapılandırma. Bu alan, bu yapılandırma seçeneklerini desteklemeyen modeller için ayarlanırsa hata döndürülür.

mediaResolution enum (MediaResolution)

İsteğe bağlı. Belirtilmişse belirtilen medya çözünürlüğü kullanılır.

enableAffectiveDialog boolean

İsteğe bağlı. Etkinleştirilirse model, duyguları algılar ve yanıtlarını buna göre uyarlar.

responseFormat object (ResponseFormatConfig)

İsteğe bağlı. Yanıt çıkış biçimiyle ilgili yapılandırma. Düz bir yapıda, format başına (metin, ses, resim) çıkış yapılandırması belirtilmesine olanak tanır.

translationConfig object (TranslationConfig)

İsteğe bağlı. Çeviri yapılandırması.

audioTranscriptionConfig object (AudioTranscriptionConfig)

İsteğe bağlı. Ses transkripsiyonu (konuşma tanıma) için yapılandırma.

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 biçimleri.

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 üretimi ve metne dönüştürme için yapılandırma.

Alanlar
voiceConfig object (VoiceConfig)

Tek sesli çıkış durumundaki yapılandırma.

multiSpeakerVoiceConfig object (MultiSpeakerVoiceConfig)

İsteğe bağlı. Çok hoparlörlü kurulumun yapılandırması. Bu alan, voiceConfig alanı ile aynı anda olamaz.

languageCode string

İsteğe bağlı. Kullanıcının uygulamayı kullanacak şekilde 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. voice_config aşağıdakilerden yalnızca biri olabilir:
prebuiltVoiceConfig object (PrebuiltVoiceConfig)

Kullanılacak hazır sesin yapılandırması.

JSON gösterimi
{

  // voice_config
  "prebuiltVoiceConfig": {
    object (PrebuiltVoiceConfig)
  }
  // Union type
}

PrebuiltVoiceConfig

Kullanılacak hazır hoparlörün yapılandırması.

Alanlar
voiceName string

Kullanılacak hazır sesin adı.

JSON gösterimi
{
  "voiceName": string
}

MultiSpeakerVoiceConfig

Çok hoparlörlü kurulumun yapılandırması.

Alanlar
speakerVoiceConfigs[] object (SpeakerVoiceConfig)

Zorunlu. Etkinleştirilmiş tüm hoparlör sesleri.

JSON gösterimi
{
  "speakerVoiceConfigs": [
    {
      object (SpeakerVoiceConfig)
    }
  ]
}

SpeakerVoiceConfig

Çok hoparlörlü kurulumda tek bir hoparlörün yapılandırması.

Alanlar
speaker string

Zorunlu. Kullanılacak hoparlörü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üşünme özellikleri için yapılandırma.

Alanlar
includeThoughts boolean

Düşüncelerin yanıta dahil edilip edilmeyeceğini gösterir. Doğruysa 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ı. Modelin yanıt oluşturmadan önce gerçekleştireceği dahili akıl yürütme sürecinin maksimum derinliğini kontrol eder. Varsayılan değer modele bağlıdır. Daha ayrıntılı bilgi için Düşünce seviyeleri kılavuzuna bakın. Gemini 3 veya sonraki modeller için önerilir. Daha eski modellerle kullanıldığında hata oluşur.

JSON gösterimi
{
  "includeThoughts": boolean,
  "thinkingBudget": integer,
  "thinkingLevel": enum (ThinkingLevel)
}

ThinkingLevel

Kullanıcının, tam sayı bütçe yerine enum kullanarak ne kadar düşünmesi gerektiğini belirtmesine izin verin.

Sıralamalar
THINKING_LEVEL_UNSPECIFIED Varsayılan değer.
MINIMAL Çok az düşünme veya hiç düşünme
LOW Düşük düşünme seviyesi.
MEDIUM Orta düzeyde düşünme.
HIGH Yüksek düşünme düzeyi.

ImageConfig

Görüntü üretme özelliklerinin yapılandırması.

Alanlar
aspectRatio string

İsteğe bağlı. Oluşturulacak resmin 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 resimlere göre varsayılan bir en boy oranı seçer.

imageSize string

İsteğe bağlı. Oluşturulan resimlerin boyutunu belirtir. Desteklenen değerler: 512, 1K, 2K, 4K. Belirtilmezse model, varsayılan değer olan 1K'yı kullanır.

JSON gösterimi
{
  "aspectRatio": string,
  "imageSize": string
}

MediaResolution

Giriş medyası için medya çözünürlüğü.

Sıralamalar
MEDIA_RESOLUTION_UNSPECIFIED Medya çözünürlüğü ayarlanmamış.
MEDIA_RESOLUTION_LOW Medya çözünürlüğü düşük (64 jeton) olarak ayarlanmış.
MEDIA_RESOLUTION_MEDIUM Medya çözünürlüğü orta (256 jeton) olarak ayarlanır.
MEDIA_RESOLUTION_HIGH Medya çözünürlüğü yüksek olarak ayarlanmış (256 jetonla yeniden çerçevelenmiş yakınlaştırma).

ResponseFormatConfig

Yanıt çıkış biçimiyle ilgili yapılandırma. Bu, her isteğe bağlı alt alanın belirli bir çıkış biçimini yapılandırdığı düz bir nesnedir.

Alanlar
text object (TextResponseFormat)

İsteğe bağlı. Metin çıkışı biçimi yapılandırması.

audio object (AudioResponseFormat)

İsteğe bağlı. Ses çıkışı biçimi yapılandırması.

image object (ImageResponseFormat)

İsteğe bağlı. Görüntü çıkış biçimi yapılandırması.

JSON gösterimi
{
  "text": {
    object (TextResponseFormat)
  },
  "audio": {
    object (AudioResponseFormat)
  },
  "image": {
    object (ImageResponseFormat)
  }
}

TextResponseFormat

Metin çıkış biçimi için yapılandırma.

Alanlar
mimeType enum (MimeType)

İsteğe bağlı. Metin çıkışının MIME türü.

schema value (Value format)

İsteğe bağlı. Çı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ı. Ses çıkışının MIME türü.

delivery enum (Delivery)

İsteğe bağlı. Ses çıkışı için iletim modu.

sampleRate integer

İsteğe bağlı. Hz cinsinden örnekleme hızı.

bitRate integer

İsteğe bağlı. Saniye başına bit cinsinden bit hızı (bit/sn). 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 Raw 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 iletim 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 için yapılandırma.

Alanlar
mimeType enum (MimeType)

İsteğe bağlı. Resim çıkışının MIME türü.

delivery enum (Delivery)

İsteğe bağlı. Görüntü çıkışının iletim modu.

aspectRatio enum (AspectRatio)

İsteğe bağlı. Resim çıkışının en boy oranı.

imageSize enum (ImageSize)

İsteğe bağlı. 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

Görüntü çıkışı için iletim 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 1.000 piksel 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ı. Doğruysa model, hedef dil konuşulduğunda ses oluşturur. Yani girişi tekrarlar. Yanlış ise hedef dil için ses üretilmez.

JSON gösterimi
{
  "targetLanguageCode": string,
  "echoTargetLanguage": boolean
}

AudioTranscriptionConfig

Ses transkripsiyonu yapılandırması.

Alanlar
languageCodes[] string

İsteğe bağlı. Ses içeriğindeki diller hakkında ipuçları veren BCP-47 dil kodları. Belirtilmezse veya boş bırakılırsa varsayılan olarak otomatik dil algılama kullanılır.

adaptationPhrases[]
(deprecated)
string

İsteğe bağlı. Konuşma uyarlaması için kullanılan ve ASR modelini bu terimleri daha iyi tanıyacak şekilde yönlendiren ifadelerin listesi.

customVocabulary[] string

İsteğe bağlı. Konuşma tanıma modelinin belirli terimleri (ürün adları, özel isimler, jargon) tanımasını sağlamak için kullanılan özel kelime öbeği listesi.

wordTimestamp boolean

İsteğe bağlı. Kelime düzeyinde zaman damgası oluşturmayı yapılandırır.

diarization boolean

İsteğe bağlı. Konuşmacı ayırmayı yapılandırır.

language_config Union type
Desteği sonlandırıldı: Bunun yerine üst düzey language_codes kullanın. language_config aşağıdakilerden yalnızca biri olabilir:
languageAuto
(deprecated)
object (LanguageAuto)

İsteğe bağlı. Model, dili otomatik olarak algılar.

languageHints
(deprecated)
object (LanguageHints)

İsteğe bağlı. Sesin bir veya daha fazla dilini belirtir.

JSON gösterimi
{
  "languageCodes": [
    string
  ],
  "adaptationPhrases": [
    string
  ],
  "customVocabulary": [
    string
  ],
  "wordTimestamp": boolean,
  "diarization": boolean,

  // language_config
  "languageAuto": {
    object (LanguageAuto)
  },
  "languageHints": {
    object (LanguageHints)
  }
  // Union type
}

LanguageAuto

Bu türde alan yok.

Sesin dilinin otomatik olarak algılanması gerektiğini belirtir.

LanguageHints

Modelin, ses dosyasında bulunabilecek diller hakkında ipuçları almasını sağlar.

Alanlar
languageCodes[]
(deprecated)
string

Zorunlu. BCP-47 dil kodları.

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

RealtimeInputConfig

BidiGenerateContent'da gerçek zamanlı giriş davranışını yapılandırır.

Alanlar
automaticActivityDetection object (AutomaticActivityDetection)

İsteğe bağlı. Ayarlanmamışsa otomatik etkinlik algılama varsayılan olarak etkindir. Otomatik ses algılama devre dışı bırakılırsa istemcinin etkinlik sinyalleri göndermesi gerekir.

activityHandling enum (ActivityHandling)

İsteğe bağlı. Etkinliğin etkisini tanımlar.

turnCoverage enum (TurnCoverage)

İsteğe bağlı. Kullanıcının dönüşüne hangi girişin dahil edileceğini tanımlar.

JSON gösterimi
{
  "automaticActivityDetection": {
    object (AutomaticActivityDetection)
  },
  "activityHandling": enum (ActivityHandling),
  "turnCoverage": enum (TurnCoverage)
}

AutomaticActivityDetection

Etkinliğin otomatik olarak algılanmasını yapılandırır.

Alanlar
disabled boolean

İsteğe bağlı. 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ı. Konuşmanın algılanma olasılığını belirler.

prefixPaddingMs integer

İsteğe bağlı. Konuşma başlangıcı kaydedilmeden ö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ı. Algılanan konuşmanın ne kadar olası bir şekilde sona erdiğini belirler.

silenceDurationMs integer

İsteğe bağlı. Konuşma sonu işlenmeden önce tespit edilen konuşma dışı (ör. sessizlik) sürenin uzunluğu. Bu değer ne kadar büyük olursa kullanıcının etkinliği kesintiye uğramadan konuşma aralıkları o kadar uzun olabilir ancak bu durum 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 sıklıkta 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 ele almanın farklı yolları.

Sıralamalar
ACTIVITY_HANDLING_UNSPECIFIED Belirtilmemişse varsayılan davranış START_OF_ACTIVITY_INTERRUPTS olur.
START_OF_ACTIVITY_INTERRUPTS Doğruysa etkinliğin başlangıcı modelin yanıtını kesintiye uğratır (buna "araya girme" de denir). Modelin mevcut yanıtı, kesintinin olduğu anda 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 Belirtilmemişse modele göre varsayılan bir davranış seçilir. Örneğin, Gemini 2.5 için varsayılan değer TURN_INCLUDES_ONLY_ACTIVITY iken Gemini 3.1 ve sonraki sürümler için TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO'dir.
TURN_INCLUDES_ONLY_ACTIVITY Etkin olunmayan süreler (ör. ses akışında sessizlik) hariç olmak üzere, son dönüşten bu yana yapılan etkinlikleri içerir.
TURN_INCLUDES_ALL_INPUT Etkinlik dışı kalma (ör. ses akışında sessizlik) dahil olmak üzere son dönüşten bu yana girilen tüm anlık verileri içerir.
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO Ses etkinliğini ve son dönüşten bu yana tüm videoları içerir. Otomatik etkinlik algılama özelliği etkin olduğunda ses etkinliği, konuşma anlamına gelir ve sessizliği kapsamaz.

SessionResumptionConfig

Oturum devam ettirme yapılandırması.

Bu mesaj, oturum yapılandırmasına BidiGenerateContentSetup.session_resumption olarak dahil edilir. Yapılandırılmışsa sunucu SessionResumptionUpdate mesajları gönderir.

Alanlar
handle string

Önceki bir oturumun işleyeni. 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ırmasını etkinleştirir. Bu, modelin bağlam penceresini belirli bir uzunluğu aşmayacak şekilde yönetmeye yönelik bir mekanizmadır.

Alanlar
compression_mechanism Union type
Kullanılan bağlam penceresi sıkıştırma mekanizması. compression_mechanism aşağıdakilerden yalnızca biri olabilir:
slidingWindow object (SlidingWindow)

Kayar pencere mekanizması.

triggerTokens string (int64 format)

Bir tur çalıştırılmadan önce bağlam penceresi sıkıştırmasını tetiklemek için gereken jeton sayısı.

Bu, kalite ile gecikme arasında denge kurmak için kullanılabilir. Daha kısa bağlam pencereleri, model yanıtlarının daha hızlı olmasını sağlayabilir. Ancak tüm sıkıştırma işlemleri geçici olarak gecikme süresini artıracağından sık sık tetiklenmemelidir.

Ayarlanmamışsa varsayılan olarak modelin bağlam penceresi sınırının% 80'i kullanılır. Bu durumda, 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 atarak çalışır. Ortaya çıkan bağlam her zaman bir KULLANICI rolü dönüşünün başında başlar. Sistem talimatları ve BidiGenerateContentSetup.prefix_turns her zaman sonucun başında yer alır.

Alanlar
targetTokens string (int64 format)

Saklanacak hedef jeton sayısı. Varsayılan değer triggerTokens/2'dir.

Bağlam penceresinin bazı kısımlarının atılması, geçici olarak gecikmenin artmasına neden olur. Bu nedenle, sık sık sıkıştırma işlemlerinden kaçınmak için bu değer kalibre edilmelidir.

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ş iletilerinin değişimini yapılandırır.

Alanlar
initialHistoryInClientContent boolean

İsteğe bağlı. True (doğru) değerine ayarlanırsa sunucu setupComplete gönderildikten sonra bekler ve turnComplete değeri true olana kadar ilk olarak clientContent iletiyi 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

post 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ı. Yalnızca giriş. Değiştirilemez. İsteğe bağlı bir süre. Bu süre sonunda, sonuç jetonu kullanılırken BidiGenerateContent oturumlarındaki iletiler reddedilir. (Gemini, bu sürenin ardından oturumu önceden kapatabilir.)

Ayarlanmazsa varsayılan olarak 30 dakika sonrası kullanılır. Ayarlanırsa bu değer, 20 saatten kısa bir süre 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".

newSessionExpireTime string (Timestamp format)

İsteğe bağlı. Yalnızca giriş. Değiştirilemez. Bu istekten elde edilen jetonun kullanıldığı yeni Live API oturumlarının reddedileceği süre.

Ayarlanmamışsa varsayılan olarak 60 saniye sonraki zamana ayarlanır. Ayarlanırsa bu değer, 20 saatten kısa bir süre 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".

fieldMask string (FieldMask format)

İsteğe bağlı. 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 is mevcutsa bu istekte geçerli BidiGenerateContentSetup mesajı tamamen bidiGenerateContentSetup öğesinden alınır. Live API bağlantısından gelen kurulum mesajı yoksayılır.

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

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

config Union type
Oluşan jeton için yönteme özgü yapılandırma. config aşağıdakilerden yalnızca biri olabilir:
bidiGenerateContentSetup object (BidiGenerateContentSetup)

İsteğe bağlı. Yalnızca giriş. Değiştirilemez. BidiGenerateContent'ya özel yapılandırma.

uses integer

İsteğe bağlı. Yalnızca giriş. Değiştirilemez. Jetonun kullanılabileceği sayı. Bu değer sıfırsa sınır uygulanmaz. Canlı API oturumuna devam etmek kullanım olarak sayılmaz. Belirtilmemişse varsayılan değer 1'dir.

Yanıt metni

Başarılı olursa yanıt metni, yeni oluşturulan bir AuthToken örneğini içerir.