Panggilan fungsi meningkatkan kemampuan LLM untuk memberikan jawaban yang relevan dan kontekstual.
Anda dapat memberikan fungsi kustom ke model AI generatif dengan Function Calling API. Model tidak memanggil fungsi ini secara langsung, tetapi menghasilkan output data terstruktur yang menentukan nama fungsi dan saran argumen.
Output ini memungkinkan pemanggilan API eksternal atau sistem informasi seperti database, sistem pengelolaan hubungan pelanggan, dan repositori dokumen. Output API yang dihasilkan dapat digunakan oleh LLM untuk meningkatkan kualitas respons.
Untuk dokumentasi konseptual selengkapnya tentang pemanggilan fungsi, lihat Pemanggilan fungsi.
Model yang didukung
- Gemini 3 Pro Model pratinjau
- Gemini 2.5 Pro
- Gemini 2.5 Flash Model pratinjau
- Gemini 2.5 Flash-Lite Model pratinjau
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
- Gemini 2.5 Flash dengan audio bawaan Live API Model pratinjau
- Gemini 2.0 Flash dengan Live API Preview model
- Gemini 2.0 Flash
- Gemini 2.0 Flash-Lite
Batasan:
- Jumlah maksimum deklarasi fungsi yang dapat diberikan dengan permintaan adalah 128.
Contoh sintaksis
Sintaksis untuk mengirim permintaan API panggilan fungsi.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \ -d '{ "contents": [{ ... }], "tools": [{ "function_declarations": [ { ... } ] }] }'
Daftar parameter
Lihat contoh untuk mengetahui detail implementasi.
FunctionDeclaration
Menentukan fungsi yang dapat dibuat input JSON-nya oleh model berdasarkan spesifikasi OpenAPI 3.0.
| Parameter | |
|---|---|
|
Nama fungsi yang akan dipanggil. Harus diawali dengan huruf atau garis bawah. Harus a-z, A-Z, 0-9, atau berisi garis bawah, titik, atau tanda hubung, dengan panjang maksimum 64 karakter. |
|
Opsional: Deskripsi dan tujuan fungsi. Model menggunakan ini untuk memutuskan cara dan apakah akan memanggil fungsi. Untuk hasil terbaik, sebaiknya sertakan deskripsi. |
|
Opsional: Mendeskripsikan parameter fungsi dalam format Objek Skema JSON OpenAPI: spesifikasi OpenAPI 3.0. |
|
Opsional: Menjelaskan output dari fungsi dalam format Objek Skema JSON OpenAPI: spesifikasi OpenAPI 3.0. |
Untuk mengetahui informasi selengkapnya, lihat Panggilan fungsi
Schema
Menentukan format data input dan output dalam panggilan fungsi berdasarkan spesifikasi Skema OpenAPI 3.0.
| Parameter | |
|---|---|
| jenis |
Enum. Jenis data. Harus salah satu dari:
|
description |
Opsional: Deskripsi data. |
enum |
Opsional: Kemungkinan nilai elemen jenis primitif dengan format enum. |
items |
Opsional: Skema elemen |
properties |
Opsional: Skema properti |
required |
Opsional: Properti wajib |
nullable |
Opsional: Menunjukkan apakah nilai dapat berupa |
FunctionCallingConfig
FunctionCallingConfig mengontrol perilaku model dan menentukan jenis fungsi yang akan dipanggil.
| Parameter | |
|---|---|
|
Opsional:
|
|
Opsional: Nama fungsi yang akan dipanggil. Hanya disetel jika |
|
Opsional: Jika |
functionCall
functionCall yang diprediksi dan ditampilkan dari model yang berisi string
yang merepresentasikan functionDeclaration.name dan objek JSON terstruktur
yang berisi parameter dan nilainya.
| Parameter | |
|---|---|
|
Nama fungsi yang akan dipanggil. |
|
Parameter dan nilai fungsi dalam format objek JSON. Lihat Panggilan fungsi untuk mengetahui detail parameter. |
|
Opsional: Token buram yang merangkum status penalaran internal model. Jika ada, harus disertakan dalam giliran percakapan berikutnya untuk mempertahankan konteks penggunaan alat multi-langkah. |
functionResponse
Output yang dihasilkan dari FunctionCall yang berisi string yang merepresentasikan
FunctionDeclaration.name. Juga berisi objek JSON terstruktur dengan output dari fungsi (dan menggunakannya sebagai konteks untuk model). Kolom ini harus berisi
hasil FunctionCall yang dibuat berdasarkan prediksi model.
| Parameter | |
|---|---|
|
Nama fungsi yang akan dipanggil. |
|
Respons fungsi dalam format objek JSON. |
|
Opsional: Bagian multimodal opsional dari respons fungsi. Dapat digunakan untuk menampilkan gambar, audio, atau video bersama dengan respons JSON terstruktur. |
FunctionResponsePart
FunctionResponsePart berisi data multimodal dari panggilan fungsi.
| Parameter | |
|---|---|
|
Opsional: Data inline bagian respons fungsi. |
|
Opsional: Data berbasis URI dari bagian respons fungsi. |
FunctionResponseBlob
FunctionResponseBlob berisi data inline untuk FunctionResponsePart.
| Parameter | |
|---|---|
|
Jenis MIME IANA dari data inline. |
|
Data biner mentah. |
|
Opsional: Nama tampilan data inline. |
FunctionResponseFileData
FunctionResponseFileData berisi data berbasis URI untuk FunctionResponsePart.
| Parameter | |
|---|---|
|
Jenis MIME IANA dari data file. |
|
URI data file. |
|
Opsional: Nama tampilan data file. |
Contoh
Mengirim deklarasi fungsi
Contoh berikut adalah contoh dasar pengiriman kueri dan deklarasi fungsi ke model:
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- MODEL_ID: ID model yang sedang diproses.
- ROLE: Identitas entitas yang membuat pesan.
- TEXT: Perintah yang akan dikirim ke model.
- NAME: Nama fungsi yang akan dipanggil.
- DESCRIPTION: Deskripsi dan tujuan fungsi.
- Untuk kolom lainnya, lihat tabel Daftar parameter.
Metode HTTP dan URL:
POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent
Meminta isi JSON:
{
"contents": [{
"role": "ROLE",
"parts": [{
"text": "TEXT"
}]
}],
"tools": [{
"function_declarations": [
{
"name": "NAME",
"description": "DESCRIPTION",
"parameters": {
"type": "TYPE",
"properties": {
"location": {
"type": "TYPE",
"description": "DESCRIPTION"
}
},
"required": [
"location"
]
}
}
]
}]
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent"
PowerShell
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent" | Select-Object -Expand Content
Contoh perintah curl
PROJECT_ID=myproject
LOCATION=us-central1
MODEL_ID=gemini-2.5-flash
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "What is the weather in Boston?"
}]
}],
"tools": [{
"functionDeclarations": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, for example San Francisco, CA or a zip code such as 95616"
}
},
"required": [
"location"
]
}
}
]
}]
}'
Gen AI SDK untuk Python
Node.js
Java
Go
REST (OpenAI)
Anda dapat memanggil Function Calling API menggunakan library OpenAI. Untuk mengetahui informasi selengkapnya, lihat Memanggil model Vertex AI menggunakan library OpenAI.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: .
- MODEL_ID: ID model yang sedang diproses.
Metode HTTP dan URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
Meminta isi JSON:
{
"model": "google/MODEL_ID",
"messages": [
{
"role": "user",
"content": "What is the weather in Boston?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "OBJECT",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616"
}
},
"required": ["location"]
}
}
}
]
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions"
PowerShell
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
Anda dapat memanggil Function Calling API menggunakan library OpenAI. Untuk mengetahui informasi selengkapnya, lihat Memanggil model Vertex AI menggunakan library OpenAI.
Mengirim deklarasi fungsi dengan FunctionCallingConfig
Contoh berikut menunjukkan cara meneruskan FunctionCallingConfig
ke model:
functionCallingConfig memastikan bahwa output model selalu berupa panggilan fungsi tertentu. Untuk mengonfigurasi:
- Tetapkan fungsi yang memanggil
modekeANY. Tentukan nama fungsi yang ingin Anda gunakan di
allowed_function_names. Jikaallowed_function_nameskosong, fungsi yang disediakan dapat ditampilkan.
REST
PROJECT_ID=myproject
LOCATION=us-central1
MODEL_ID=gemini-2.5-flash
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Do you have the White Pixel 8 Pro 128GB in stock in the US?"
}]
}],
"tools": [{
"functionDeclarations": [
{
"name": "get_product_sku",
"description": "Get the available inventory for a Google products, for example: Pixel phones, Pixel Watches, Google Home etc",
"parameters": {
"type": "object",
"properties": {
"product_name": {"type": "string", "description": "Product name"}
}
}
},
{
"name": "get_store_location",
"description": "Get the location of the closest store",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "Location"}
},
}
}
]
}],
"toolConfig": {
"functionCallingConfig": {
"mode":"ANY",
"allowedFunctionNames": ["get_product_sku"]
}
},
"generationConfig": {
"temperature": 0.95,
"topP": 1.0,
"maxOutputTokens": 8192
}
}'
Gen AI SDK untuk Python
Node.js
Go
REST (OpenAI)
Anda dapat memanggil Function Calling API menggunakan library OpenAI. Untuk mengetahui informasi selengkapnya, lihat Memanggil model Vertex AI menggunakan library OpenAI.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: .
- MODEL_ID: ID model yang sedang diproses.
Metode HTTP dan URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
Meminta isi JSON:
{
"model": "google/MODEL_ID",
"messages": [
{
"role": "user",
"content": "What is the weather in Boston?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "OBJECT",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616"
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions"
PowerShell
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
Anda dapat memanggil Function Calling API menggunakan library OpenAI. Untuk mengetahui informasi selengkapnya, lihat Memanggil model Vertex AI menggunakan library OpenAI.
Langkah berikutnya
Untuk dokumentasi mendetail, lihat berikut ini: