Caching

La mise en cache du contexte vous permet d'enregistrer et de réutiliser les jetons d'entrée précalculés que vous souhaitez utiliser à plusieurs reprises, par exemple lorsque vous posez différentes questions sur le même fichier multimédia. Cela peut permettre de réaliser des économies en termes de coûts et de temps, en fonction de l'utilisation. Pour une présentation détaillée, consultez le guide Mise en cache du contexte.

Méthode : cachedContents.create

Crée une ressource CachedContent.

Point de terminaison

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

Corps de la requête

Le corps de la requête contient une instance de CachedContent.

Champs
contents[] object (Content)

Facultatif. Uniquement en entrée. Immuable. Contenu à mettre en cache.

tools[] object (Tool)

Facultatif. Uniquement en entrée. Immuable. Liste de Tools que le modèle peut utiliser pour générer la réponse suivante.

expiration Union type
Indique la date d'expiration de cette ressource. expiration ne peut être qu'un des éléments suivants :
expireTime string (Timestamp format)

Code temporel en UTC du moment où cette ressource est considérée comme expirée. Ce code est toujours fourni en sortie, quel que soit ce qui a été envoyé en entrée.

Utilise la norme RFC 3339, où le résultat généré est toujours normalisé avec le suffixe Z et utilise 0, 3, 6 ou 9 chiffres décimaux. Les décalages autres que "Z" sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Uniquement en entrée. Nouvelle durée de vie (TTL) pour cette ressource, en entrée uniquement.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

displayName string

Facultatif. Immuable. Nom à afficher significatif et généré par l'utilisateur pour le contenu mis en cache. 128 caractères Unicode maximum.

model string

Obligatoire. Immuable. Nom de l'Model à utiliser pour le contenu mis en cache. Format : models/{model}

systemInstruction object (Content)

Facultatif. Uniquement en entrée. Immuable. Instruction système définie par le développeur. Texte uniquement pour le moment.

toolConfig object (ToolConfig)

Facultatif. Uniquement en entrée. Immuable. Configuration de l'outil Cette configuration est partagée pour tous les outils.

Exemple de requête

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

Coquille Rose

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

Nom de l'expéditeur

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)

Depuis une discussion

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

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de CachedContent.

Méthode : cachedContents.list

Répertorie les CachedContents.

Point de terminaison

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

Paramètres de requête

pageSize integer

Facultatif. Nombre maximal de contenus mis en cache à renvoyer. Le service peut renvoyer un nombre inférieur à cette valeur. Si aucune valeur n'est spécifiée, un nombre d'éléments par défaut (inférieur au maximum) sera renvoyé. La valeur maximale est 1 000. Les valeurs supérieures sont réduites à 1 000.

pageToken string

Facultatif. Jeton de page reçu d'un appel cachedContents.list précédent. Fournissez-le pour récupérer la page suivante.

Lors de la pagination, tous les autres paramètres fournis à cachedContents.list doivent correspondre à l'appel ayant fourni le jeton de page.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Réponse avec la liste CachedContents.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Champs
cachedContents[] object (CachedContent)

Liste des contenus mis en cache.

nextPageToken string

Jeton pouvant être envoyé en tant que pageToken pour récupérer la page suivante. Si ce champ est omis, il n'y a pas d'autres pages.

Représentation JSON
{
  "cachedContents": [
    {
      object (CachedContent)
    }
  ],
  "nextPageToken": string
}

Méthode : cachedContents.get

Lit la ressource CachedContent.

Point de terminaison

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

Paramètres de chemin d'accès

name string

Obligatoire. Nom de ressource faisant référence à l'entrée du cache de contenu. Format : cachedContents/{id}. Il se présente sous la forme cachedContents/{cachedcontent}.

Corps de la requête

Le corps de la requête doit être vide.

Exemple de requête

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)

Coquille Rose

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

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de CachedContent.

Méthode : cachedContents.patch

