Repository: confident-ai/deepeval
Issue: AttributeError in ConversationalGEval when chatbot_role is not set
Root cause: Validation Gap

Issue Description:
When using a deepeval.metrics.ConversationalGEval metric, an AttributeError: 'list' object has no attribute '__name__' is raised if the ConversationalTestCase being evaluated does not have the optional chatbot_role parameter set. The error occurs deep within the library's utility functions and not in the user's code, making it difficult to debug.

Environment:

deepeval version: 3.0.8

python version: 3.12.4

Steps to Reproduce:
The following minimal script will consistently reproduce the error. The key is that ConversationalTestCase is instantiated without the chatbot_role argument.

```
import pytest
from deepeval import assert_test
from deepeval.metrics import ConversationalGEval
from deepeval.test_case import ConversationalTestCase, Turn

# 1. Define a simple ConversationalGEval metric
objective_metric = ConversationalGEval(
    name="Objective Completion",
    criteria="Assess whether the assistant completes its objectives."
)

# 2. Define a test case *without* specifying `chatbot_role`
test_case = ConversationalTestCase(
    name="Test Case without chatbot_role",
    turns=[
        Turn(role="user", content="Hello"),
        Turn(role="assistant", content="Hi, how can I help?")
    ]
)

# 3. This will fail with an AttributeError
def test_conversation():
    assert_test(test_case, [objective_metric])
```


Expected Behavior:
The test should execute without an AttributeError. Ideally, the metric should either:

Proceed with the evaluation, as chatbot_role is an optional parameter.

Raise a more informative ValueError that clearly states that chatbot_role is required for this specific metric.

Actual Behavior:
The test fails with the following unhandled exception and traceback:

```
AttributeError: 'list' object has no attribute '__name__'. Did you mean: '__ne__'?

Traceback:
...
  File "/path/to/site-packages/deepeval/metrics/conversational_g_eval/conversational_g_eval.py", line 135, in a_measure
    check_conversational_test_case_params(
  File "/path/to/site-packages/deepeval/metrics/utils.py", line 135, in check_conversational_test_case_params
    error_str = f"'chatbot_role' in a conversational test case cannot be empty for the '{metric.__name__}' metric."
AttributeError: 'list' object has no attribute '__name__'. Did you mean: '__ne__'?
```

Analysis:
The issue seems to stem from the check_conversational_test_case_params function being called with its arguments in the wrong order when chatbot_role is None. It appears to be passing the evaluation_params list in the position where the metric object is expected, leading to the call list.__name__, which causes the error.

Workaround:
A successful workaround is to explicitly set the chatbot_role on every ConversationalTestCase. This prevents the buggy code path from being executed.

```
# This works correctly
working_test_case = ConversationalTestCase(
    name="Test Case with chatbot_role",
    turns=[
        Turn(role="user", content="Hello"),
        Turn(role="assistant", content="Hi, how can I help?")
    ],
    chatbot_role="assistant"  # Adding this line fixes the issue
)
```


@kelvindatascientist fixed in latest release :)