Caching

Bağlamı önbelleğe alma özelliği, önceden hesaplanmış giriş parçalarını kaydetmenize ve yeniden kullanmanıza olanak tanır. Örneğin, aynı medya dosyasıyla ilgili farklı sorular sorarken bu parçaları tekrar kullanabilirsiniz. Bu, kullanıma bağlı olarak maliyet ve hız açısından tasarruf sağlayabilir. Ayrıntılı bir giriş için Bağlam önbelleğe alma kılavuzuna bakın.

Yöntem: cachedContents.create

CachedContent kaynağını oluşturur.

Uç nokta

post https://generativelanguage.googleapis.com/v1beta/cachedContents

İstek içeriği

İstek metni, CachedContent öğesinin bir örneğini içerir.

Alanlar
contents[] object (Content)

İsteğe bağlıdır. Yalnızca giriş. Değişmez. Önbelleğe alınacak içerik.

tools[] object (Tool)

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

expiration Union type
Bu kaynağın süresinin ne zaman dolacağını belirtir. expiration yalnızca aşağıdakilerden biri olabilir:
expireTime string (Timestamp format)

Bu kaynağın geçerliliğinin sona erdiği zamanı gösteren UTC zaman damgası. Bu, girişte ne gönderildiğinden bağımsız olarak çıkışta her zaman sağlanır.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Yalnızca giriş. Bu kaynak için yeni TTL (yalnızca giriş).

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

displayName string

İsteğe bağlıdır. Değişmez. Önbelleğe alınmış içeriğin kullanıcı tarafından oluşturulan anlamlı görünen adı. Maksimum 128 Unicode karakter.

model string

Zorunlu. Değişmez. Önbelleğe alınmış içerik için kullanılacak Model adı. Biçim: models/{model}

systemInstruction object (Content)

İsteğe bağlıdır. Yalnızca giriş. Değişmez. Geliştirici tarafından ayarlanan sistem talimatı. Şu anda yalnızca metin desteklenmektedir.

toolConfig object (ToolConfig)

İsteğe bağlıdır. Yalnızca giriş. Değişmez. Araç yapılandırması Bu yapılandırma tüm araçlar için paylaşılır.

Örnek istek

Temel

Python

from google import genai
from google.genai import types

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

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-1.5-flash-001";

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-1.5-flash-001"
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)

kabuk

wget https://storage.googleapis.com/generativeai-downloads/data/a11.txt
echo '{
  "model": "models/gemini-1.5-flash-001",
  "contents":[
    {
      "parts":[
        {
          "inline_data": {
            "mime_type":"text/plain",
            "data": "'$(base64 $B64FLAGS a11.txt)'"
          }
        }
      ],
    "role": "user"
    }
  ],
  "systemInstruction": {
    "parts": [
      {
        "text": "You are an expert at analyzing transcripts."
      }
    ]
  },
  "ttl": "300s"
}' > request.json

curl -X POST "https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GEMINI_API_KEY" \
 -H 'Content-Type: application/json' \
 -d @request.json \
 > cache.json

CACHE_NAME=$(cat cache.json | grep '"name":' | cut -d '"' -f 4 | head -n 1)

curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-001:generateContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
      "contents": [
        {
          "parts":[{
            "text": "Please summarize this transcript"
          }],
          "role": "user"
        },
      ],
      "cachedContent": "'$CACHE_NAME'"
    }'

Gönderen adı

Python

from google import genai
from google.genai import types

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

cache = client.caches.create(
    model=model_name,
    config=types.CreateCachedContentConfig(
        contents=[document],
        system_instruction="You are an expert analyzing transcripts.",
    ),
)
cache_name = cache.name  # Save the name for later

# Later retrieve the cache
cache = client.caches.get(name=cache_name)
response = client.models.generate_content(
    model=model_name,
    contents="Find a lighthearted moment from 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-1.5-flash-001";

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.",
  },
});
const cacheName = cache.name; // Save the name for later

