Caching

Pamięć podręczna kontekstu umożliwia zapisywanie i używanie wcześniej obliczonych tokenów wejściowych, których chcesz używać wielokrotnie, np. podczas zadawania różnych pytań dotyczących tego samego pliku multimedialnego. Może to prowadzić do oszczędności na kosztach i szybkości, w zależności od sposobu korzystania. Szczegółowe informacje znajdziesz w przewodniku dotyczącym buforowania kontekstu.

Metoda: cachedContents.create

Tworzy zasób CachedContent.

Punkt końcowy

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

Treść żądania

Treść żądania zawiera wystąpienie elementu CachedContent.

Fields
contents[] object (Content)

Opcjonalnie. Tylko dane wejściowe. Niezmienna. Treści do umieszczenia w pamięci podręcznej.

tools[] object (Tool)

Opcjonalnie. Tylko dane wejściowe. Niezmienna. lista Tools, których model może użyć do wygenerowania następnej odpowiedzi;

expiration Union type
Określa, kiedy ten zasób wygaśnie. expiration może być tylko jednym z tych elementów:
expireTime string (Timestamp format)

Sygnatura czasowa UTC wskazująca, kiedy zasób jest uznawany za nieaktualny. Jest zawsze podawana na wyjściu niezależnie od tego, co zostało wysłane na wejściu.

Używa standardu RFC 3339, w którym wygenerowany wynik jest zawsze znormalizowany według normy Z i zawiera 0, 3, 6 lub 9 cyfr ułamkowych. Dopuszczalne są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Tylko dane wejściowe. Nowa wartość TTL dla tego zasobu, tylko do wprowadzania.

Czas w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „s”. Przykład: "3.5s".

displayName string

Opcjonalnie. Niezmienna. Wyświetlana nazwa treści z pamięci podręcznej, która została utworzona przez użytkownika. Maksymalnie 128 znaków Unicode.

model string

Wymagane. Niezmienna. Nazwa Model do użycia w przypadku treści w pamięci podręcznej. Format: models/{model}

systemInstruction object (Content)

Opcjonalnie. Tylko dane wejściowe. Niezmienna. Instrukcje dotyczące konfiguracji systemu przez dewelopera. Obecnie tylko tekst.

toolConfig object (ToolConfig)

Opcjonalnie. Tylko dane wejściowe. Niezmienna. Konfiguracja narzędzia. Ta konfiguracja jest wspólna dla wszystkich narzędzi.

Przykładowe żądanie

Podstawowe

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

Przeczytaj

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, "user"),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents: contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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)

Muszla

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'"
    }'

Nazwa nadawcy

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

Przeczytaj

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, "user"),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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)

Z czatu

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

Przeczytaj

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, "user"),
}, 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, "user"),
})
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())

Treść odpowiedzi

Jeśli operacja się powiedzie, treść odpowiedzi będzie zawierała nowo utworzoną instancję CachedContent.

Metoda: cachedContents.list

Wyświetla elementy CachedContents.

Punkt końcowy

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

Parametry zapytania

pageSize integer

Opcjonalnie. Maksymalna liczba elementów z pamięci podręcznej do zwrócenia. Usługa może zwrócić mniej niż ta wartość. Jeśli nie podasz wartości, zwrócona zostanie domyślna liczba elementów (poniżej maksymalnej). Maksymalna wartość to 1000. Wartości powyżej 1000 zostaną skonwertowane na 1000.

pageToken string

Opcjonalnie. Token strony otrzymany z poprzedniego wywołania funkcji cachedContents.list. Podaj ten parametr, aby pobrać kolejną stronę.

Podczas podziału na strony wszystkie inne parametry przekazane do funkcji cachedContents.list muszą być zgodne z wywołaniem, które dostarczyło token strony.

Treść żądania

Treść żądania musi być pusta.

Treść odpowiedzi

Odpowiedź z listą CachedContents.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Pola
cachedContents[] object (CachedContent)

Lista treści z pamięci podręcznej.

