Caching

La memorizzazione nella cache del contesto consente di salvare e riutilizzare i token di input precalcolati che vuoi utilizzare ripetutamente, ad esempio quando poni domande diverse sullo stesso file multimediale. Ciò può comportare un risparmio di costi e velocità, a seconda dell'utilizzo. Per un'introduzione dettagliata, consulta la guida Memorizzazione nella cache del contesto.

Metodo: cachedContents.create

Crea la risorsa CachedContent.

Endpoint

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

Corpo della richiesta

Il corpo della richiesta contiene un'istanza di CachedContent.

Campi
contents[] object (Content)

(Facoltativo) Solo input. Immutabile. I contenuti da memorizzare nella cache.

tools[] object (Tool)

(Facoltativo) Solo input. Immutabile. Un elenco di Tools che il modello può utilizzare per generare la risposta successiva

expiration Union type
Specifica la data di scadenza di questa risorsa. expiration può essere solo uno dei seguenti:
expireTime string (Timestamp format)

Timestamp in UTC di quando questa risorsa è considerata scaduta. Viene sempre fornito nell'output, anche se non inviato nell'input.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Solo input. Nuovo TTL per questa risorsa, solo input.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

displayName string

(Facoltativo) Immutabile. Il nome visualizzato significativo generato dall'utente dei contenuti memorizzati nella cache. Massimo 128 caratteri Unicode.

model string

Obbligatorio. Immutabile. Il nome di Model da utilizzare per i contenuti memorizzati nella cache. Formato: models/{model}

systemInstruction object (Content)

(Facoltativo) Solo input. Immutabile. Istruzione di sistema impostata dallo sviluppatore. Al momento solo testo.

toolConfig object (ToolConfig)

(Facoltativo) Solo input. Immutabile. Configurazione dello strumento. Questa configurazione è condivisa per tutti gli strumenti.

Esempio di richiesta

Di base

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)

Conchiglia

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

Nome mittente

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)

Da una chat

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

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene un'istanza appena creata di CachedContent.

Metodo: cachedContents.list

Elenca CachedContents.

Endpoint

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

Parametri di query

pageSize integer

(Facoltativo) Il numero massimo di contenuti memorizzati nella cache da restituire. Il servizio potrebbe restituire un numero inferiore a questo valore. Se non specificato, verrà restituito un numero predefinito (inferiore al massimo) di elementi. Il valore massimo è 1000; i valori superiori a 1000 verranno forzati a 1000.

pageToken string

(Facoltativo) Un token di pagina, ricevuto da una precedente chiamata cachedContents.list. Fornisci questo valore per recuperare la pagina successiva.

Durante la paginazione, tutti gli altri parametri forniti a cachedContents.list devono corrispondere alla chiamata che ha fornito il token di pagina.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Corpo della risposta

Risposta con l'elenco CachedContents.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Campi
cachedContents[] object (CachedContent)

Elenco dei contenuti memorizzati nella cache.

nextPageToken string

Un token, che può essere inviato come pageToken per recuperare la pagina successiva. Se questo campo viene omesso, non verranno visualizzate altre pagine.

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

Metodo: cachedContents.get

Legge la risorsa CachedContent.

Endpoint

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

Parametri del percorso

name string

Obbligatorio. Il nome della risorsa che fa riferimento alla voce della cache dei contenuti. Formato: cachedContents/{id}. Assume la forma cachedContents/{cachedcontent}.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Esempio di richiesta

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)

Conchiglia

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

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene un'istanza di CachedContent.

Metodo: cachedContents.patch

Aggiorna la risorsa CachedContent (solo la scadenza è aggiornabile).

Endpoint

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

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

Parametri del percorso

cachedContent.name string

Solo output. Identificatore. Il nome della risorsa che fa riferimento ai contenuti memorizzati nella cache. Formato: cachedContents/{id}. Assume la forma cachedContents/{cachedcontent}.

Parametri di query