// Later retrieve the cache
const retrievedCache = await ai.caches.get({ name: cacheName });
const response = await ai.models.generateContent({
  model: modelName,
  contents: "Find a lighthearted moment from this transcript",
  config: { cachedContent: retrievedCache.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-1.5-flash-001"
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)
}
cacheName := cache.Name

// Later retrieve the cache.
cache, err = client.Caches.Get(ctx, cacheName, &genai.GetCachedContentConfig{})
if err != nil {
	log.Fatal(err)
}

response, err := client.Models.GenerateContent(
	ctx,
	modelName,
	genai.Text("Find a lighthearted moment from this transcript"),
	&genai.GenerateContentConfig{
		CachedContent: cache.Name,
	},
)
if err != nil {
	log.Fatal(err)
}
fmt.Println("Response from cache (create from name):")
printResponse(response)

Sohbetten

Python

from google import genai
from google.genai import types

client = genai.Client()
model_name = "gemini-1.5-flash-001"
system_instruction = "You are an expert analyzing transcripts."

# Create a chat session with the given system instruction.
chat = client.chats.create(
    model=model_name,
    config=types.GenerateContentConfig(system_instruction=system_instruction),
)
document = client.files.upload(file=media / "a11.txt")

response = chat.send_message(
    message=["Hi, could you summarize this transcript?", document]
)
print("\n\nmodel:  ", response.text)
response = chat.send_message(
    message=["Okay, could you tell me more about the trans-lunar injection"]
)
print("\n\nmodel:  ", response.text)

# To cache the conversation so far, pass the chat history as the list of contents.
cache = client.caches.create(
    model=model_name,
    config={
        "contents": chat.get_history(),
        "system_instruction": system_instruction,
    },
)
# Continue the conversation using the cached content.
chat = client.chats.create(
    model=model_name,
    config=types.GenerateContentConfig(cached_content=cache.name),
)
response = chat.send_message(
    message="I didn't understand that last part, could you explain it in simpler language?"
)
print("\n\nmodel:  ", 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 modelName = "gemini-1.5-flash-001";
const systemInstruction = "You are an expert analyzing transcripts.";

// Create a chat session with the system instruction.
const chat = ai.chats.create({
  model: modelName,
  config: { systemInstruction: systemInstruction },
});
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);

let response = await chat.sendMessage({
  message: createUserContent([
    "Hi, could you summarize this transcript?",
    createPartFromUri(document.uri, document.mimeType),
  ]),
});
console.log("\n\nmodel:", response.text);

response = await chat.sendMessage({
  message: "Okay, could you tell me more about the trans-lunar injection",
});
console.log("\n\nmodel:", response.text);

// To cache the conversation so far, pass the chat history as the list of contents.
const chatHistory = chat.getHistory();
const cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: chatHistory,
    systemInstruction: systemInstruction,
  },
});

// Continue the conversation using the cached content.
const chatWithCache = ai.chats.create({
  model: modelName,
  config: { cachedContent: cache.name },
});
response = await chatWithCache.sendMessage({
  message:
    "I didn't understand that last part, could you explain it in simpler language?",
});
console.log("\n\nmodel:", 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-1.5-flash-001"
systemInstruction := "You are an expert analyzing transcripts."

// Create initial chat with a system instruction.
chat, err := client.Chats.Create(ctx, modelName, &genai.GenerateContentConfig{
	SystemInstruction: genai.NewContentFromText(systemInstruction, genai.RoleUser),
}, nil)
if err != nil {
	log.Fatal(err)
}

document, err := client.Files.UploadFromPath(
	ctx, 
	filepath.Join(getMedia(), "a11.txt"), 
	&genai.UploadFileConfig{
		MIMEType : "text/plain",
	},
)
if err != nil {
	log.Fatal(err)
}

// Send first message with the transcript.
parts := make([]genai.Part, 2)
parts[0] = genai.Part{Text: "Hi, could you summarize this transcript?"}
parts[1] = genai.Part{
	FileData: &genai.FileData{
		FileURI :      document.URI,
		MIMEType: document.MIMEType,
	},
}

// Send chat message.
resp, err := chat.SendMessage(ctx, parts...)
if err != nil {
	log.Fatal(err)
}
fmt.Println("\n\nmodel: ", resp.Text())

resp, err = chat.SendMessage(
	ctx, 
	genai.Part{
		Text: "Okay, could you tell me more about the trans-lunar injection",
	},
)
if err != nil {
	log.Fatal(err)
}
fmt.Println("\n\nmodel: ", resp.Text())

// To cache the conversation so far, pass the chat history as the list of contents.
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          chat.History(false),
	SystemInstruction: genai.NewContentFromText(systemInstruction, genai.RoleUser),
})
if err != nil {
	log.Fatal(err)
}

