Caching

Metode: cacheContents.create

Membuat resource CachedContent.

Endpoint

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

Isi permintaan

Isi permintaan memuat instance CachedContent.

Contoh permintaan

Dasar

Python

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(cache)

model = genai.GenerativeModel.from_cached_content(cache)
response = model.generate_content("Please summarize this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});

console.log(cacheResult);

const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(cacheResult);
const result = await model.generateContent(
  "Please summarize this transcript.",
);
console.log(result.response.text());

Nama dari

Python

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache_name = cache.name  # Save the name for later

# Later
cache = genai.caching.CachedContent.get(cache_name)
apollo_model = genai.GenerativeModel.from_cached_content(cache)
response = apollo_model.generate_content("Find a lighthearted moment from this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheName = cacheResult.name; // Save the name for later.

// Later
const getCacheResult = await cacheManager.get(cacheName);
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(getCacheResult);
model.generateContent("Please summarize this transcript.");

Dari chat

Python

model_name = "gemini-1.5-flash-001"
system_instruction = "You are an expert analyzing transcripts."

model = genai.GenerativeModel(model_name=model_name, system_instruction=system_instruction)
chat = model.start_chat()
document = genai.upload_file(path=media / "a11.txt")
response = chat.send_message(["Hi, could you summarize this transcript?", document])
print("\n\nmodel:  ", response.text)
response = chat.send_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 = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction=system_instruction,
    contents=chat.history,
)
model = genai.GenerativeModel.from_cached_content(cached_content=cache)

# Continue the chat where you left off.
chat = model.start_chat()
response = chat.send_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 these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash-001" });
const chat = model.startChat();

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

let result = await chat.sendMessage([
  "Hi, could you summarize this transcript?",
  {
    fileData: {
      fileUri: uploadResult.file.uri,
      mimeType: uploadResult.file.mimeType,
    },
  },
]);
console.log(`\n\nmodel: ${result.response.text()}`);
result = await chat.sendMessage(
  "Okay, could you tell me more about the trans-lunar injection",
);
console.log(`\n\nmodel: ${result.response.text()}`);

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: await chat.getHistory(),
});

const newModel = genAI.getGenerativeModelFromCachedContent(cacheResult);

const newChat = newModel.startChat();
result = await newChat.sendMessage(
  "I didn't understand that last part, could you explain it in simpler language?",
);
console.log(`\n\nmodel: ${result.response.text()}`);

Isi respons

Jika berhasil, isi respons memuat instance CachedContent yang baru dibuat.

Metode: cacheContents.list

Mencantumkan CachedContents.

Endpoint

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

Parameter kueri

pageSize integer

Opsional. Jumlah maksimum konten cache yang akan ditampilkan. Layanan mungkin menampilkan lebih sedikit dari nilai ini. Jika tidak ditentukan, beberapa item default (di bawah jumlah maksimum) akan ditampilkan. Nilai maksimumnya adalah 1.000; nilai di atas 1.000 akan dikonversi menjadi 1.000.

pageToken string

Opsional. Token halaman, yang diterima dari panggilan cachedContents.list sebelumnya. Berikan atribut ini untuk mengambil halaman selanjutnya.

Saat memberi nomor halaman, semua parameter lain yang diberikan ke cachedContents.list harus cocok dengan panggilan yang menyediakan token halaman.

Isi permintaan

Isi permintaan harus kosong.

Isi respons

Respons dengan daftar CachedContents.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Bidang
cachedContents[] object (CachedContent)

Daftar konten yang di-cache.

nextPageToken string

Token, yang dapat dikirim sebagai pageToken untuk mengambil halaman berikutnya. Jika kolom ini dihilangkan, tidak ada halaman berikutnya.

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

Metode: cacheContents.get

Membaca resource CachedContent.

Endpoint

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

Parameter jalur

name string

Wajib. Nama resource yang mengacu pada entri cache konten. Format: cachedContents/{id} Formatnya adalah cachedContents/{cachedcontent}.

Isi permintaan

Isi permintaan harus kosong.

Contoh permintaan

Python

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(genai.caching.CachedContent.get(name=cache.name))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheGetResult = await cacheManager.get(cacheResult.name);
console.log(cacheGetResult);