Mise à jour de la ressource CachedContent (seule l'expiration peut être mise à jour).

Point de terminaison

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

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

Paramètres de chemin d'accès

cachedContent.name string

Uniquement en sortie. Identifiant. Nom de ressource faisant référence au contenu mis en cache. Format : cachedContents/{id}. Il se présente sous la forme cachedContents/{cachedcontent}.

Paramètres de requête

updateMask string (FieldMask format)

Liste des champs à mettre à jour.

Il s'agit d'une liste de noms de champs complets séparés par une virgule. Exemple : "user.displayName,photo"

Corps de la requête

Le corps de la requête contient une instance de CachedContent.

Champs
expiration Union type
Indique la date d'expiration de cette ressource. expiration ne peut être qu'un des éléments suivants :
expireTime string (Timestamp format)

Code temporel en UTC du moment où cette ressource est considérée comme expirée. Ce code est toujours fourni en sortie, quel que soit ce qui a été envoyé en entrée.

Utilise la norme RFC 3339, où le résultat généré est toujours normalisé avec le suffixe Z et utilise 0, 3, 6 ou 9 chiffres décimaux. Les décalages autres que "Z" sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Uniquement en entrée. Nouvelle durée de vie (TTL) pour cette ressource, en entrée uniquement.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

Exemple de requête

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)

Coquille Rose

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

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de CachedContent.

Méthode : cachedContents.delete

Supprime la ressource CachedContent.

Point de terminaison

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

Paramètres de chemin d'accès

name string

Obligatoire. Nom de ressource faisant référence à l'entrée du cache de contenu. Format : cachedContents/{id}. Il se présente sous la forme cachedContents/{cachedcontent}.

Corps de la requête

Le corps de la requête doit être vide.

Exemple de requête

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)

Coquille Rose

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

Corps de la réponse

Si la requête aboutit, le corps de la réponse est un objet JSON vide.

Ressource REST : cachedContents

Ressource : CachedContent

Contenu prétraité pouvant être utilisé dans une requête ultérieure adressée à GenerativeService.

Le contenu mis en cache ne peut être utilisé qu'avec le modèle pour lequel il a été créé.

Champs
contents[] object (Content)

Facultatif. Uniquement en entrée. Immuable. Contenu à mettre en cache.

tools[] object (Tool)

Facultatif. Uniquement en entrée. Immuable. Liste de Tools que le modèle peut utiliser pour générer la réponse suivante.

createTime string (Timestamp format)

Uniquement en sortie. Heure de création de l'entrée de cache.

Utilise la norme RFC 3339, où le résultat généré est toujours normalisé avec le suffixe Z et utilise 0, 3, 6 ou 9 chiffres décimaux. Les décalages autres que "Z" sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

updateTime string (Timestamp format)

Uniquement en sortie. Date de la dernière mise à jour de l'entrée de cache en heure UTC.

Utilise la norme RFC 3339, où le résultat généré est toujours normalisé avec le suffixe Z et utilise 0, 3, 6 ou 9 chiffres décimaux. Les décalages autres que "Z" sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

usageMetadata object (UsageMetadata)

Uniquement en sortie. Métadonnées sur l'utilisation du contenu mis en cache.

expiration Union type
Indique la date d'expiration de cette ressource. expiration ne peut être qu'un des éléments suivants :
expireTime string (Timestamp format)

Code temporel en UTC du moment où cette ressource est considérée comme expirée. Ce code est toujours fourni en sortie, quel que soit ce qui a été envoyé en entrée.

Utilise la norme RFC 3339, où le résultat généré est toujours normalisé avec le suffixe Z et utilise 0, 3, 6 ou 9 chiffres décimaux. Les décalages autres que "Z" sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

ttl string (Duration format)

Uniquement en entrée. Nouvelle durée de vie (TTL) pour cette ressource, en entrée uniquement.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

name string

Uniquement en sortie. Identifiant. Nom de ressource faisant référence au contenu mis en cache. Format : cachedContents/{id}

displayName string

Facultatif. Immuable. Nom à afficher significatif et généré par l'utilisateur pour le contenu mis en cache. 128 caractères Unicode maximum.

model string

Obligatoire. Immuable. Nom de l'Model à utiliser pour le contenu mis en cache. Format : models/{model}

systemInstruction object (Content)

Facultatif. Uniquement en entrée. Immuable. Instruction système définie par le développeur. Texte uniquement pour le moment.

toolConfig object (ToolConfig)

Facultatif. Uniquement en entrée. Immuable. Configuration de l'outil Cette configuration est partagée pour tous les outils.

Représentation 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)
  }
}