// Continue the conversation using the cached history.
chat, err = client.Chats.Create(ctx, modelName, &genai.GenerateContentConfig{
	CachedContent: cache.Name,
}, nil)
if err != nil {
	log.Fatal(err)
}

resp, err = chat.SendMessage(
	ctx, 
	genai.Part{
		Text: "I didn't understand that last part, could you explain it in simpler language?",
	},
)
if err != nil {
	log.Fatal(err)
}
fmt.Println("\n\nmodel: ", resp.Text())

Yanıt gövdesi

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

Yöntem: cachedContents.list

Lists CachedContents.

Uç nokta

get https://generativelanguage.googleapis.com/v1beta/cachedContents

Sorgu parametreleri

pageSize integer

İsteğe bağlıdır. Döndürülecek maksimum önbelleğe alınmış içerik sayısı. Hizmet, bu değerden daha az sonuç döndürebilir. Belirtilmemişse varsayılan olarak (maksimum değerin altında) belirli sayıda öğe döndürülür. Maksimum değer 1.000'dir. 1.000'den büyük değerler 1.000'e zorlanır.

pageToken string

İsteğe bağlıdır. Önceki bir cachedContents.list çağrısından alınan sayfa jetonu. Sonraki sayfayı almak için bunu sağlayın.

Sayfalara ayırma işlemi yapılırken cachedContents.list öğesine sağlanan diğer tüm parametreler, sayfa jetonunu sağlayan çağrıyla eşleşmelidir.

İstek içeriği

İstek metni boş olmalıdır.

Yanıt gövdesi

CachedContents listesiyle yanıt.

Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:

Alanlar
cachedContents[] object (CachedContent)

Önbelleğe alınmış içeriklerin listesi.

nextPageToken string

Sonraki sayfayı almak için pageToken olarak gönderilebilen bir jeton. Bu alan atlanırsa sonraki sayfa olmaz.

JSON gösterimi
{
  "cachedContents": [
    {
      object (CachedContent)
    }
  ],
  "nextPageToken": string
}

Yöntem: cachedContents.get

CachedContent kaynağını okur.

Uç nokta

get https://generativelanguage.googleapis.com/v1beta/{name=cachedContents/*}

Yol parametreleri

name string

Zorunlu. İçerik önbelleği girişini ifade eden kaynak adı. Biçim: cachedContents/{id} cachedContents/{cachedcontent} biçimindedir.

İstek içeriği

İstek metni boş olmalıdır.

Örnek istek

Python

from google import genai

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

cache = client.caches.create(
    model=model_name,
    config={
        "contents": [document],
        "system_instruction": "You are an expert analyzing transcripts.",
    },
)
print(client.caches.get(name=cache.name))

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-1.5-flash-001";

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.",
  },
});
const retrievedCache = await ai.caches.get({ name: cache.name });
console.log("Retrieved Cache:", retrievedCache);

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-1.5-flash-001"
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)
}

cache, err = client.Caches.Get(ctx, cache.Name, &genai.GetCachedContentConfig{})
if err != nil {
	log.Fatal(err)
}
fmt.Println("Retrieved cache:")
fmt.Println(cache)

kabuk

curl "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GEMINI_API_KEY"

Yanıt gövdesi

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

Yöntem: cachedContents.patch

CachedContent kaynağını günceller (yalnızca geçerlilik süresi güncellenebilir).

Uç nokta

patch https://generativelanguage.googleapis.com/v1beta/{cachedContent.name=cachedContents/*}

PATCH https://generativelanguage.googleapis.com/v1beta/{cachedContent.name=cachedContents/*}

Yol parametreleri

cachedContent.name string

