code: def gemini_pro_function_calling():
      load_vertex_ai_credentials()
      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"],
                  },
              },
          }
      ]
      messages = [
          {
              "role": "user",
              "content": "What's the weather like in Boston today?",
          }
      ]
      completion = litellm.completion(
          model="gemini-pro",
          messages=messages,
          tools=tools,
          tool_choice="auto",
      )
      print(f"completion: {completion}")
  
file_path: litellm/litellm/tests/test_amazing_vertex_completion.py
imports: import sys, os
  import traceback
  from dotenv import load_dotenv
  import os, io
  import pytest, asyncio
  import litellm
  from litellm import embedding, completion, completion_cost, Timeout, acompletion
  from litellm import RateLimitError
  import json
  import os
  import tempfile
label_desc: Use image node_id 5 for calling a global function with example usage: gemini_pro_function_calling() without return types