updateMask string (FieldMask format)

L'elenco dei campi da aggiornare.

Si tratta di un elenco separato da virgole di nomi completi dei campi. Esempio: "user.displayName,photo".

Corpo della richiesta

Il corpo della richiesta contiene un'istanza di CachedContent.

Campi
expiration Union type
Specifica la data di scadenza di questa risorsa. expiration può essere solo uno dei seguenti:
expireTime string (Timestamp format)

Timestamp in UTC di quando questa risorsa è considerata scaduta. Viene sempre fornito nell'output, anche se non inviato nell'input.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Solo input. Nuovo TTL per questa risorsa, solo input.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

Esempio di richiesta

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)

Conchiglia

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

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene un'istanza di CachedContent.

Metodo: cachedContents.delete

Elimina la risorsa CachedContent.

Endpoint

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

Parametri del percorso

name string

Obbligatorio. Il nome della risorsa che fa riferimento alla voce della cache dei contenuti. Formato: cachedContents/{id}. Ha la forma cachedContents/{cachedcontent}.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Esempio di richiesta

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)

Conchiglia

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

Corpo della risposta

In caso di esito positivo, il corpo della risposta è un oggetto JSON vuoto.

Risorsa REST: cachedContents

Risorsa: CachedContent

Contenuti preelaborati che possono essere utilizzati nelle richieste successive a GenerativeService.

I contenuti memorizzati nella cache possono essere utilizzati solo con il modello per cui sono stati creati.

Campi
contents[] object (Content)

(Facoltativo) Solo input. Immutabile. I contenuti da memorizzare nella cache.

tools[] object (Tool)

(Facoltativo) Solo input. Immutabile. Un elenco di Tools che il modello può utilizzare per generare la risposta successiva

createTime string (Timestamp format)

Solo output. Data e ora di creazione della voce della cache.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

updateTime string (Timestamp format)

Solo output. Data e ora dell'ultimo aggiornamento della voce della cache in formato UTC.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

usageMetadata object (UsageMetadata)

Solo output. Metadati sull'utilizzo dei contenuti memorizzati nella cache.

expiration Union type
Specifica la data di scadenza di questa risorsa. expiration può essere solo uno dei seguenti:
expireTime string (Timestamp format)

Timestamp in UTC di quando questa risorsa è considerata scaduta. Viene sempre fornito nell'output, anche se non inviato nell'input.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Solo input. Nuovo TTL per questa risorsa, solo input.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

name string

Solo output. Identificatore. Il nome della risorsa che fa riferimento ai contenuti memorizzati nella cache. Formato: cachedContents/{id}

displayName string

(Facoltativo) Immutabile. Il nome visualizzato significativo generato dall'utente dei contenuti memorizzati nella cache. Massimo 128 caratteri Unicode.

model string

Obbligatorio. Immutabile. Il nome di Model da utilizzare per i contenuti memorizzati nella cache. Formato: models/{model}

systemInstruction object (Content)

(Facoltativo) Solo input. Immutabile. Istruzione di sistema impostata dallo sviluppatore. Al momento solo testo.

toolConfig object (ToolConfig)

(Facoltativo) Solo input. Immutabile. Configurazione dello strumento. Questa configurazione è condivisa per tutti gli strumenti.

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

Contenuti

Il tipo di dati strutturati di base contenente i contenuti in più parti di un messaggio.

Un Content include un campo role che indica il produttore del Content e un campo parts contenente dati in più parti che includono il contenuto del turno del messaggio.

Campi
parts[] object (Part)

Parts ordinati che costituiscono un unico messaggio. Le parti possono avere tipi MIME diversi.

role string

(Facoltativo) Il produttore dei contenuti. Deve essere "user" o "model".

Utile per le conversazioni a turni multipli, altrimenti può essere lasciato vuoto o non impostato.

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

Parte

Un tipo di dati contenente contenuti multimediali che fanno parte di un messaggio Content in più parti.

