Mulai 29 April 2025, model Gemini 1.5 Pro dan Gemini 1.5 Flash tidak tersedia di project yang belum pernah menggunakan model ini, termasuk project baru. Untuk mengetahui detailnya, lihat Versi dan siklus proses model.
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Panggilan fungsi memungkinkan model mengidentifikasi kapan harus memanggil alat atau
API eksternal, lalu membuat data terstruktur yang berisi fungsi dan
argumen yang diperlukan untuk eksekusi. Semua model terbuka yang tersedia di Vertex AI
Model as a Service (MaaS) mendukung panggilan fungsi.
Untuk mengetahui informasi konseptual selengkapnya tentang kemampuan panggilan fungsi, lihat
Pengantar panggilan fungsi.
Menggunakan panggilan fungsi
Kasus penggunaan berikut mengintegrasikan API meteorologi eksternal untuk memeriksa cuaca saat ini di lokasi tertentu. Kode ini menggunakan panggilan REST untuk membandingkan cuaca di dua kota, menggunakan fungsi get_current_weather yang dideklarasikan dalam skema di tools.
{"model":"MODEL_NAME","messages":[{"role":"user","content":"Which city has a higher temperature, Boston or new Delhi, and by how much in F?"}],"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"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]}}}],"tool_choice":"auto"}
Setelah menerima permintaan, model menentukan bahwa model memerlukan output dari
fungsi get_current_weather, dan menyediakan fungsi serta
argumen yang diperlukan dalam tool_calls.
Berdasarkan contoh sebelumnya, berikut adalah output lengkap yang dapat Anda harapkan setelah menggunakan fungsi get_current_weather untuk mengambil informasi meteorologi.
{"model":"MODEL_NAME","messages":[{"role":"user","content":"Which city has a higher temperature, Boston or new Delhi and by how much in F?"},{"role":"assistant","content":"I'll check the current temperatures for Boston and New Delhi in Fahrenheit and compare them. I'll call the weather function for both cities.","tool_calls":[{"function":{"arguments":"{\"location\":\"Boston, MA\",\"unit\":\"fahrenheit\"}","name":"get_current_weather"},"id":"get_current_weather","type":"function"},{"function":{"arguments":"{\"location\":\"New Delhi, India\",\"unit\":\"fahrenheit\"}","name":"get_current_weather"},"id":"get_current_weather","type":"function"}]},{"role":"tool","content":"The temperature in Boston is 75 degrees Fahrenheit.","tool_call_id":"get_weather"},{"role":"tool","content":"The temperature in New Delhi is 50 degrees Fahrenheit.","tool_call_id":"get_weather"}],"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"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]}}}],"tool_choice":"auto"}
Setelah menerima informasi yang diambil melalui panggilan fungsi get_current_weather eksternal, model dapat menyintesis informasi dari dua respons tool dan menjawab pertanyaan pengguna.
Berikut adalah contoh tampilan output model tersebut:
{"choices":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"Based on the current weather data:\n\n- **Boston, MA**: 75°F \n- **New Delhi, India**: 50°F \n\n**Comparison**: \nBoston is **25°F warmer** than New Delhi. \n\n**Answer**: \nBoston has a higher temperature than New Delhi by 25 degrees Fahrenheit.","role":"assistant"}}],"created":1750450289,"id":"2025-06-20|13:11:29.240295-07|6.230.75.101|-987540014","model":"MODEL_NAME","object":"chat.completion","system_fingerprint":"","usage":{"completion_tokens":66,"prompt_tokens":217,"total_tokens":283}}
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-04 UTC."],[],[],null,["# Function calling for open models\n\nFunction calling enables a model to identify when to invoke an external tool or\nAPI and then generate structured data containing the necessary function and\narguments for execution. All open models available on the Vertex AI\nModel as a Service (MaaS) support function calling.\n\nFor more conceptual information about the function calling capability, see\n[Introduction to function calling](../../multimodal/function-calling).\n\nUse function calling\n--------------------\n\nThe following use case integrates an external meteorological API to check the\ncurrent weather for a given location. The code uses a REST call to compare the\nweather in two cities, using a `get_current_weather` function which is declared\nin the schema within `tools`. \n\n {\n \"model\": \"\u003cvar label=\"model name\" translate=\"no\"\u003eMODEL_NAME\u003c/var\u003e\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Which city has a higher temperature, Boston or new Delhi, and by how much in F?\"\n }\n ],\n \"tools\": [\n {\n \"type\": \"function\",\n \"function\": {\n \"name\": \"get_current_weather\",\n \"description\": \"Get the current weather in a given location\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n \"type\": \"string\",\n \"description\": \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\": {\n \"type\": \"string\",\n \"enum\": [\"celsius\", \"fahrenheit\"]\n }\n },\n \"required\": [\"location\"]\n }\n }\n }\n ],\n \"tool_choice\": \"auto\"\n }\n\nAfter receiving the request, the model determines that it requires the output of\nthe `get_current_weather` function, and provides the necessary function and\narguments within `tool_calls`.\n\nFunction call to retrieve the weather in Boston: \n\n {\"function\":{\"arguments\":\"{\\\"location\\\":\\\"Boston, MA\\\",\\\"unit\\\":\\\"fahrenheit\\\"}\",\"name\":\"get_current_weather\"} \"id\":\"get_current_weather\",\"type\":\"function\"}\n\nFunction call to retrieve the weather in New Delhi: \n\n {\"function\":{\"arguments\":\"{\\\"location\\\":\\\"New Delhi, India\\\",\\\"unit\\\":\\\"fahrenheit\\\"}\",\"name\":\"get_current_weather\"},\"id\":\"get_current_weather\",\"type\":\"function\"}\n\nDetailed example\n----------------\n\nBuilding on the previous example, the following is the complete output you could\nexpect after using the `get_current_weather` function to fetch meteorological\ninformation. \n\n {\n \"model\": \"\u003cvar label=\"model name\" translate=\"no\"\u003eMODEL_NAME\u003c/var\u003e\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Which city has a higher temperature, Boston or new Delhi and by how much in F?\"\n },\n {\n \"role\": \"assistant\",\n \"content\": \"I'll check the current temperatures for Boston and New Delhi in Fahrenheit and compare them. I'll call the weather function for both cities.\",\n \"tool_calls\": [{\"function\":{\"arguments\":\"{\\\"location\\\":\\\"Boston, MA\\\",\\\"unit\\\":\\\"fahrenheit\\\"}\",\"name\":\"get_current_weather\"},\"id\":\"get_current_weather\",\"type\":\"function\"},{\"function\":{\"arguments\":\"{\\\"location\\\":\\\"New Delhi, India\\\",\\\"unit\\\":\\\"fahrenheit\\\"}\",\"name\":\"get_current_weather\"},\"id\":\"get_current_weather\",\"type\":\"function\"}]\n },\n {\n \"role\": \"tool\",\n \"content\": \"The temperature in Boston is 75 degrees Fahrenheit.\",\n \"tool_call_id\": \"get_weather\"\n },\n {\n \"role\": \"tool\",\n \"content\": \"The temperature in New Delhi is 50 degrees Fahrenheit.\",\n \"tool_call_id\": \"get_weather\"\n }\n ],\n \"tools\": [\n {\n \"type\": \"function\",\n \"function\": {\n \"name\": \"get_current_weather\",\n \"description\": \"Get the current weather in a given location\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n \"type\": \"string\",\n \"description\": \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\": {\n \"type\": \"string\",\n \"enum\": [\"celsius\", \"fahrenheit\"]\n }\n },\n \"required\": [\"location\"]\n }\n }\n }\n ],\n \"tool_choice\": \"auto\"\n }\n\nAfter receiving the information retrieved through the calling the external\n`get_current_weather` function, the model can synthesize the information from\nthe two `tool` responses and answer the user's question.\n\nThe following is an example of what that model output could look like: \n\n {\n \"choices\": [\n {\n \"finish_reason\": \"stop\",\n \"index\": 0,\n \"logprobs\": null,\n \"message\": {\n \"content\": \"Based on the current weather data:\\n\\n- **Boston, MA**: 75°F\n \\n- **New Delhi, India**: 50°F \\n\\n**Comparison**:\n \\nBoston is **25°F warmer** than New Delhi. \\n\\n**Answer**:\n \\nBoston has a higher temperature than New Delhi by 25 degrees Fahrenheit.\",\n \"role\": \"assistant\"\n }\n }\n ],\n \"created\": 1750450289,\n \"id\": \"2025-06-20|13:11:29.240295-07|6.230.75.101|-987540014\",\n \"model\": \"\u003cvar label=\"model name\" translate=\"no\"\u003eMODEL_NAME\u003c/var\u003e\",\n \"object\": \"chat.completion\",\n \"system_fingerprint\": \"\",\n \"usage\": {\n \"completion_tokens\": 66,\n \"prompt_tokens\": 217,\n \"total_tokens\": 283\n }\n }"]]