nextPageToken string

token, który można wysłać jako pageToken, aby pobrać następną stronę. Jeśli pominiesz to pole, nie będzie kolejnych stron.

Zapis JSON
{
  "cachedContents": [
    {
      object (CachedContent)
    }
  ],
  "nextPageToken": string
}

Metoda: cachedContents.get

Odczytuje zasób CachedContent.

Punkt końcowy

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

Parametry ścieżki

name string

Wymagane. Nazwa zasobu odwołującego się do wpisu w pamięci podręcznej treści. Format: cachedContents/{id} Ma postać cachedContents/{cachedcontent}.

Treść żądania

Treść żądania musi być pusta.

Przykładowe żądanie

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

Przeczytaj

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, "user"),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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)

Muszla

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

Treść odpowiedzi

W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu CachedContent.

Metoda: cachedContents.patch

Aktualizuje zasób CachedContent (można zaktualizować tylko datę wygaśnięcia).

Punkt końcowy

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

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

Parametry ścieżki

cachedContent.name string

Tylko dane wyjściowe. Identyfikator. Nazwa zasobu odwołującego się do treści w pamięci podręcznej. Format: cachedContents/{id} Ma postać cachedContents/{cachedcontent}.

Parametry zapytania

updateMask string (FieldMask format)

Lista pól do zaktualizowania.

Jest to lista pełnych nazw pól rozdzielona przecinkami. Przykład: "user.displayName,photo".

Treść żądania

Treść żądania zawiera wystąpienie elementu CachedContent.

Pola
expiration Union type
Określa, kiedy ten zasób wygaśnie. expiration może być tylko jednym z tych elementów:
expireTime string (Timestamp format)

Sygnatura czasowa UTC wskazująca, kiedy zasób jest uznawany za nieaktualny. Jest zawsze podawana na wyjściu niezależnie od tego, co zostało wysłane na wejściu.

Używa standardu RFC 3339, w którym wygenerowany wynik jest zawsze znormalizowany według normy Z i zawiera 0, 3, 6 lub 9 cyfr ułamkowych. Dopuszczalne są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Tylko dane wejściowe. Nowa wartość TTL dla tego zasobu, tylko do wprowadzania.

Czas w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „s”. Przykład: "3.5s".

Przykładowe żądanie

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

Przeczytaj

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, "user"),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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)

Muszla

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

Treść odpowiedzi

W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu CachedContent.

Metoda: cachedContents.delete

Usuwa zasób CachedContent.

Punkt końcowy

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

Parametry ścieżki

name string

Wymagane. Nazwa zasobu odwołującego się do wpisu w pamięci podręcznej treści. Format: cachedContents/{id}. Ma postać cachedContents/{cachedcontent}.

Treść żądania

Treść żądania musi być pusta.

Przykładowe żądanie

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

Przeczytaj

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, "user"),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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)

Muszla

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

Treść odpowiedzi

W przypadku powodzenia treść odpowiedzi to pusty obiekt JSON.

Zasób REST: cachedContents

Zasób: CachedContent

Treści, które zostały wstępnie przetworzone i mogą być użyte w kolejnych żądaniach do GenerativeService.

Treści w pamięci podręcznej mogą być używane tylko z modelem, dla którego zostały utworzone.

Pola
contents[] object (Content)

Opcjonalnie. Tylko dane wejściowe. Niezmienna. Treści do umieszczenia w pamięci podręcznej.

tools[] object (Tool)

Opcjonalnie. Tylko dane wejściowe. Niezmienna. lista Tools, których model może użyć do wygenerowania następnej odpowiedzi;

createTime string (Timestamp format)

Tylko dane wyjściowe. Czas utworzenia wpisu w pamięci podręcznej.

Używa standardu RFC 3339, w którym wygenerowany wynik jest zawsze znormalizowany według normy Z i zawiera 0, 3, 6 lub 9 cyfr ułamkowych. Dopuszczalne są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

updateTime string (Timestamp format)

