Repository: confident-ai/deepeval
Issue: TypeError: object AIMessage can't be used in 'await' expression
Root cause: Interface Contract Mismatch

**❗BEFORE YOU BEGIN❗**
Are you on discord? 🤗 We'd love to have you asking questions on discord instead: https://discord.com/invite/a3K9c8GRGt

**Describe the bug**
`
Traceback (most recent call last):
  File "{my_home}/.local/lib/python3.11/site-packages/deepeval/metrics/role_adherence/role_adherence.py", line 175, in _a_extract_out_of_character_responses
    res: OutOfCharacterResponseIndicies = await self.model.generate(
                                                ^^^^^^^^^^^^^^^^^^^^
TypeError: AzureOpenAI.generate() got an unexpected keyword argument 'schema'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "{my_home}/workspace/{my_project}/{my_package}/main.py", line 10, in <module>
    conversation_test.role_adherence()
  File "{my_home}/workspace/{my_project}/{my_package}/testcases/converstational.py", line 50, in role_adherence
    metric.measure(conv_test_case_role)
  File "{my_home}/.local/lib/python3.11/site-packages/deepeval/metrics/role_adherence/role_adherence.py", line 60, in measure
    loop.run_until_complete(
  File "/usr/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete
    return future.result()
`


**To Reproduce**

Try [blog tutorial](https://www.confident-ai.com/blog/llm-chatbot-evaluation-explained-top-chatbot-evaluation-metrics-and-testing-techniques#role-adherence) using AzureChatOpenAI as an evaluator.

deepeval 1.3.4

**Expected behavior**

Works okay.

**Screenshots**

No screenshot now

**Desktop (please complete the following information):**
 - OS: Ubuntu
 - Browser -
 - Version -


**Additional context**
Add any other context about the problem here.


```
import os
from dotenv import load_dotenv

from langchain_openai import AzureChatOpenAI
from deepeval.models.base_model import DeepEvalBaseLLM


load_dotenv()

class AzureOpenAI(DeepEvalBaseLLM):
    def __init__(
        self,
        model
    ):
        self.model = model

    def load_model(self):
        return self.model
    
    def generate(self, prompt: str) -> str:
        chat_model = self.load_model()
        response = chat_model.invoke(prompt)
        return response
    
    async def a_generate(self, prompt: str) -> str:
        chat_model = self.load_model()
        res = await chat_model.ainvoke(prompt)
        return res.content

    def get_model_name(self):
        return "Custom Azure OpenAI Model"
    

class AzureEvaluationModel:
 
    def __init__(self):
        azure_model = AzureChatOpenAI(
            openai_api_version=os.getenv("AZURE_OPENAI_API_VERSION", ""),
            azure_deployment=os.getenv("AZURE_OPENAI_DEPLOYMENT", ""),
            azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT", ""),
            openai_api_key=os.getenv("AZURE_OPENAI_API_KEY", ""),
        )
        self.model = AzureOpenAI(model=azure_model)
    
    def get_model(self):
        return self.model
```

My custom model code, referencing the [doc](https://docs.confident-ai.com/docs/metrics-introduction#using-azure-openai)