Un Part è costituito da dati a cui è associato un tipo di dati. Un Part può contenere solo uno dei tipi accettati in Part.data.

Un Part deve avere un tipo MIME IANA fisso che identifichi il tipo e il sottotipo del media se il campo inlineData è compilato con byte non elaborati.

Campi
thought boolean

(Facoltativo) Indica se la parte è stata pensata dal modello.

thoughtSignature string (bytes format)

(Facoltativo) Una firma opaca per il pensiero, in modo che possa essere riutilizzato nelle richieste successive.

Una stringa con codifica Base64.

data Union type
data può essere solo uno dei seguenti:
text string

Testo in linea.

inlineData object (Blob)

Byte dei media in linea.

functionCall object (FunctionCall)

Un FunctionCall previsto restituito dal modello che contiene una stringa che rappresenta FunctionDeclaration.name con gli argomenti e i relativi valori.

functionResponse object (FunctionResponse)

L'output del risultato di un FunctionCall che contiene una stringa che rappresenta FunctionDeclaration.name e un oggetto JSON strutturato contenente qualsiasi output della funzione viene utilizzato come contesto per il modello.

fileData object (FileData)

Dati basati sull'URI.

executableCode object (ExecutableCode)

Codice generato dal modello che deve essere eseguito.

codeExecutionResult object (CodeExecutionResult)

Risultato dell'esecuzione di ExecutableCode.

metadata Union type
Controlla l'elaborazione preliminare aggiuntiva dei dati. metadata può essere solo uno dei seguenti:
videoMetadata object (VideoMetadata)

(Facoltativo) Metadati video. I metadati devono essere specificati solo mentre i dati video vengono presentati in inlineData o fileData.