Tylko dane wyjściowe. Czas ostatniej aktualizacji wpisu w pamięci podręcznej (UTC).

Używa standardu RFC 3339, w którym wygenerowany wynik jest zawsze znormalizowany według normy Z i zawiera 0, 3, 6 lub 9 cyfr ułamkowych. Dopuszczalne są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

usageMetadata object (UsageMetadata)

Tylko dane wyjściowe. Metadane dotyczące wykorzystania treści z pamięci podręcznej.

expiration Union type
Określa, kiedy ten zasób wygaśnie. expiration może być tylko jednym z tych elementów:
expireTime string (Timestamp format)

Sygnatura czasowa UTC wskazująca, kiedy zasób jest uznawany za nieaktualny. Jest zawsze podawana na wyjściu niezależnie od tego, co zostało wysłane na wejściu.

Używa standardu RFC 3339, w którym wygenerowany wynik jest zawsze znormalizowany według normy Z i zawiera 0, 3, 6 lub 9 cyfr ułamkowych. Dopuszczalne są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Tylko dane wejściowe. Nowa wartość TTL dla tego zasobu, tylko do wprowadzania.

Czas w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „s”. Przykład: "3.5s".

name string

Tylko dane wyjściowe. Identyfikator. Nazwa zasobu odwołującego się do treści w pamięci podręcznej. Format: cachedContents/{id}

displayName string

Opcjonalnie. Niezmienna. Wyświetlana nazwa treści z pamięci podręcznej, która została utworzona przez użytkownika. Maksymalnie 128 znaków Unicode.

model string

Wymagane. Niezmienna. Nazwa Model do użycia w przypadku treści w pamięci podręcznej. Format: models/{model}

systemInstruction object (Content)

Opcjonalnie. Tylko dane wejściowe. Niezmienna. Instrukcje dotyczące konfiguracji systemu przez dewelopera. Obecnie tylko tekst.

toolConfig object (ToolConfig)

Opcjonalnie. Tylko dane wejściowe. Niezmienna. Konfiguracja narzędzia. Ta konfiguracja jest wspólna dla wszystkich narzędzi.

Zapis JSON
{
  "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)
  }
}

Treść

Podstawowy typ danych uporządkowanych zawierający wieloczęściową treść wiadomości.

Content zawiera pole role, w którym wskazany jest producent Content, oraz pole parts zawierające dane wieloczęściowe z treścią wiadomości.

Pola
parts[] object (Part)

uporządkowane Parts, które stanowią jedną wiadomość. Części mogą mieć różne typy MIME.

role string

Opcjonalnie. Producent treści. Musi być to „user” (użytkownik) lub „model” (model).

Przydatne w przypadku rozmów wieloetapowych, ale można je pozostawić puste lub nieustawić.

Zapis JSON
{
  "parts": [
    {
      object (Part)
    }
  ],
  "role": string
}

Część

Typ danych zawierający multimedia, które są częścią wiadomości wieloczęściowej Content.

Element Part składa się z danych, które mają powiązany typ danych. Element Part może zawierać tylko jeden z akceptowanych typów w elementach Part.data.

Jeśli pole inlineData jest wypełnione surowymi bajtami, Part musi mieć stały typ MIME IANA identyfikujący typ i podtyp multimediów.

Pola
thought boolean

Opcjonalnie. Wskazuje, czy część pochodzi z modelu.

data Union type
data może być tylko jednym z tych elementów:
text string

Tekst wbudowany.

inlineData object (Blob)

Wbudowane bajty multimediów.

functionCall object (FunctionCall)

Prognoza FunctionCall zwracana przez model, która zawiera ciąg znaków reprezentujący FunctionDeclaration.name z argumentami i ich wartościami.

functionResponse object (FunctionResponse)

Wynik funkcji FunctionCall, która zawiera ciąg znaków reprezentujący FunctionDeclaration.name, oraz ustrukturyzowany obiekt JSON zawierający dowolny wynik funkcji, jest używany jako kontekst modelu.