Contenu

Type de données structurées de base comportant le contenu en plusieurs parties d'un message.

Un Content inclut un champ role désignant le producteur du Content et un champ parts contenant des données en plusieurs parties qui contiennent le contenu du tour de message.

Champs
parts[] object (Part)

Parts ordonnés qui constituent un seul message. Les parties peuvent avoir différents types MIME.

role string

Facultatif. Producteur du contenu. La valeur doit être "user" ou "model".

Il est utile de le définir pour les conversations multitours. Sinon, vous pouvez le laisser vide ou ne pas le définir.

Représentation JSON
{
  "parts": [
    {
      object (Part)
    }
  ],
  "role": string
}

Partie

Type de données comportant du contenu multimédia qui fait partie d'un message Content en plusieurs parties.

Un Part se compose de données auxquelles est associé un type de données. Un Part ne peut contenir qu'un seul des types acceptés dans Part.data.

Un Part doit avoir un type MIME IANA fixe identifiant le type et le sous-type du média si le champ inlineData est rempli avec des octets bruts.

Champs
thought boolean

Facultatif. Indique si la partie est issue du modèle.

thoughtSignature string (bytes format)

Facultatif. Signature opaque pour la pensée, afin qu'elle puisse être réutilisée dans les requêtes ultérieures.

Chaîne encodée en base64.

data Union type
data ne peut être qu'un des éléments suivants :
text string

Texte intégré.

inlineData object (Blob)

Octets de contenu multimédia intégrés.

functionCall object (FunctionCall)

FunctionCall prédit renvoyé par le modèle et qui contient une chaîne représentant le FunctionDeclaration.name avec les arguments et leurs valeurs.

functionResponse object (FunctionResponse)

Le résultat d'une FunctionCall contenant une chaîne représentant la FunctionDeclaration.name et un objet JSON structuré contenant tout résultat de la fonction est utilisé comme contexte pour le modèle.

fileData object (FileData)

Données basées sur l'URI.

executableCode object (ExecutableCode)

Code généré par le modèle et destiné à être exécuté.

codeExecutionResult object (CodeExecutionResult)

Résultat de l'exécution de ExecutableCode.

metadata Union type
Contrôle le prétraitement supplémentaire des données. metadata ne peut être qu'un des éléments suivants :
videoMetadata object (VideoMetadata)

Facultatif. Métadonnées de vidéo. Vous ne devez spécifier les métadonnées que lorsque les données vidéo sont présentées dans inlineData ou fileData.

Représentation 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

Octets bruts du contenu multimédia.

Le texte ne doit pas être envoyé sous forme d'octets bruts. Utilisez le champ "text".

Champs
mimeType string

Type MIME standard IANA des données sources. Exemples : - image/png - image/jpeg Si un type MIME non compatible est fourni, une erreur est renvoyée. Pour obtenir la liste complète des types acceptés, consultez Formats de fichiers acceptés.

data string (bytes format)

Octets bruts pour les formats multimédias.

Chaîne encodée en base64.

Représentation JSON
{
  "mimeType": string,
  "data": string
}

FunctionCall

FunctionCall prédit renvoyé par le modèle et qui contient une chaîne représentant le FunctionDeclaration.name avec les arguments et leurs valeurs.

Champs
id string

Facultatif. Identifiant unique de l'appel de fonction. Si ce champ est renseigné, le client doit exécuter le functionCall et renvoyer la réponse avec le id correspondant.

name string

Obligatoire. Nom de la fonction à appeler. Il doit être composé de a-z, A-Z, 0-9, ou contenir des traits de soulignement et des tirets, avec une longueur maximale de 63.

args object (Struct format)

Facultatif. Paramètres et valeurs de la fonction au format d'objet JSON.

Représentation JSON
{
  "id": string,
  "name": string,
  "args": {
    object
  }
}

FunctionResponse

Le résultat d'une FunctionCall contenant une chaîne représentant la FunctionDeclaration.name et un objet JSON structuré contenant tout résultat de la fonction est utilisé comme contexte pour le modèle. Doit contenir le résultat d'une opération FunctionCall effectuée en fonction de la prédiction du modèle.

Champs
id string

Facultatif. ID de l'appel de fonction auquel cette réponse se rapporte. Renseigné par le client pour correspondre à l'appel de fonction id correspondant.