Yalnızca çıkış. Tanımlayıcı. Önbelleğe alınmış içeriğe atıfta bulunan kaynak adı. Biçim: cachedContents/{id} cachedContents/{cachedcontent} biçimindedir.

Sorgu parametreleri

updateMask string (FieldMask format)

Güncellenecek alanların listesi.

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

İstek içeriği

İstek metni, CachedContent öğesinin bir örneğini içerir.

Alanlar
expiration Union type
Bu kaynağın süresinin ne zaman dolacağını belirtir. expiration yalnızca aşağıdakilerden biri olabilir:
expireTime string (Timestamp format)

Bu kaynağın geçerliliğinin sona erdiği zamanı gösteren UTC zaman damgası. Bu, girişte ne gönderildiğinden bağımsız olarak çıkışta her zaman sağlanır.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Yalnızca giriş. Bu kaynak için yeni TTL (yalnızca giriş).

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

Örnek istek

Python

from google import genai
from google.genai import types
import datetime

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

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

# Update the cache's time-to-live (ttl)
ttl = f"{int(datetime.timedelta(hours=2).total_seconds())}s"
client.caches.update(
    name=cache.name, config=types.UpdateCachedContentConfig(ttl=ttl)
)
print(f"After update:\n {cache}")

# Alternatively, update the expire_time directly
# Update the expire_time directly in valid RFC 3339 format (UTC with a "Z" suffix)
expire_time = (
    (
        datetime.datetime.now(datetime.timezone.utc)
        + datetime.timedelta(minutes=15)
    )
    .isoformat()
    .replace("+00:00", "Z")
)
client.caches.update(
    name=cache.name,
    config=types.UpdateCachedContentConfig(expire_time=expire_time),
)

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-1.5-flash-001";

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

let cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: contents,
    systemInstruction: "You are an expert analyzing transcripts.",
  },
});

// Update the cache's time-to-live (ttl)
const ttl = `${2 * 3600}s`; // 2 hours in seconds
cache = await ai.caches.update({
  name: cache.name,
  config: { ttl },
});
console.log("After update (TTL):", cache);

// Alternatively, update the expire_time directly (in RFC 3339 format with a "Z" suffix)
const expireTime = new Date(Date.now() + 15 * 60000)
  .toISOString()
  .replace(/\.\d{3}Z$/, "Z");
cache = await ai.caches.update({
  name: cache.name,
  config: { expireTime: expireTime },
});
console.log("After update (expire_time):", cache);

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-1.5-flash-001"
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)
}

_, err = client.Caches.Delete(ctx, cache.Name, &genai.DeleteCachedContentConfig{})
if err != nil {
	log.Fatal(err)
}
fmt.Println("Cache deleted:", cache.Name)

kabuk

curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GEMINI_API_KEY" \
 -H 'Content-Type: application/json' \
 -d '{"ttl": "600s"}'

Yanıt gövdesi

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

Yöntem: cachedContents.delete

CachedContent kaynağını siler.

Uç nokta

delete https://generativelanguage.googleapis.com/v1beta/{name=cachedContents/*}

Yol parametreleri

name string

Zorunlu. İçerik önbelleği girişini ifade eden kaynak adı. Biçim: cachedContents/{id} cachedContents/{cachedcontent} biçimindedir.

İstek içeriği

İstek metni boş olmalıdır.

Örnek istek

Python

from google import genai

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

cache = client.caches.create(
    model=model_name,
    config={
        "contents": [document],
        "system_instruction": "You are an expert analyzing transcripts.",
    },
)
client.caches.delete(name=cache.name)

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-1.5-flash-001";

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.",
  },
});
await ai.caches.delete({ name: cache.name });
console.log("Cache deleted:", cache.name);

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-1.5-flash-001"
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)
}

_, err = client.Caches.Delete(ctx, cache.Name, &genai.DeleteCachedContentConfig{})
if err != nil {
	log.Fatal(err)
}
fmt.Println("Cache deleted:", cache.Name)

kabuk

curl -X DELETE "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GEMINI_API_KEY"

Yanıt gövdesi

Başarılı olursa yanıt metni boş bir JSON nesnesi olur.

REST Kaynağı: cachedContents