Rappresentazione JSON
{
  "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

Byte multimediali non elaborati.

Il testo non deve essere inviato come byte non elaborati, utilizza il campo "text".

Campi
mimeType string

Il tipo MIME standard IANA dei dati di origine. Esempi: - image/png - image/jpeg Se viene fornito un tipo MIME non supportato, verrà restituito un errore. Per un elenco completo dei tipi supportati, consulta Formati di file supportati.

data string (bytes format)

Byte non elaborati per i formati multimediali.

Una stringa con codifica Base64.

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

FunctionCall

Un FunctionCall previsto restituito dal modello che contiene una stringa che rappresenta FunctionDeclaration.name con gli argomenti e i relativi valori.

Campi
id string

(Facoltativo) L'ID univoco della chiamata di funzione. Se compilato, il client deve eseguire functionCall e restituire la risposta con id corrispondente.

name string

Obbligatorio. Il nome della funzione da chiamare. Deve essere composto da caratteri a-z, A-Z, 0-9 o contenere trattini bassi e trattini, con una lunghezza massima di 63 caratteri.

args object (Struct format)

(Facoltativo) I parametri e i valori della funzione in formato oggetto JSON.

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

FunctionResponse

L'output del risultato di un FunctionCall contenente una stringa che rappresenta FunctionDeclaration.name e un oggetto JSON strutturato contenente qualsiasi output della funzione viene utilizzato come contesto per il modello. Deve contenere il risultato di un FunctionCall basato sulla previsione del modello.

Campi
id string

(Facoltativo) L'ID della chiamata di funzione a cui si riferisce questa risposta. Compilato dal client in modo che corrisponda alla chiamata funzione id.

name string

Obbligatorio. Il nome della funzione da chiamare. Deve essere composto da caratteri a-z, A-Z, 0-9 o contenere trattini bassi e trattini, con una lunghezza massima di 63 caratteri.

response object (Struct format)

Obbligatorio. La risposta della funzione in formato oggetto JSON.

willContinue boolean

(Facoltativo) Indica che la chiamata di funzione continua e che verranno restituite altre risposte, trasformando la chiamata di funzione in un generatore. Si applica solo alle chiamate di funzioni NON_BLOCKING, altrimenti viene ignorato. Se viene impostato su false, le risposte future non verranno prese in considerazione. È consentito restituire response vuoto con willContinue=False per segnalare che la chiamata di funzione è terminata. Ciò potrebbe comunque attivare la generazione del modello. Per evitare di attivare la generazione e completare la chiamata funzione, imposta anche scheduling su SILENT.

scheduling enum (Scheduling)

(Facoltativo) Specifica come deve essere pianificata la risposta nella conversazione. Applicabile solo alle chiamate di funzione NON_BLOCKING, altrimenti viene ignorato. Il valore predefinito è WHEN_IDLE.

Rappresentazione JSON
{
  "id": string,
  "name": string,
  "response": {
    object
  },
  "willContinue": boolean,
  "scheduling": enum (Scheduling)
}

Pianificazione

Specifica come deve essere pianificata la risposta nella conversazione.

Enum
SCHEDULING_UNSPECIFIED Questo valore non viene utilizzato.
SILENT Aggiungi solo il risultato al contesto della conversazione, non interrompere o attivare la generazione.
WHEN_IDLE Aggiungi il risultato al contesto della conversazione e chiedi di generare l'output senza interrompere la generazione in corso.
INTERRUPT Aggiungi il risultato al contesto della conversazione, interrompi la generazione in corso e chiedi di generare l'output.

FileData

Dati basati sull'URI.

Campi
mimeType string

(Facoltativo) Il tipo MIME standard IANA dei dati di origine.

fileUri string

Obbligatorio. URI.

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

ExecutableCode

Codice generato dal modello che deve essere eseguito e il risultato restituito al modello.

Generato solo quando si utilizza lo strumento CodeExecution, in cui il codice verrà eseguito automaticamente e verrà generato anche un CodeExecutionResult corrispondente.

Campi
language enum (Language)

Obbligatorio. Linguaggio di programmazione di code.

code string

Obbligatorio. Il codice da eseguire.

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

Lingua

Linguaggi di programmazione supportati per il codice generato.

Enum
LANGUAGE_UNSPECIFIED Lingua non specificata. Questo valore non deve essere utilizzato.
PYTHON Python >= 3.10, con numpy e simpy disponibili.

CodeExecutionResult

Risultato dell'esecuzione di ExecutableCode.

Viene generato solo quando viene utilizzato CodeExecution e segue sempre un part contenente ExecutableCode.

Campi
outcome enum (Outcome)

Obbligatorio. Risultato dell'esecuzione del codice.

output string

(Facoltativo) Contiene stdout quando l'esecuzione del codice va a buon fine, stderr o un'altra descrizione in caso contrario.

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

Risultato

Enumerazione dei possibili risultati dell'esecuzione del codice.

Enum
OUTCOME_UNSPECIFIED Stato non specificato. Questo valore non deve essere utilizzato.
OUTCOME_OK Esecuzione del codice completata correttamente.
OUTCOME_FAILED L'esecuzione del codice è terminata, ma con un errore. stderr deve contenere il motivo.
OUTCOME_DEADLINE_EXCEEDED L'esecuzione del codice è durata troppo a lungo ed è stata annullata. Potrebbe essere presente o meno un output parziale.

VideoMetadata

I metadati descrivono i contenuti video di input.

Campi
startOffset string (Duration format)

(Facoltativo) L'offset iniziale del video.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

endOffset string (Duration format)

(Facoltativo) L'offset finale del video.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

fps number

(Facoltativo) La frequenza fotogrammi del video inviato al modello. Se non è specificato, il valore predefinito è 1.0. L'intervallo di fps è (0.0, 24.0].

Rappresentazione JSON
{
  "startOffset": string,
  "endOffset": string,
  "fps": number
}

Strumento

Dettagli dello strumento che il modello può utilizzare per generare la risposta.

Un Tool è un frammento di codice che consente al sistema di interagire con sistemi esterni per eseguire un'azione o un insieme di azioni al di fuori delle conoscenze e dell'ambito del modello.

Campi
functionDeclarations[] object (FunctionDeclaration)

(Facoltativo) Un elenco di FunctionDeclarations disponibili per il modello che possono essere utilizzati per la chiamata di funzioni.

Il modello o il sistema non esegue la funzione. La funzione definita può invece essere restituita come FunctionCall con argomenti al lato client per l'esecuzione. Il modello può decidere di chiamare un sottoinsieme di queste funzioni compilando FunctionCall nella risposta. Il turno di conversazione successivo potrebbe contenere un FunctionResponse con il contesto di generazione della "funzione" Content.role per il turno successivo del modello.

googleSearchRetrieval object (GoogleSearchRetrieval)

(Facoltativo) Strumento di recupero basato sulla Ricerca Google.

codeExecution object (CodeExecution)

(Facoltativo) Consente al modello di eseguire il codice durante la generazione.

urlContext object (UrlContext)

(Facoltativo) Strumento per supportare il recupero del contesto dell'URL.

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

FunctionDeclaration

Rappresentazione strutturata di una dichiarazione di funzione come definita dalla specifica OpenAPI 3.03. In questa dichiarazione sono inclusi il nome e i parametri della funzione. Questa FunctionDeclaration è una rappresentazione di un blocco di codice che può essere utilizzato come Tool dal modello ed eseguito dal client.

Campi
name string

Obbligatorio. Il nome della funzione. Deve essere composto da caratteri a-z, A-Z, 0-9 o contenere trattini bassi e trattini, con una lunghezza massima di 63 caratteri.

description string

Obbligatorio. Una breve descrizione della funzione.

behavior enum (Behavior)

(Facoltativo) Specifica il comportamento della funzione. Al momento è supportato solo dal metodo BidiGenerateContent.

parameters object (Schema)

(Facoltativo) Descrive i parametri di questa funzione. Riflette la chiave stringa dell'oggetto parametro Open API 3.03: il nome del parametro. I nomi dei parametri sono sensibili alle maiuscole. Valore dello schema: lo schema che definisce il tipo utilizzato per il parametro.

parametersJsonSchema value (Value format)

(Facoltativo) Descrive i parametri della funzione in formato JSON Schema. Lo schema deve descrivere un oggetto in cui le proprietà sono i parametri della funzione. Ad esempio:

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

Questo campo si esclude a vicenda con parameters.

response object (Schema)

(Facoltativo) Descrive l'output di questa funzione in formato JSON Schema. Riflette l'oggetto risposta dell'API aperta 3.03. Lo schema definisce il tipo utilizzato per il valore di risposta della funzione.

responseJsonSchema value (Value format)

(Facoltativo) Descrive l'output di questa funzione in formato JSON Schema. Il valore specificato dallo schema è il valore di risposta della funzione.

Questo campo si esclude a vicenda con response.

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

Schema

L'oggetto Schema consente la definizione dei tipi di dati di input e output. Questi tipi possono essere oggetti, ma anche primitive e array. Rappresenta un sottoinsieme selezionato di un oggetto schema OpenAPI 3.0.

Campi
type enum (Type)

Obbligatorio. Tipo di dati.

format string

(Facoltativo) Il formato dei dati. Viene utilizzato solo per i tipi di dati primitivi. Formati supportati: per il tipo NUMBER: float, double per il tipo INTEGER: int32, int64 per il tipo STRING: enum, date-time

title string

(Facoltativo) Il titolo dello schema.

description string

(Facoltativo) Una breve descrizione del parametro. Potrebbe contenere esempi di utilizzo. La descrizione del parametro può essere formattata come Markdown.

nullable boolean

(Facoltativo) Indica se il valore può essere null.

enum[] string

(Facoltativo) Valori possibili dell'elemento di Type.STRING con formato enum. Ad esempio, possiamo definire un'enumerazione Direction come : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]}