Isi respons

Jika berhasil, isi respons memuat instance CachedContent.

Metode: cacheContents.patch

Memperbarui resource CachedContent (hanya tanggal habis masa berlaku yang dapat diperbarui).

Endpoint

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

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

Parameter jalur

cachedContent.name string

Opsional. ID. Nama resource yang merujuk ke konten yang di-cache. Format: cachedContents/{id} Formatnya adalah cachedContents/{cachedcontent}.

Parameter kueri

updateMask string (FieldMask format)

Daftar kolom yang akan diperbarui.

Ini adalah daftar yang dipisahkan koma yang berisi nama kolom yang sepenuhnya memenuhi syarat. Contoh: "user.displayName,photo".

Isi permintaan

Isi permintaan memuat instance CachedContent.

Contoh permintaan

Python

import datetime

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)

# You can update the ttl
cache.update(ttl=datetime.timedelta(hours=2))
print(f"After update:\n {cache}")

# Or you can update the expire_time
cache.update(expire_time=datetime.datetime.now() + datetime.timedelta(minutes=15))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
console.log("initial cache data:", cacheResult);
const cacheUpdateResult = await cacheManager.update(cacheResult.name, {
  cachedContent: {
    // 2 hours
    ttlSeconds: 60 * 60 * 2,
  },
});
console.log("updated cache data:", cacheUpdateResult);

Isi respons

Jika berhasil, isi respons memuat instance CachedContent.

Metode: cacheContents.delete

Menghapus resource CachedContent.

Endpoint

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

Parameter jalur

name string

Wajib. Nama resource yang merujuk ke format entri cache konten: cachedContents/{id} Formatnya adalah cachedContents/{cachedcontent}.

Isi permintaan

Isi permintaan harus kosong.

Contoh permintaan

Python

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache.delete()

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
await cacheManager.delete(cacheResult.name);

Isi respons

Jika berhasil, isi respons akan kosong.

Resource REST: cacheContents

Resource: CachedContent

Konten yang telah diproses sebelumnya dan dapat digunakan dalam permintaan berikutnya ke GenerativeService.

Konten dalam cache hanya dapat digunakan dengan model yang dibuatnya.

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

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.
  "name": string,
  "displayName": string,
  "model": string,
  "systemInstruction": {
    object (Content)
  },
  "toolConfig": {
    object (ToolConfig)
  }
}
Bidang
contents[] object (Content)

Opsional. Input saja. Tidak dapat diubah. Konten yang akan di-cache.

tools[] object (Tool)

Opsional. Input saja. Tidak dapat diubah. Daftar Tools yang dapat digunakan model untuk membuat respons berikutnya

createTime string (Timestamp format)

Hanya output. Waktu pembuatan entri cache.

Stempel waktu dalam RFC3339 UTC "Zulu" , dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

updateTime string (Timestamp format)

Hanya output. Kapan entri cache terakhir diperbarui dalam waktu UTC.

Stempel waktu dalam RFC3339 UTC "Zulu" , dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

usageMetadata object (UsageMetadata)

Hanya output. Metadata tentang penggunaan konten yang di-cache.

Kolom union expiration. Menentukan kapan resource ini akan habis masa berlakunya. expiration hanya dapat berupa salah satu dari berikut:
expireTime string (Timestamp format)

Stempel waktu dalam UTC saat resource ini dianggap sudah tidak berlaku. Ini selalu disediakan pada output, terlepas dari apa yang dikirim pada input.

Stempel waktu dalam RFC3339 UTC "Zulu" , dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

ttl string (Duration format)

Input saja. TTL baru untuk resource ini, hanya input.

Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan 's'. Contoh: "3.5s".

name string

Opsional. ID. Nama resource yang merujuk ke konten yang di-cache. Format: cachedContents/{id}

displayName string

Opsional. Tidak dapat diubah. Nama tampilan bermakna yang dibuat pengguna untuk konten yang di-cache. Maksimum 128 karakter Unicode

model string

Wajib. Tidak dapat diubah. Nama Model yang akan digunakan untuk konten yang di-cache Format: models/{model}

systemInstruction object (Content)

Opsional. Input saja. Tidak dapat diubah. Petunjuk sistem set developer. Saat ini hanya teks.