fileData object (FileData)

Dane oparte na identyfikatorze URI.

executableCode object (ExecutableCode)

Kod wygenerowany przez model, który ma zostać wykonany.

codeExecutionResult object (CodeExecutionResult)

Wynik wykonania funkcji ExecutableCode.

Zapis JSON
{
  "thought": boolean,

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

Blob

Nieprzetworzone bajty multimediów.

Tekst nie powinien być wysyłany jako surowe bajty. Użyj pola „text”.

Pola
mimeType string

Typ MIME danych źródłowych zgodny ze standardem IANA. Przykłady: – image/png – image/jpeg Jeśli podany zostanie nieobsługiwany typ MIME, zwrócony zostanie błąd. Pełną listę obsługiwanych typów znajdziesz w sekcji Obsługiwane formaty plików.

data string (bytes format)

Nieprzetworzone bajty w przypadku formatów multimediów.

Ciąg znaków zakodowany w formacie Base64.

Zapis JSON
{
  "mimeType": string,
  "data": string
}

FunctionCall

Prognoza FunctionCall zwracana przez model, która zawiera ciąg znaków reprezentujący FunctionDeclaration.name z argumentami i ich wartościami.

Pola
id string

Opcjonalnie. Unikalny identyfikator wywołania funkcji. Jeśli jest wypełniony, klient wykonuje functionCall i zwraca odpowiedź z odpowiednim id.

name string

Wymagane. Nazwa funkcji do wywołania. Musi składać się z liter (a–z, A–Z), cyfr (0–9) lub podkreśleń i łączników. Maksymalna długość to 63 znaki.

args object (Struct format)

Opcjonalnie. Parametry i wartości funkcji w formacie obiektu JSON.

Zapis JSON
{
  "id": string,
  "name": string,
  "args": {
    object
  }
}

FunctionResponse

Wynik funkcji FunctionCall, która zwraca ciąg znaków reprezentujący FunctionDeclaration.name, oraz uporządkowany obiekt JSON zawierający dowolne dane wyjściowe tej funkcji, jest używany jako kontekst modelu. Powinien zawierać wynik FunctionCall wykonany na podstawie prognozy modelu.

Pola
id string

Opcjonalnie. Identyfikator wywołania funkcji, do którego należy ta odpowiedź. Wypełniane przez klienta w celu dopasowania do odpowiedniego wywołania funkcji id.

name string

Wymagane. Nazwa funkcji do wywołania. Musi składać się z liter (a–z, A–Z), cyfr (0–9) lub podkreśleń i łączników. Maksymalna długość to 63 znaki.

response object (Struct format)

Wymagane. Odpowiedź funkcji w formacie obiektu JSON.

Zapis JSON
{
  "id": string,
  "name": string,
  "response": {
    object
  }
}

FileData

Dane oparte na identyfikatorze URI.

Pola
mimeType string

Opcjonalnie. Typ MIME danych źródłowych zgodny ze standardem IANA.

fileUri string

Wymagane. Identyfikator URI.

Zapis JSON
{
  "mimeType": string,
  "fileUri": string
}

ExecutableCode

Kod wygenerowany przez model, który ma zostać wykonany, oraz wynik zwrócony do modelu.

Jest generowany tylko podczas korzystania z narzędzia CodeExecution, w którym kod jest automatycznie wykonywany, a także odpowiedni CodeExecutionResult.

Pola
language enum (Language)

Wymagane. Język programowania code.

code string

Wymagane. Kod do wykonania.

Zapis JSON
{
  "language": enum (Language),
  "code": string
}

Język

Obsługiwane języki programowania dla wygenerowanego kodu.

Wartości w polu enum
LANGUAGE_UNSPECIFIED Nieokreślony język. Nie należy używać tej wartości.
PYTHON Python >= 3.10 z dostępem do bibliotek Numpy i simpy.

CodeExecutionResult

Wynik wykonania funkcji ExecutableCode.

Jest generowany tylko wtedy, gdy używasz CodeExecution, i zawsze występuje po part zawierającym ExecutableCode.

Pola
outcome enum (Outcome)

Wymagane. Wynik wykonania kodu.

output string

Opcjonalnie. Zawiera dane wyjściowe stdout, gdy wykonanie kodu przebiega prawidłowo, a w przeciwnym razie – dane stderr lub inny opis.

Zapis JSON
{
  "outcome": enum (Outcome),
  "output": string
}

Wynik

Wyliczenie możliwych wyników wykonania kodu.

Wartości w polu enum
OUTCOME_UNSPECIFIED Nieokreślony stan. Nie należy używać tej wartości.
OUTCOME_OK Kod został wykonany.
OUTCOME_FAILED Wykonywanie kodu zostało zakończone, ale z błędem. Wartość stderr powinna zawierać powód.
OUTCOME_DEADLINE_EXCEEDED Wykonywanie kodu trwało zbyt długo i zostało anulowane. Wyjście może być częściowe lub nieobecne.

Narzędzie

Szczegóły narzędzia, których model może używać do generowania odpowiedzi.

Tool to fragment kodu, który umożliwia systemowi współpracę z systemami zewnętrznymi w celu wykonania działania lub zestawu działań wykraczających poza wiedzę i zakres modelu.

Pola
functionDeclarations[] object (FunctionDeclaration)

Opcjonalnie. Lista FunctionDeclarations dostępnych dla modelu, których można używać do wywoływania funkcji.

Model lub system nie wykonuje funkcji. Zamiast tego zdefiniowana funkcja może zostać zwrócona jako FunctionCall z argumentami do wykonania po stronie klienta. Model może wywołać podzbiór tych funkcji, wypełniając FunctionCall w odpowiedzi. Następna kolejność w rozmowie może zawierać FunctionResponse z kontekstem generowania „funkcji” Content.role na potrzeby kolejnej kolejności w modelu.

googleSearchRetrieval object (GoogleSearchRetrieval)

Opcjonalnie. Narzędzie do pobierania, które korzysta z wyszukiwarki Google.

codeExecution object (CodeExecution)

Opcjonalnie. Umożliwia modelowi wykonywanie kodu w ramach generowania.

Zapis JSON
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "googleSearchRetrieval": {
    object (GoogleSearchRetrieval)
  },
  "codeExecution": {
    object (CodeExecution)
  },
  "googleSearch": {
    object (GoogleSearch)
  }
}