name string

Obligatoire. Nom de la fonction à appeler. Il doit être composé de a-z, A-Z, 0-9, ou contenir des traits de soulignement et des tirets, avec une longueur maximale de 63.

response object (Struct format)

Obligatoire. Réponse de la fonction au format d'objet JSON.

willContinue boolean

Facultatif. Signale que l'appel de fonction se poursuit et que d'autres réponses seront renvoyées, transformant l'appel de fonction en générateur. Ne s'applique qu'aux appels de fonction NON_BLOCKING. Dans le cas contraire, il est ignoré. Si la valeur est définie sur "false", les réponses futures ne seront pas prises en compte. Il est autorisé de renvoyer un response vide avec willContinue=False pour signaler que l'appel de fonction est terminé. Cela peut toujours déclencher la génération de contenu par le modèle. Pour éviter de déclencher la génération et terminer l'appel de fonction, définissez également scheduling sur SILENT.

scheduling enum (Scheduling)

Facultatif. Indique comment la réponse doit être planifiée dans la conversation. Applicable uniquement aux appels de fonction NON_BLOCKING, ignoré dans le cas contraire. La valeur par défaut est WHEN_IDLE.

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

Planification

Indique comment la réponse doit être planifiée dans la conversation.

Enums
SCHEDULING_UNSPECIFIED Cette valeur n'est pas utilisée.
SILENT Ajoute uniquement le résultat au contexte de la conversation, sans interrompre ni déclencher la génération.
WHEN_IDLE Ajoutez le résultat au contexte de la conversation et invitez à générer une sortie sans interrompre la génération en cours.
INTERRUPT Ajoutez le résultat au contexte de la conversation, interrompez la génération en cours et invitez à générer une sortie.

FileData

Données basées sur l'URI.

Champs
mimeType string

Facultatif. Type MIME standard IANA des données sources.

fileUri string

Obligatoire. URI.

Représentation JSON
{
  "mimeType": string,
  "fileUri": string
}

ExecutableCode

Code généré par le modèle et destiné à être exécuté, ainsi que le résultat renvoyé au modèle.

Généré uniquement lorsque vous utilisez l'outil CodeExecution, dans lequel le code est exécuté automatiquement et un CodeExecutionResult correspondant est également généré.

Champs
language enum (Language)

Obligatoire. Langage de programmation de code.

code string

Obligatoire. Code à exécuter.

Représentation JSON
{
  "language": enum (Language),
  "code": string
}

Langue

Langages de programmation compatibles pour le code généré.

Enums
LANGUAGE_UNSPECIFIED Langue non spécifiée. Cette valeur ne doit pas être utilisée.
PYTHON Python >= 3.10, avec numpy et simpy disponibles.

CodeExecutionResult

Résultat de l'exécution de ExecutableCode.

N'est généré que lorsque vous utilisez CodeExecution et suit toujours un part contenant le ExecutableCode.

Champs
outcome enum (Outcome)

Obligatoire. Résultat de l'exécution du code.

output string

Facultatif. Contient stdout lorsque l'exécution du code est réussie, stderr ou une autre description dans le cas contraire.

Représentation JSON
{
  "outcome": enum (Outcome),
  "output": string
}

Résultat

Énumération des résultats possibles de l'exécution du code.

Enums
OUTCOME_UNSPECIFIED État non spécifié. Cette valeur ne doit pas être utilisée.
OUTCOME_OK L'exécution du code s'est déroulée avec succès.
OUTCOME_FAILED L'exécution du code s'est terminée, mais a échoué. stderr doit contenir le motif.
OUTCOME_DEADLINE_EXCEEDED L'exécution du code a duré trop longtemps et a été annulée. Une sortie partielle peut être présente ou non.

VideoMetadata

Les métadonnées décrivent le contenu vidéo d'entrée.

Champs
startOffset string (Duration format)

Facultatif. Décalage de début de la vidéo.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

endOffset string (Duration format)

Facultatif. Décalage de fin de la vidéo

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

fps number

Facultatif. Fréquence d'images de la vidéo envoyée au modèle. Si aucune valeur n'est spécifiée, la valeur par défaut est 1.0. La plage de fps est (0.0, 24.0].

