Repository: confident-ai/deepeval
Issue: BinaryJudgementNode cannot work with Vertex-connected GeminiModel
Root cause: Interface Contract Mismatch

**Environment**
```
Python 3.12.11

deepeval==3.6.7
pydantic==2.12.3
google-genai==1.46.0
```

**Describe the bug**

I'm using the built-in `from deepeval.models.llms import GeminiModel` to evaluate a DAG metric with a `BinaryJudgementNode`. `pydantic` cannot parse the `BinaryJudgementVerdict` schema as it raise this error:

```
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/evaluate/evaluate.py", line 236, in evaluate
    test_results = loop.run_until_complete(
                   ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/evaluate/execute.py", line 575, in a_execute_test_cases
    await asyncio.gather(*tasks)
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/evaluate/execute.py", line 383, in execute_with_semaphore
    return await func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/evaluate/execute.py", line 621, in _a_execute_llm_test_cases
    await measure_metrics_with_indicator(
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/metrics/indicator.py", line 233, in measure_metrics_with_indicator
    await asyncio.gather(*tasks)
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/metrics/indicator.py", line 246, in safe_a_measure
    await metric.a_measure(
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/metrics/dag/dag.py", line 121, in a_measure
    await self.dag._a_execute(metric=self, test_case=test_case)
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/metrics/dag/graph.py", line 70, in _a_execute
    await asyncio.gather(
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/metrics/dag/nodes.py", line 524, in _a_execute
    res, cost = await metric.model.a_generate(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 189, in async_wrapped
    return await copy(fn, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 111, in __call__
    do = await self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 153, in iter
    result = await action(retry_state)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/tenacity/_utils.py", line 99, in inner
    return call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/tenacity/__init__.py", line 400, in <lambda>
    self._add_action_func(lambda rs: rs.outcome.result())
                                     ^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 114, in __call__
    result = await fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/models/retry_policy.py", line 584, in attempt
    return await coro
           ^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/deepeval/models/llms/gemini_model.py", line 206, in a_generate
    response = await self.client.aio.models.generate_content(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/google/genai/models.py", line 6762, in generate_content
    response = await self._generate_content(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/google/genai/models.py", line 5564, in _generate_content
    request_dict = _GenerateContentParameters_to_vertex(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/google/genai/models.py", line 1275, in _GenerateContentParameters_to_vertex
    _GenerateContentConfig_to_vertex(
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/google/genai/models.py", line 1131, in _GenerateContentConfig_to_vertex
    t.t_schema(api_client, getv(from_object, ['response_schema'])),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/google/genai/_transformers.py", line 905, in t_schema
    return types.Schema.model_validate(schema)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nguyengiahuy/miniconda3/envs/benchmark/lib/python3.12/site-packages/pydantic/main.py", line 716, in model_validate
    return cls.__pydantic_validator__.validate_python(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 2 validation errors for Schema
properties.verdict.enum.0
  Input should be a valid string [type=string_type, input_value=True, input_type=bool]
    For further information visit https://errors.pydantic.dev/2.12/v/string_type
properties.verdict.enum.1
  Input should be a valid string [type=string_type, input_value=False, input_type=bool]
    For further information visit https://errors.pydantic.dev/2.12/v/string_type```
```

**To Reproduce**
Steps to reproduce the behavior:
1. Create a DAG metric with a BinaryJudgementNode node
2. Evaluate the metric with a GeminiModel with Vertex connection 

**Fix suggestion**
I fixed the issue by changing the `verdict` field of the `BinaryJudgementVerdict` schema to just `bool`, I'm not sure if this will affect other places in the code.

```
class BinaryJudgementVerdict(BaseModel):
    verdict: bool # previously was verdict: List[True, False]
    reason: str
```

@nguyenhuy1209 just changed, thank you! merging soon...

Hey @nguyenhuy1209 its released :)