FunctionDeclaration

Strukturalna reprezentacja deklaracji funkcji zgodnie ze specyfikacją OpenAPI 3.03. Deklaracja zawiera nazwę funkcji i parametry. Ta deklaracja funkcji jest reprezentacją bloku kodu, który może być używany przez model jako Tool i uruchamiany przez klienta.

Pola
name string

Wymagane. Nazwa funkcji. Musi składać się z liter (a–z, A–Z), cyfr (0–9) lub podkreśleń i łączników. Maksymalna długość to 63 znaki.

description string

Wymagane. Krótki opis funkcji.

parameters object (Schema)

Opcjonalnie. Opisuje parametry tej funkcji. Odzwierciedla obiekt parametru Open API 3.03. Klucz ciągu: nazwa parametru. W nazwach parametrów wielkość liter ma znaczenie. Wartość schematu: schemat definiujący typ używany dla parametru.

response object (Schema)

Opcjonalnie. Opisuje dane wyjściowe tej funkcji w formacie schematu JSON. Odzwierciedla obiekt odpowiedzi Open API 3.03. Schemat definiuje typ używany do wartości odpowiedzi funkcji.

Zapis JSON
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  },
  "response": {
    object (Schema)
  }
}

Schemat

Obiekt Schema umożliwia definiowanie typów danych wejściowych i wyjściowych. Mogą to być obiekty, ale też typy prymitywne i tablice. Reprezentuje wybrany podzbiór obiektu schematu OpenAPI 3.0.

Pola
type enum (Type)

Wymagane. Typ danych.

format string