Représentation JSON
{
  "startOffset": string,
  "endOffset": string,
  "fps": number
}

Outil

Détails de l'outil que le modèle peut utiliser pour générer une réponse.

Tool est une portion de code qui permet au système d'interagir avec des systèmes externes pour effectuer une action ou un ensemble d'actions en dehors du champ d'application et des connaissances du modèle.

Champs
functionDeclarations[] object (FunctionDeclaration)

Facultatif. Liste des FunctionDeclarations disponibles pour le modèle et pouvant être utilisés pour l'appel de fonction.

Le modèle ou le système n'exécute pas la fonction. Au lieu de cela, la fonction définie peut être renvoyée en tant que FunctionCall avec des arguments côté client pour l'exécution. Le modèle peut décider d'appeler un sous-ensemble de ces fonctions en remplissant FunctionCall dans la réponse. Le tour de conversation suivant peut contenir un FunctionResponse avec le contexte de génération Content.role "function" pour le prochain tour de modèle.

googleSearchRetrieval object (GoogleSearchRetrieval)

Facultatif. Outil de récupération optimisé par la recherche Google.

codeExecution object (CodeExecution)

Facultatif. Permet au modèle d'exécuter du code lors de la génération.

urlContext object (UrlContext)

Facultatif. Outil permettant de récupérer le contexte d'une URL.

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

FunctionDeclaration

Représentation structurée d'une déclaration de fonction telle que définie par la spécification OpenAPI 3.03. Cette déclaration inclut le nom et les paramètres de la fonction. Cette FunctionDeclaration est une représentation d'un bloc de code qui peut être utilisé comme Tool par le modèle et exécuté par le client.

Champs
name string

Obligatoire. Nom de la fonction. Il doit être composé de a-z, A-Z, 0-9, ou contenir des traits de soulignement et des tirets, avec une longueur maximale de 63.

description string

Obligatoire. Brève description de la fonction.

behavior enum (Behavior)

Facultatif. Spécifie le comportement de la fonction. Actuellement, seule la méthode BidiGenerateContent est compatible.

parameters object (Schema)

Facultatif. Décrit les paramètres de cette fonction. Reflète la clé de chaîne de l'objet de paramètre Open API 3.03 : le nom du paramètre. Les noms de paramètres sont sensibles à la casse. Valeur du schéma : schéma définissant le type utilisé pour le paramètre.

parametersJsonSchema value (Value format)

Facultatif. Décrit les paramètres de la fonction au format JSON Schema. Le schéma doit décrire un objet dont les propriétés sont les paramètres de la fonction. Exemple :

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

Ce champ s'exclut mutuellement avec parameters.

response object (Schema)

Facultatif. Décrit la sortie de cette fonction au format JSON Schema. Reflète l'objet de réponse Open API 3.03. Le schéma définit le type utilisé pour la valeur de réponse de la fonction.

responseJsonSchema value (Value format)

Facultatif. Décrit la sortie de cette fonction au format JSON Schema. La valeur spécifiée par le schéma est la valeur de réponse de la fonction.

Ce champ s'exclut mutuellement avec response.

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

Schéma

L'objet Schema permet de définir les types de données d'entrée et de sortie. Ces types peuvent être des objets, mais aussi des primitives et des tableaux. Représente un sous-ensemble spécifique d'un objet de schéma OpenAPI 3.0.

Champs
type enum (Type)

Obligatoire. Type de données.

format string

Facultatif. Format des données. Elle n'est utilisée que pour les types de données primitifs. Formats acceptés : pour le type NUMBER : float, double ; pour le type INTEGER : int32, int64 ; pour le type STRING : enum, date-time

title string

Facultatif. Titre du schéma.

description string

Facultatif. Brève description du paramètre. Cela peut contenir des exemples d'utilisation. La description du paramètre peut être mise en forme au format Markdown.

nullable boolean

Facultatif. Indique si la valeur peut être nulle.

enum[] string

Facultatif. Valeurs possibles de l'élément Type.STRING avec le format enum. Par exemple, il est possible de définir une direction d'énumération comme suit : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]}

maxItems string (int64 format)

Facultatif. Nombre maximal d'éléments pour Type.ARRAY.

minItems string (int64 format)