toolConfig object (ToolConfig)

Opsional. Input saja. Tidak dapat diubah. Konfigurasi alat. Konfigurasi ini digunakan bersama untuk semua alat.

Konten

Jenis data terstruktur dasar yang berisi konten multi-bagian pesan.

Content mencakup kolom role yang menentukan produser Content dan kolom parts yang berisi data multi-bagian yang berisi konten pembalikan pesan.

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

Memesan Parts yang membentuk satu pesan. Komponen mungkin memiliki jenis MIME yang berbeda.

role string

Opsional. Produser konten. Harus 'user' atau 'model'.

Berguna untuk disetel untuk percakapan multi-giliran, atau dapat dibiarkan kosong atau tidak disetel.

Bagian

Jenis data yang berisi media yang merupakan bagian dari pesan Content multi-bagian.

Part terdiri dari data yang memiliki jenis data terkait. Part hanya dapat berisi salah satu jenis yang diterima di Part.data.

Part harus memiliki jenis MIME IANA tetap yang mengidentifikasi jenis dan subjenis media jika kolom inlineData diisi dengan byte mentah.

Representasi JSON
{

  // Union field data can be only one of the following:
  "text": string,
  "inlineData": {
    object (Blob)
  },
  "functionCall": {
    object (FunctionCall)
  },
  "functionResponse": {
    object (FunctionResponse)
  },
  "fileData": {
    object (FileData)
  },
  "executableCode": {
    object (ExecutableCode)
  },
  "codeExecutionResult": {
    object (CodeExecutionResult)
  }
  // End of list of possible types for union field data.
}
Bidang

Kolom union data.

data hanya dapat berupa salah satu dari yang berikut:

text string

Teks {i>inline<i}.

inlineData object (Blob)

Byte media inline.

functionCall object (FunctionCall)

FunctionCall yang diprediksi akan ditampilkan dari model yang berisi string yang mewakili FunctionDeclaration.name dengan argumen dan nilainya.

functionResponse object (FunctionResponse)

Output hasil dari FunctionCall yang berisi string yang mewakili FunctionDeclaration.name dan objek JSON terstruktur yang berisi output apa pun dari fungsi digunakan sebagai konteks untuk model.

fileData object (FileData)

Data berbasis URI.

executableCode object (ExecutableCode)

Kode yang dihasilkan oleh model yang akan dieksekusi.

codeExecutionResult object (CodeExecutionResult)

Hasil menjalankan ExecutableCode.

Blob

Byte media mentah.

Teks tidak boleh dikirim sebagai byte mentah, gunakan 'text' kolom tersebut.

Representasi JSON
{
  "mimeType": string,
  "data": string
}
Bidang
mimeType string

Jenis MIME standar IANA dari data sumber. Contoh: - image/png - image/jpeg Jika tersedia jenis MIME yang tidak didukung, error akan ditampilkan. Untuk mengetahui daftar lengkap jenis yang didukung, lihat Format file yang didukung.

data string (bytes format)

Byte mentah untuk format media.

String berenkode base64.

FunctionCall

FunctionCall yang diprediksi akan ditampilkan dari model yang berisi string yang mewakili FunctionDeclaration.name dengan argumen dan nilainya.

Representasi JSON
{
  "name": string,
  "args": {
    object
  }
}
Bidang
name string

Wajib. Nama fungsi yang akan dipanggil. Harus berupa a-z, A-Z, 0-9, atau berisi garis bawah dan tanda hubung, dengan panjang maksimum 63.

args object (Struct format)

Opsional. Parameter dan nilai fungsi dalam format objek JSON.

FunctionResponse

Output hasil dari FunctionCall yang berisi string yang mewakili FunctionDeclaration.name dan objek JSON terstruktur yang berisi output apa pun dari fungsi tersebut digunakan sebagai konteks untuk model. Ini harus berisi hasil FunctionCall yang dibuat berdasarkan prediksi model.

Representasi JSON
{
  "name": string,
  "response": {
    object
  }
}
Bidang
name string

Wajib. Nama fungsi yang akan dipanggil. Harus berupa a-z, A-Z, 0-9, atau berisi garis bawah dan tanda hubung, dengan panjang maksimum 63.