maxItems string (int64 format)

(Facoltativo) Numero massimo di elementi per Type.ARRAY.

minItems string (int64 format)

(Facoltativo) Numero minimo di elementi per Type.ARRAY.

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

(Facoltativo) Proprietà di Type.OBJECT.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[] string

(Facoltativo) Proprietà obbligatorie di Type.OBJECT.

minProperties string (int64 format)

(Facoltativo) Numero minimo di proprietà per Type.OBJECT.

maxProperties string (int64 format)

(Facoltativo) Numero massimo di proprietà per Type.OBJECT.

minLength string (int64 format)

(Facoltativo) CAMPI DELLO SCHEMA PER IL TIPO STRINGA Lunghezza minima di Type.STRING

maxLength string (int64 format)

(Facoltativo) Lunghezza massima di Type.STRING

pattern string

(Facoltativo) Pattern di Type.STRING per limitare una stringa a un'espressione regolare.

example value (Value format)

(Facoltativo) Esempio dell'oggetto. Verrà compilato solo quando l'oggetto è la radice.

anyOf[] object (Schema)

(Facoltativo) Il valore deve essere convalidato rispetto a uno o più sottoschema nell'elenco.

propertyOrdering[] string

(Facoltativo) L'ordine delle proprietà. Non è un campo standard nella specifica OpenAPI. Viene utilizzato per determinare l'ordine delle proprietà nella risposta.

