code: def test_azure_gpt_optional_params_gpt_vision_with_extra_body():
      # if user passes extra_body, we should not over write it, we should pass it along to OpenAI python
      optional_params = litellm.utils.get_optional_params(
          user="John",
          custom_llm_provider="azure",
          max_tokens=10,
          temperature=0.2,
          extra_body={
              "meta": "hi",
          },
          enhancements={
              "ocr": {"enabled": True},
              "grounding": {"enabled": True},
          },
          dataSources=[
              {
                  "type": "AzureComputerVision",
                  "parameters": {
                      "endpoint": "<your_computer_vision_endpoint>",
                      "key": "<your_computer_vision_key>",
                  },
              }
          ],
      )
  
      print(optional_params)
      assert optional_params["max_tokens"] == 10
      assert optional_params["temperature"] == 0.2
      assert optional_params["extra_body"] == {
          "enhancements": {
              "ocr": {"enabled": True},
              "grounding": {"enabled": True},
          },
          "dataSources": [
              {
                  "type": "AzureComputerVision",
                  "parameters": {
                      "endpoint": "<your_computer_vision_endpoint>",
                      "key": "<your_computer_vision_key>",
                  },
              }
          ],
          "meta": "hi",
      }
  
file_path: litellm/litellm/tests/test_optional_params.py
imports: import sys, os, time, inspect, asyncio, traceback
  import pytest
  import litellm
  from litellm.utils import get_optional_params_embeddings
label_desc: Use image node_id 5 for calling a global function with example usage: test_azure_gpt_optional_params_gpt_vision_with_extra_body() without return types