response object (Struct format)

Wajib. Respons fungsi dalam format objek JSON.

FileData

Data berbasis URI.

Representasi JSON
{
  "mimeType": string,
  "fileUri": string
}
Bidang
mimeType string

Opsional. Jenis MIME standar IANA dari data sumber.

fileUri string

Wajib. URI.

ExecutableCode

Kode yang dihasilkan oleh model yang dimaksudkan untuk dieksekusi, dan hasilnya ditampilkan ke model.

Hanya dibuat saat menggunakan alat CodeExecution, yang dapat mengeksekusi kode secara otomatis, dan CodeExecutionResult yang sesuai juga akan dibuat.

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

Wajib. Bahasa pemrograman code.

code string

Wajib. Kode yang akan dieksekusi.

Language

Bahasa pemrograman yang didukung untuk kode yang dihasilkan.

Enum
LANGUAGE_UNSPECIFIED Bahasa tidak ditentukan. Nilai ini tidak boleh digunakan.
PYTHON Python >= 3.10, dengan numpy dan simpy tersedia.

CodeExecutionResult

Hasil menjalankan ExecutableCode.

Hanya dibuat saat menggunakan CodeExecution, dan selalu mengikuti part yang berisi ExecutableCode.

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

Wajib. Hasil eksekusi kode.

output string

Opsional. Berisi stdout jika eksekusi kode berhasil, stderr, atau deskripsi lain jika tidak.

Hasil

Enumerasi kemungkinan hasil dari eksekusi kode.

Enum
OUTCOME_UNSPECIFIED Status belum ditetapkan. Nilai ini tidak boleh digunakan.
OUTCOME_OK Eksekusi kode berhasil diselesaikan.
OUTCOME_FAILED Eksekusi kode selesai tetapi dengan kegagalan. stderr harus berisi alasannya.
OUTCOME_DEADLINE_EXCEEDED Eksekusi kode berjalan terlalu lama, dan dibatalkan. Mungkin ada output parsial atau tidak.

Alat

Detail alat yang dapat digunakan model untuk menghasilkan respons.

Tool adalah potongan kode yang memungkinkan sistem berinteraksi dengan sistem eksternal untuk melakukan suatu tindakan, atau serangkaian tindakan, di luar pengetahuan dan cakupan model.

Representasi JSON
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "codeExecution": {
    object (CodeExecution)
  }
}
Bidang
functionDeclarations[] object (FunctionDeclaration)

Opsional. Daftar FunctionDeclarations yang tersedia untuk model yang dapat digunakan untuk panggilan fungsi.

Model atau sistem tidak menjalankan fungsi. Sebagai gantinya, fungsi yang ditentukan dapat ditampilkan sebagai [FunctionCall][content.part.function_call] dengan argumen ke sisi klien untuk dieksekusi. Model dapat memutuskan untuk memanggil subset fungsi ini dengan mengisi [FunctionCall][content.part.function_call] dalam respons. Giliran percakapan berikutnya mungkin berisi [FunctionResponse][content.part.function_response] dengan "fungsi" [content.role]. konteks pembuatan model untuk belokan model berikutnya.

codeExecution object (CodeExecution)

Opsional. Memungkinkan model mengeksekusi kode sebagai bagian dari pembuatan.

FunctionDeclaration

Representasi terstruktur dari deklarasi fungsi seperti yang ditentukan oleh spesifikasi OpenAPI 3.03. Nama fungsi dan parameter disertakan dalam deklarasi ini. FunctionDeclaration ini adalah representasi blok kode yang dapat digunakan sebagai Tool oleh model dan dieksekusi oleh klien.

Representasi JSON
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  }
}
Bidang
name string

Wajib. Nama fungsi. Harus berupa a-z, A-Z, 0-9, atau berisi garis bawah dan tanda hubung, dengan panjang maksimum 63.

description string

Wajib. Deskripsi singkat fungsi.

parameters object (Schema)

Opsional. Menjelaskan parameter untuk fungsi ini. Mencerminkan Kunci string Objek Parameter Open API 3.03: nama parameter. Nama parameter peka huruf besar/kecil. Nilai Skema: Skema yang menentukan jenis yang digunakan untuk parameter.