default value (Value format)

(Facoltativo) Valore predefinito del campo. In base allo schema JSON, questo campo è destinato ai generatori di documentazione e non influisce sulla convalida. Pertanto, è incluso qui e ignorato in modo che gli sviluppatori che inviano schemi con un campo default non ricevano errori di campo sconosciuto.

items object (Schema)

(Facoltativo) Schema degli elementi di Type.ARRAY.

minimum number

(Facoltativo) CAMPI SCHEMA PER TIPO INTEGER e NUMBER Valore minimo di Type.INTEGER e Type.NUMBER

maximum number

(Facoltativo) Valore massimo di Type.INTEGER e Type.NUMBER

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

Tipo

Il tipo contiene l'elenco dei tipi di dati OpenAPI definiti da https://spec.openapis.org/oas/v3.0.3#data-types

Enum
TYPE_UNSPECIFIED Non specificato, non deve essere utilizzato.
STRING Tipo di stringa.
NUMBER Tipo di numero.
INTEGER Tipo di numero intero.
BOOLEAN Tipo booleano.
ARRAY Tipo di array.
OBJECT Tipo di oggetto.
NULL Tipo nullo.

Comportamento

Definisce il comportamento della funzione. Il valore predefinito è BLOCKING.

Enum
UNSPECIFIED Questo valore non viene utilizzato.
BLOCKING Se impostato, il sistema attenderà di ricevere la risposta della funzione prima di continuare la conversazione.
NON_BLOCKING Se impostato, il sistema non attenderà la ricezione della risposta della funzione. Tenterà invece di gestire le risposte delle funzioni non appena saranno disponibili, mantenendo la conversazione tra l'utente e il modello.

GoogleSearchRetrieval

Strumento per recuperare dati web pubblici per il grounding, basato su Google.

Campi
dynamicRetrievalConfig object (DynamicRetrievalConfig)

Specifica la configurazione del recupero dinamico per l'origine specificata.

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

DynamicRetrievalConfig

Descrive le opzioni per personalizzare il recupero dinamico.

Campi
mode enum (Mode)

La modalità del predittore da utilizzare nel recupero dinamico.

dynamicThreshold number

La soglia da utilizzare nel recupero dinamico. Se non viene impostato, viene utilizzato un valore predefinito del sistema.

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

Modalità

La modalità del predittore da utilizzare nel recupero dinamico.

Enum
MODE_UNSPECIFIED Attiva sempre il recupero.
MODE_DYNAMIC Esegui il recupero solo quando il sistema lo ritiene necessario.

CodeExecution

Questo tipo non contiene campi.