Opcjonalnie. Format danych. Jest to używane tylko w przypadku prymitywnych typów danych. Obsługiwane formaty: dla typu LICZBA: float, double dla typu CAŁKA: int32, int64 dla typu TEKST: enum, data-time

title string

Opcjonalnie. Tytuł schematu.

description string

Opcjonalnie. Krótki opis parametru. Może to obejmować przykłady użycia. Opis parametru może być sformatowany w formacie Markdown.

nullable boolean

Opcjonalnie. Wskazuje, czy wartość może być pusta.

enum[] string

Opcjonalnie. Możliwe wartości elementu typu STRING w formacie wyliczeniowym. Możemy na przykład zdefiniować kierunek jako : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]}

maxItems string (int64 format)

Opcjonalnie. Maksymalna liczba elementów typu Type.ARRAY.

minItems string (int64 format)

Opcjonalnie. Minimalna liczba elementów w przypadku typu Type.ARRAY.

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

Opcjonalnie. Właściwości typu Type.OBJECT.

Obiekt zawierający listę par "key": value. Przykład: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[] string

Opcjonalnie. Wymagania dotyczące właściwości Type.OBJECT

minProperties string (int64 format)

Opcjonalnie. Minimalna liczba właściwości dla typu Type.OBJECT.

maxProperties string (int64 format)

Opcjonalnie. Maksymalna liczba właściwości typu Type.OBJECT.

minLength string (int64 format)

Opcjonalnie. POLA SCHEMATU W PRZYPADKU TYPU STRING Minimalna długość typu String

maxLength string (int64 format)

Opcjonalnie. Maksymalna długość typu Type.STRING

pattern string

Opcjonalnie. Wzorzec typu Type.STRING, aby ograniczyć ciąg znaków do wyrażenia regularnego.

example value (Value format)

Opcjonalnie. Przykład obiektu. Jest wypełniane tylko wtedy, gdy obiekt jest obiektem głównym.

anyOf[] object (Schema)

Opcjonalnie. Wartość powinna zostać zweryfikowana pod kątem zgodności z dowolnym (jednym lub większą liczbą) podschematów na liście.

propertyOrdering[] string

Opcjonalnie. kolejność właściwości, Nie jest to standardowe pole w specyfikacji interfejsu Open API. Służy do określania kolejności właściwości w odpowiedzi.

default value (Value format)

Opcjonalnie. Domyślna wartość pola. Zgodnie ze schematem JSON to pole jest przeznaczone do generowania dokumentacji i nie wpływa na weryfikację. Dlatego jest ono uwzględnione i ignorowane, aby deweloperzy, którzy wysyłają schematy z polem default, nie otrzymywali błędów dotyczących nieznanego pola.

items object (Schema)

Opcjonalnie. Schemat elementów typu Type.ARRAY.

minimum number

Opcjonalnie. POLA SCHEMATY Z TYPU INTEGER i NUMBER Minimalna wartość typu Type.INTEGER i Type.NUMBER

maximum number

Opcjonalnie. Maksymalna wartość typu Type.INTEGER i Type.NUMBER

Zapis JSON
{
  "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
}

Typ

Typ zawiera listę typów danych OpenAPI zgodnie ze specyfikacją https://spec.openapis.org/oas/v3.0.3#data-types.

Wartości w polu enum
TYPE_UNSPECIFIED Nieokreślony, nie należy go używać.
STRING Typ ciągu znaków.
NUMBER Typ numeru.
INTEGER Typ liczba całkowita.
BOOLEAN Typ logiczny.
ARRAY Typ tablicy.
OBJECT Typ obiektu.
NULL Typ null.

GoogleSearchRetrieval

Narzędzie do pobierania publicznych danych internetowych na potrzeby informacji podstawowej, opracowane przez Google.

Pola
dynamicRetrievalConfig object (DynamicRetrievalConfig)

Określa konfigurację dynamicznego pobierania dla danego źródła.