Kaynak: CachedContent

Önceden işlenmiş ve GenerativeService'e yapılan sonraki isteklerde kullanılabilen içerik.

Önbelleğe alınmış içerik yalnızca oluşturulduğu modelle kullanılabilir.

Alanlar
contents[] object (Content)

İsteğe bağlıdır. Yalnızca giriş. Değişmez. Önbelleğe alınacak içerik.

tools[] object (Tool)

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

createTime string (Timestamp format)

Yalnızca çıkış. Önbellek girişinin oluşturulma zamanı.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

updateTime string (Timestamp format)

Yalnızca çıkış. Önbellek girişinin son güncellendiği zaman (UTC).

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

usageMetadata object (UsageMetadata)

Yalnızca çıkış. Önbelleğe alınmış içeriğin kullanımıyla ilgili meta veriler.

expiration Union type
Bu kaynağın süresinin ne zaman dolacağını belirtir. expiration yalnızca aşağıdakilerden biri olabilir:
expireTime string (Timestamp format)

Bu kaynağın geçerliliğinin sona erdiği zamanı gösteren UTC zaman damgası. Bu, girişte ne gönderildiğinden bağımsız olarak çıkışta her zaman sağlanır.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat farkları da kabul edilir. Örnekler: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" veya "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Yalnızca giriş. Bu kaynak için yeni TTL (yalnızca giriş).

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

name string

Yalnızca çıkış. Tanımlayıcı. Önbelleğe alınmış içeriğe atıfta bulunan kaynak adı. Biçim: cachedContents/{id}

displayName string

İsteğe bağlıdır. Değişmez. Önbelleğe alınmış içeriğin kullanıcı tarafından oluşturulan anlamlı görünen adı. Maksimum 128 Unicode karakter.

model string

Zorunlu. Değişmez. Önbelleğe alınmış içerik için kullanılacak Model adı. Biçim: models/{model}

systemInstruction object (Content)

İsteğe bağlıdır. Yalnızca giriş. Değişmez. Geliştirici tarafından ayarlanan sistem talimatı. Şu anda yalnızca metin desteklenmektedir.

toolConfig object (ToolConfig)

İsteğe bağlıdır. Yalnızca giriş. Değişmez. Araç yapılandırması Bu yapılandırma tüm araçlar için paylaşılır.

JSON gösterimi
{
  "contents": [
    {
      object (Content)
    }
  ],
  "tools": [
    {
      object (Tool)
    }
  ],
  "createTime": string,
  "updateTime": string,
  "usageMetadata": {
    object (UsageMetadata)
  },

  // expiration
  "expireTime": string,
  "ttl": string
  // Union type
  "name": string,
  "displayName": string,
  "model": string,
  "systemInstruction": {
    object (Content)
  },
  "toolConfig": {
    object (ToolConfig)
  }
}

İç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 mesajı oluşturan Parts. Bölümlerin MIME türleri farklı olabilir.

role string

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

Çok turlu görüşmeler 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ıdır. Parçanın model tarafından üretilip üretilmediğini gösterir.

thoughtSignature string (bytes format)

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

Base64 kodlu bir dize.

data Union type
data yalnızca aşağıdakilerden 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, bağımsız değişkenleri ve değerleriyle birlikte FunctionDeclaration.name'yi temsil eden bir dize içeren tahmini bir FunctionCall.

functionResponse object (FunctionResponse)

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

fileData object (FileData)

URI tabanlı veriler.

executableCode object (ExecutableCode)

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

codeExecutionResult object (CodeExecutionResult)

ExecutableCode yürütme sonucu.

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

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

JSON gösterimi
{
  "thought": boolean,
  "thoughtSignature": string,

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

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

Blob

Ham medya baytları.

Metin, ham bayt olarak gönderilmemelidir. "text" 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
}

FunctionCall

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

Alanlar
id string

İsteğe bağlıdır. İşlev çağrısının benzersiz kimliği. Doldurulmuşsa istemci, functionCall öğesini yürütür ve yanıtı eşleşen id ile birlikte döndürür.

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 63 olmalıdır.

args object (Struct format)

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

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

FunctionResponse

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

Alanlar
id string