Strumento che esegue il codice generato dal modello e restituisce automaticamente il risultato al modello.

Vedi anche ExecutableCode e CodeExecutionResult, che vengono generati solo quando utilizzi questo strumento.

GoogleSearch

Tipo di strumento GoogleSearch. Strumento per supportare la Ricerca Google in Model. Con tecnologia Google.

Campi
timeRangeFilter object (Interval)

(Facoltativo) Filtrare i risultati di ricerca in base a un intervallo di tempo specifico. Se i clienti impostano un'ora di inizio, devono impostare anche un'ora di fine (e viceversa).

Rappresentazione JSON
{
  "timeRangeFilter": {
    object (Interval)
  }
}

Intervallo

Rappresenta un intervallo di tempo, codificato come Timestamp di inizio (incluso) e Timestamp di fine (escluso).

L'inizio deve essere inferiore o uguale alla fine. Quando l'inizio è uguale alla fine, l'intervallo è vuoto (non corrisponde a nessun orario). Se non vengono specificati né l'inizio né la fine, l'intervallo corrisponde a qualsiasi ora.

Campi
startTime string (Timestamp format)

(Facoltativo) Inizio inclusivo dell'intervallo.

Se specificato, un timestamp corrispondente a questo intervallo dovrà essere uguale o successivo all'inizio.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

endTime string (Timestamp format)

(Facoltativo) Fine esclusiva dell'intervallo.

Se specificato, un timestamp corrispondente a questo intervallo dovrà essere precedente alla fine.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

Rappresentazione JSON
{
  "startTime": string,
  "endTime": string
}

UrlContext

Questo tipo non contiene campi.

Strumento per supportare il recupero del contesto dell'URL.

ToolConfig

La configurazione dello strumento contenente i parametri per specificare l'utilizzo di Tool nella richiesta.

Campi
functionCallingConfig object (FunctionCallingConfig)

(Facoltativo) Configurazione della chiamata di funzione.

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

FunctionCallingConfig

Configurazione per specificare il comportamento della chiamata di funzione.

Campi
mode enum (Mode)

(Facoltativo) Specifica la modalità di esecuzione della chiamata di funzione. Se non è specificato, il valore predefinito sarà AUTO.

allowedFunctionNames[] string

(Facoltativo) Un insieme di nomi di funzioni che, se forniti, limitano le funzioni che il modello chiamerà.

Questa impostazione deve essere configurata solo quando la modalità è ANY. I nomi delle funzioni devono corrispondere a [FunctionDeclaration.name]. Se la modalità è impostata su ANY, il modello prevede una chiamata di funzione dall'insieme di nomi di funzioni fornito.

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

Modalità

Definisce il comportamento di esecuzione per la chiamata di funzioni definendo la modalità di esecuzione.

Enum
MODE_UNSPECIFIED Modalità chiamata di funzione non specificata. Questo valore non deve essere utilizzato.
AUTO Comportamento predefinito del modello: il modello decide di prevedere una chiamata di funzione o una risposta in linguaggio naturale.
ANY Il modello è vincolato a prevedere sempre solo una chiamata di funzione. Se sono impostati "allowedFunctionNames", la chiamata di funzione prevista sarà limitata a uno qualsiasi degli "allowedFunctionNames", altrimenti la chiamata di funzione prevista sarà una qualsiasi delle "functionDeclarations" fornite.
NONE Il modello non prevede alcuna chiamata di funzione. Il comportamento del modello è lo stesso di quando non vengono passate dichiarazioni di funzioni.
VALIDATED Il modello decide di prevedere una chiamata di funzione o una risposta in linguaggio naturale, ma convalida le chiamate di funzione con la decodifica vincolata.

UsageMetadata

Metadati sull'utilizzo dei contenuti memorizzati nella cache.

Campi
totalTokenCount integer

Numero totale di token utilizzati dai contenuti memorizzati nella cache.

Rappresentazione JSON
{
  "totalTokenCount": integer
}