Zapis JSON
{
  "dynamicRetrievalConfig": {
    object (DynamicRetrievalConfig)
  }
}

DynamicRetrievalConfig

Opis opcji dostosowywania wyszukiwania dynamicznego.

Pola
mode enum (Mode)

Tryb predykatora używany w przypadku wyszukiwania dynamicznego.

dynamicThreshold number

Próg do użycia w przypadku dynamicznego pobierania. Jeśli nie zostanie ustawiona, system użyje wartości domyślnej.

Zapis JSON
{
  "mode": enum (Mode),
  "dynamicThreshold": number
}

Tryb

Tryb predykatora używany w przypadku wyszukiwania dynamicznego.

Wartości w polu enum
MODE_UNSPECIFIED Zawsze uruchamiaj odzyskiwanie.
MODE_DYNAMIC Przeprowadzać odzyskiwanie tylko wtedy, gdy system uzna to za konieczne.

CodeExecution

Ten typ nie ma pól.

Narzędzie, które wykonuje kod wygenerowany przez model, a następnie automatycznie zwraca wynik do modelu.

Zobacz też pliki ExecutableCodeCodeExecutionResult, które są generowane tylko podczas korzystania z tego narzędzia.

GoogleSearch

Ten typ nie ma pól.

Typ narzędzia wyszukiwarki Google. Narzędzie do obsługi wyszukiwarki Google w Modelu. Technologia Google.

ToolConfig

Konfiguracja narzędzia zawierająca parametry umożliwiające określenie w żądaniu użycia Tool.

Pola
functionCallingConfig object (FunctionCallingConfig)

Opcjonalnie. Konfiguracja wywoływania funkcji.

Zapis JSON
{
  "functionCallingConfig": {
    object (FunctionCallingConfig)
  }
}

FunctionCallingConfig

Konfiguracja służąca do określania sposobu wywoływania funkcji.

Pola
mode enum (Mode)

Opcjonalnie. Określa tryb, w jakim ma być wykonywane wywoływanie funkcji. Jeśli nie podasz tej wartości, zostanie ustawiona wartość domyślna AUTO.

allowedFunctionNames[] string

Opcjonalnie. Zestaw nazw funkcji, który ogranicza funkcje wywoływane przez model.

To ustawienie powinno być ustawione tylko wtedy, gdy tryb to ANY. Nazwy funkcji powinny być zgodne z [FunctionDeclaration.name]. Gdy tryb jest ustawiony na dowolny, model prognozuje wywołanie funkcji z podanego zbioru nazw funkcji.

Zapis JSON
{
  "mode": enum (Mode),
  "allowedFunctionNames": [
    string
  ]
}

Tryb

Określa zachowanie podczas wywoływania funkcji przez zdefiniowanie trybu wykonywania.

Wartości w polu enum
MODE_UNSPECIFIED Nieokreślony tryb wywoływania funkcji. Nie należy używać tej wartości.
AUTO Domyślne zachowanie modelu: model decyduje, czy przewidzieć wywołanie funkcji, czy odpowiedź w języku naturalnym.
ANY Model jest ograniczony do przewidywania tylko wywołania funkcji. Jeśli ustawisz parametry „allowedFunctionNames”, przewidywane wywołanie funkcji zostanie ograniczone do dowolnego z nich. W przeciwnym razie przewidywane wywołanie funkcji będzie dowolnym z podanych „functionDeclarations”.
NONE Model nie będzie prognozować żadnego wywołania funkcji. Model działa tak samo jak wtedy, gdy nie przekazujesz żadnych deklaracji funkcji.
VALIDATED Model przewiduje wywołanie funkcji lub odpowiedź w języku naturalnym, ale weryfikuje wywołania funkcji za pomocą kodowania ograniczonego.

UsageMetadata

Metadane dotyczące wykorzystania treści z pamięci podręcznej.

Pola
totalTokenCount integer

Łączna liczba tokenów zużywanych przez treści przechowywane w pamięci podręcznej.

Zapis JSON
{
  "totalTokenCount": integer
}