İsteğe bağlıdır. Bu yanıtın ait olduğu işlev çağrısının kimliği. İstemci tarafından, ilgili işlev çağrısıyla eşleşmesi için 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 63 olmalıdır.

response object (Struct format)

Zorunlu. JSON nesnesi biçiminde işlev yanıtı.

willContinue boolean

İsteğe bağlıdır. İşlev çağrısının devam ettiğini ve daha fazla yanıt döndürüleceğini belirterek işlev çağrısını 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. Üretimin tetiklenmesini önlemek 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ıdır. 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
  },
  "willContinue": boolean,
  "scheduling": enum (Scheduling)
}

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 görüşme bağlamına ekleyin, devam eden oluşturma işlemini durdurun ve çıkış oluşturma istemi verin.

FileData

URI tabanlı veriler.

Alanlar
mimeType string

İsteğe bağlıdır. 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
language enum (Language)

Zorunlu. code programlama dili.

code string

Zorunlu. Yürütülecek kod.

JSON gösterimi
{
  "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

CodeExecutionResult

ExecutableCode yürütme sonucu.

Yalnızca CodeExecution kullanılırken oluşturulur ve her zaman ExecutableCode içeren bir part ile birlikte kullanılır.

Alanlar
outcome enum (Outcome)

Zorunlu. Kod yürütmenin sonucu.

output string

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

JSON gösterimi
{
  "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ı.
OUTCOME_FAILED Kod yürütme tamamlandı ancak başarısız oldu. stderr, nedeni içermelidir.
OUTCOME_DEADLINE_EXCEEDED Kod yürütme işlemi çok uzun sürdü ve iptal edildi. Kısmi bir çıktı olabilir veya olmayabilir.

VideoMetadata

Meta veriler, giriş video içeriğini tanımlar.

Alanlar
startOffset string (Duration format)

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

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

endOffset string (Duration format)

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

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.

Alanlar
functionDeclarations[] object (FunctionDeclaration)

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

Model veya sistem işlevi yürü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 konuşma dönüşü, bir sonraki model dönüşü için Content.role "işlev" oluşturma bağlamıyla birlikte FunctionResponse içerebilir.

googleSearchRetrieval object (GoogleSearchRetrieval)

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

codeExecution object (CodeExecution)

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

urlContext object (UrlContext)

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

JSON gösterimi
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "googleSearchRetrieval": {
    object (GoogleSearchRetrieval)
  },
  "codeExecution": {
    object (CodeExecution)
  },
  "googleSearch": {
    object (GoogleSearch)
  },
  "urlContext": {
    object (UrlContext)
  }
}

FunctionDeclaration

OpenAPI 3.03 spesifikasyonunda tanımlandığı şekilde bir işlev bildiriminin yapılandırılmış gösterimi. Bu bildirime işlev adı ve parametreleri 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 ve tire içermeli ve maksimum uzunluğu 63 olmalıdır.

description string

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

behavior enum (Behavior)

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

parameters object (Schema)

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

parametersJsonSchema value (Value format)

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

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

Bu alan parameters ile birlikte kullanılamaz.

response object (Schema)

İsteğe bağlıdır. Bu işlevin çıktısı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ıdır. Bu işlevin çıktısını JSON şema biçiminde açıklar. Şema tarafından belirtilen değer, işlevin yanıt değeridir.

Bu alan response ile birlikte kullanılamaz.

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

Ş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ıdır. Verilerin biçimi. Bu yalnızca temel veri türleri için kullanılır. Desteklenen biçimler: NUMBER türü için: float, double INTEGER türü için: int32, int64 STRING türü için: enum, date-time

title string

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

description string

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

nullable boolean

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

enum[] string

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

maxItems string (int64 format)

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

minItems string (int64 format)

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

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

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

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

required[] string

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

minProperties string (int64 format)

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

maxProperties string (int64 format)

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

minLength string (int64 format)

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

maxLength string (int64 format)

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

pattern string

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

example value (Value format)

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

anyOf[] object (Schema)

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

propertyOrdering[] string

İsteğe bağlıdır. Ö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ıdır. Alan için varsayılan değer. JSON şemasına göre bu alan, dokümantasyon 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ıdır. Type.ARRAY türündeki öğelerin şeması.

minimum number

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

maximum number

İsteğe bağlıdır. Type.INTEGER ve Type.NUMBER'ın 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.

Davranış

Fonksiyon 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ın alınmasını beklemez. Bunun yerine, kullanıcı ile model arasındaki görüşmeyi sürdürürken işlev yanıtlarını kullanıma sunuldukça 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ı tetikle.
MODE_DYNAMIC Yalnızca sistemin gerekli olduğuna karar verdiği durumlarda 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'yi 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ıdır. 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).

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

Aralık

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

Başlangıç, bitiş değerinden küçük veya ona eşit olmalıdır. Başlangıç ve bitiş zamanı aynı olduğunda aralık boştur (hiç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ıdır. Aralığın başlangıç zamanı (girilen tarihler dahil).

Belirtilmişse bu aralıkla eşleşen bir zaman damgası, başlangıçla aynı veya başlangıçtan sonra olmalıdır.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat 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ı (girilen tarihler dahil değil).

Belirtilmişse bu aralıkla eşleşen bir zaman damgası bitişten önce olmalıdır.

Oluşturulan çıkışın her zaman Z ile normalleştirildiği ve 0, 3, 6 veya 9 kesirli basamak kullandığı RFC 3339'u kullanır. "Z" dışındaki saat 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
}

UrlContext

Bu türde alan yok.

URL bağlamı almayı destekleyen araç.

ToolConfig

İsteklerde Tool kullanımını belirten parametreleri içeren araç yapılandırması.

Alanlar
functionCallingConfig object (FunctionCallingConfig)

İsteğe bağlıdır. İşlev çağırma yapılandırması.

JSON gösterimi
{
  "functionCallingConfig": {
    object (FunctionCallingConfig)
  }
}

FunctionCallingConfig

İşlev çağrısı davranışını belirtmeye yönelik yapılandırma.

Alanlar
mode enum (Mode)

İsteğe bağlıdır. İşlev çağrısının yürütülmesi gereken modu belirtir. Belirtilmezse varsayılan değer AUTO olarak ayarlanır.

allowedFunctionNames[] string

İsteğe bağlıdır. Belirtildiğinde modelin çağıracağı işlevleri sınırlayan bir işlev adı grubu.

Bu yalnızca Mod ANY olduğunda ayarlanmalıdır. İşlev adları [FunctionDeclaration.name] ile eşleşmelidir. Mod ANY olarak ayarlandığında model, sağlanan işlev adları kümesinden bir işlev çağrısı tahmin eder.

JSON gösterimi
{
  "mode": enum (Mode),
  "allowedFunctionNames": [
    string
  ]
}

Mod

Yürütme modunu tanımlayarak işlev çağrısı için yürütme davranışını tanımlar.

Sıralamalar
MODE_UNSPECIFIED Belirtilmemiş işlev çağrısı modu. Bu değer kullanılmamalıdır.
AUTO Varsayılan model davranışı: Model, işlev çağrısı veya doğal dil yanıtı tahmin etmeye karar verir.
ANY Model, her zaman yalnızca bir işlev çağrısı tahmin etmeye zorlanır. "allowedFunctionNames" ayarlanmışsa tahmin edilen işlev çağrısı, "allowedFunctionNames" değerlerinden biriyle sınırlanır. Aksi takdirde tahmin edilen işlev çağrısı, sağlanan "functionDeclarations" değerlerinden biri olur.
NONE Model herhangi bir işlev çağrısını tahmin etmez. Model davranışı, herhangi bir işlev bildirimi iletilmediğinde olduğu gibidir.
VALIDATED Model, işlev çağrısı veya doğal dil yanıtı tahmin etmeye karar verir ancak işlev çağrılarını kısıtlanmış kod çözme ile doğrular.

UsageMetadata

Önbelleğe alınmış içeriğin kullanımıyla ilgili meta veriler.

Alanlar
totalTokenCount integer

Önbelleğe alınan içeriğin kullandığı toplam jeton sayısı.

JSON gösterimi
{
  "totalTokenCount": integer
}