Facultatif. Nombre minimal d'éléments pour Type.ARRAY.

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

Facultatif. Propriétés de Type.OBJECT.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[] string

Facultatif. Propriétés requises de Type.OBJECT.

minProperties string (int64 format)

Facultatif. Nombre minimal de propriétés pour Type.OBJECT.

maxProperties string (int64 format)

Facultatif. Nombre maximal de propriétés pour Type.OBJECT.

minLength string (int64 format)

Facultatif. CHAMPS DE SCHÉMA POUR LE TYPE STRING Longueur minimale du type STRING

maxLength string (int64 format)

Facultatif. Longueur maximale de Type.STRING

pattern string

Facultatif. Modèle de Type.STRING permettant de limiter une chaîne à une expression régulière.

example value (Value format)

Facultatif. Exemple d'objet. Ne sera renseigné que si l'objet est la racine.

anyOf[] object (Schema)

Facultatif. La valeur doit être validée par rapport à l'un ou plusieurs des sous-schémas de la liste.

propertyOrdering[] string

Facultatif. Ordre des propriétés. Il ne s'agit pas d'un champ standard dans la spécification OpenAPI. Il est utilisé pour déterminer l'ordre des propriétés dans la réponse.

default value (Value format)

Facultatif. Valeur par défaut du champ. Conformément au schéma JSON, ce champ est destiné aux générateurs de documentation et n'affecte pas la validation. Il est donc inclus ici et ignoré afin que les développeurs qui envoient des schémas avec un champ default ne reçoivent pas d'erreurs de champ inconnu.

items object (Schema)

Facultatif. Schéma des éléments de Type.ARRAY.

minimum number

Facultatif. CHAMPS DE SCHÉMA POUR LES TYPES INTEGER ET NUMBER Valeur minimale des types INTEGER et NUMBER

maximum number

Facultatif. Valeur maximale de Type.INTEGER et Type.NUMBER

Représentation 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
}

Type

Le type contient la liste des types de données OpenAPI tels que définis par https://spec.openapis.org/oas/v3.0.3#data-types.

Enums
TYPE_UNSPECIFIED Non spécifié, ne doit pas être utilisé.
STRING Type de chaîne.
NUMBER Type de numéro.
INTEGER Type entier.
BOOLEAN Type booléen.
ARRAY Type de tableau.
OBJECT Type d'objet.
NULL Type Null.

Comportement

Définit le comportement de la fonction. La valeur par défaut est BLOCKING.

Enums
UNSPECIFIED Cette valeur n'est pas utilisée.
BLOCKING Si cette valeur est définie, le système attend de recevoir la réponse de la fonction avant de poursuivre la conversation.
NON_BLOCKING Si cette valeur est définie, le système n'attend pas de recevoir la réponse de la fonction. Au lieu de cela, il tentera de gérer les réponses aux fonctions à mesure qu'elles seront disponibles, tout en maintenant la conversation entre l'utilisateur et le modèle.

GoogleSearchRetrieval

Outil permettant de récupérer des données Web publiques pour l'ancrage, fourni par Google.

Champs
dynamicRetrievalConfig object (DynamicRetrievalConfig)

Spécifie la configuration de récupération dynamique pour la source donnée.

Représentation JSON
{
  "dynamicRetrievalConfig": {
    object (DynamicRetrievalConfig)
  }
}

DynamicRetrievalConfig

Décrit les options permettant de personnaliser la récupération dynamique.

Champs
mode enum (Mode)

Mode du prédicteur à utiliser dans la récupération dynamique.

dynamicThreshold number

Seuil à utiliser dans la récupération dynamique. Si elle n'est pas définie, une valeur par défaut du système est utilisée.

Représentation JSON
{
  "mode": enum (Mode),
  "dynamicThreshold": number
}

Mode

Mode du prédicteur à utiliser dans la récupération dynamique.

Enums
MODE_UNSPECIFIED Déclenchez toujours la récupération.
MODE_DYNAMIC Exécutez la récupération uniquement lorsque le système le juge nécessaire.

CodeExecution

Ce type ne comporte aucun champ.

Outil qui exécute le code généré par le modèle et renvoie automatiquement le résultat au modèle.

Consultez également ExecutableCode et CodeExecutionResult, qui ne sont générés que lorsque vous utilisez cet outil.