Skema

Objek Schema memungkinkan definisi jenis data input dan output. Jenis ini dapat berupa objek, tetapi juga primitif dan array. Mewakili subset yang dipilih dari objek skema OpenAPI 3.0.

Representasi JSON
{
  "type": enum (Type),
  "format": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "items": {
    object (Schema)
  }
}
Bidang
type enum (Type)

Wajib. Tipe data.

format string

Opsional. Format data. Ini hanya digunakan untuk jenis data primitif. Format yang didukung: untuk jenis NOMOR: float, double untuk jenis INTEGER: int32, int64 untuk jenis STRING: enum

description string

Opsional. Deskripsi singkat parameter. Informasi ini dapat berisi contoh penggunaan. Deskripsi parameter dapat diformat sebagai Markdown.

nullable boolean

Opsional. Menunjukkan apakah nilai mungkin null.

enum[] string

Opsional. Nilai yang mungkin dari elemen Type.STRING dengan format enum. Misalnya kita dapat menentukan Arah Enum sebagai : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]}

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

Opsional. Properti Type.OBJECT.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[] string

Opsional. Properti yang diperlukan dari Type.OBJECT.

items object (Schema)

Opsional. Skema elemen Type.ARRAY.

Jenis

Jenis berisi daftar jenis data OpenAPI sebagaimana ditentukan oleh https://spec.openapis.org/oas/v3.0.3#data-types

Enum
TYPE_UNSPECIFIED Tidak ditentukan, tidak boleh digunakan.
STRING Jenis string.
NUMBER Jenis nomor.
INTEGER Jenis bilangan bulat.
BOOLEAN Jenis Boolean.
ARRAY Jenis array.
OBJECT Jenis objek.

CodeExecution

Jenis ini tidak memiliki kolom.

Alat yang menjalankan kode yang dihasilkan oleh model, dan otomatis menampilkan hasilnya ke model.

Lihat juga ExecutableCode dan CodeExecutionResult yang hanya dibuat saat menggunakan alat ini.

ToolConfig

Konfigurasi Alat yang berisi parameter untuk menentukan penggunaan Tool dalam permintaan.

Representasi JSON
{
  "functionCallingConfig": {
    object (FunctionCallingConfig)
  }
}
Bidang
functionCallingConfig object (FunctionCallingConfig)

Opsional. Konfigurasi panggilan fungsi.

FunctionCallingConfig

Konfigurasi untuk menentukan perilaku panggilan fungsi.

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

Opsional. Menentukan mode tempat panggilan fungsi harus dijalankan. Jika tidak ditentukan, nilai default akan ditetapkan ke AUTO.

allowedFunctionNames[] string

Opsional. Kumpulan nama fungsi yang, jika disediakan, akan membatasi fungsi yang akan dipanggil model.

Kunci ini hanya boleh disetel jika Mode adalah APA PUN. Nama fungsi harus cocok dengan [FunctionDeclaration.name]. Jika mode ditetapkan ke ANY, model akan memprediksi panggilan fungsi dari sekumpulan nama fungsi yang disediakan.

Mode

Menentukan perilaku eksekusi untuk panggilan fungsi dengan menentukan mode eksekusi.

Enum
MODE_UNSPECIFIED Mode panggilan fungsi tidak ditentukan. Nilai ini tidak boleh digunakan.
AUTO Perilaku model default, model memutuskan untuk memprediksi panggilan fungsi atau respons natural language.
ANY Model dibatasi untuk selalu memprediksi panggilan fungsi saja. Jika "allowFunctionNames" ditetapkan, panggilan fungsi yang diprediksi akan dibatasi ke salah satu "AllowedFunctionNames". Jika tidak, panggilan fungsi yang diprediksi akan berupa salah satu "functionDeclarations" yang disediakan.
NONE Model tidak akan memprediksi panggilan fungsi apa pun. Perilaku model sama seperti saat tidak meneruskan deklarasi fungsi apa pun.

UsageMetadata

Metadata tentang penggunaan konten yang di-cache.

Representasi JSON
{
  "totalTokenCount": integer
}
Bidang
totalTokenCount integer

Jumlah total token yang digunakan oleh konten yang di-cache.