GoogleSearch

Type d'outil Google Search. Outil permettant d'intégrer la recherche Google dans le modèle. La puissance de la technologie Google

Champs
timeRangeFilter object (Interval)

Facultatif. Filtrer les résultats de recherche sur une période spécifique Si les clients définissent une heure de début, ils doivent définir une heure de fin (et inversement).

Représentation JSON
{
  "timeRangeFilter": {
    object (Interval)
  }
}

Intervalle

Représente un intervalle de temps, encodé sous la forme d'un Timestamp de début (inclus) et d'un Timestamp de fin (exclus).

Le début doit être inférieur ou égal à la fin. Lorsque le début est égal à la fin, l'intervalle est vide (ne correspond à aucune heure). Lorsque les heures de début et de fin ne sont pas spécifiées, l'intervalle correspond à n'importe quelle heure.

Champs
startTime string (Timestamp format)

Facultatif. Début inclusif de l'intervalle.

Si un Timestamp correspondant à cet intervalle est spécifié, il devra être identique ou postérieur à la date de début.

Utilise la norme RFC 3339, où le résultat généré est toujours normalisé avec le suffixe Z et utilise 0, 3, 6 ou 9 chiffres décimaux. Les décalages autres que "Z" sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

endTime string (Timestamp format)

Facultatif. Heure de fin de l'intervalle (exclue).

Si un Timestamp correspondant à cet intervalle est spécifié, il devra être antérieur à la fin.

Utilise la norme RFC 3339, où le résultat généré est toujours normalisé avec le suffixe Z et utilise 0, 3, 6 ou 9 chiffres décimaux. Les décalages autres que "Z" sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

Représentation JSON
{
  "startTime": string,
  "endTime": string
}

UrlContext

Ce type ne comporte aucun champ.

Outil permettant de récupérer le contexte d'une URL.

ToolConfig

Configuration de l'outil contenant les paramètres permettant de spécifier l'utilisation de Tool dans la requête.

Champs
functionCallingConfig object (FunctionCallingConfig)

Facultatif. Configuration de l'appel de fonction.

Représentation JSON
{
  "functionCallingConfig": {
    object (FunctionCallingConfig)
  }
}

FunctionCallingConfig

Configuration permettant de spécifier le comportement d'appel de fonction.

Champs
mode enum (Mode)

Facultatif. Spécifie le mode d'exécution de l'appel de fonction. Si aucune valeur n'est spécifiée, la valeur par défaut est définie sur "AUTO".

allowedFunctionNames[] string

Facultatif. Ensemble de noms de fonctions qui, lorsqu'ils sont fournis, limitent les fonctions que le modèle appellera.

Ce champ ne doit être défini que lorsque le mode est "ANY". Les noms des fonctions doivent correspondre à [FunctionDeclaration.name]. Lorsque le mode est défini sur ANY, le modèle prédit un appel de fonction à partir de l'ensemble de noms de fonctions fournis.

Représentation JSON
{
  "mode": enum (Mode),
  "allowedFunctionNames": [
    string
  ]
}

Mode

Définit le comportement d'exécution pour l'appel de fonction en définissant le mode d'exécution.

Enums
MODE_UNSPECIFIED Mode d'appel de fonction non spécifié. Cette valeur ne doit pas être utilisée.
AUTO Comportement par défaut du modèle. Le modèle décide de prédire un appel de fonction ou une réponse en langage naturel.
ANY Le modèle est contraint de toujours prédire un appel de fonction uniquement. Si "allowedFunctionNames" est défini, l'appel de fonction prédit sera limité à l'un des "allowedFunctionNames". Sinon, l'appel de fonction prédit sera l'une des "functionDeclarations" fournies.
NONE Le modèle ne prédira aucun appel de fonction. Le comportement du modèle est le même que lorsque vous ne transmettez aucune déclaration de fonction.
VALIDATED Le modèle décide de prédire un appel de fonction ou une réponse en langage naturel, mais validera les appels de fonction avec un décodage contraint.

UsageMetadata

Métadonnées sur l'utilisation du contenu mis en cache.

Champs
totalTokenCount integer

Nombre total de jetons consommés par le contenu mis en cache.

Représentation JSON
{
  "totalTokenCount": integer
}