Repository: explodinggradients/ragas
Issue: Incorrect API key provided when using Azure OpenAI
Root cause: Documentation Deficiency

**Describe the bug**
As title says, i am trying to use an Azure OpenAI gpt-4o model with ragas without success. I am following the official docs (https://docs.ragas.io/en/stable/howtos/customizations/customize_models/?h=azure#azure-openai) and using the wrapper as explained in the docs. Azure OpenAI key is correct as it works outside ragas. I suspect that somewhere in the code ragas defaults to a non Azure model that doesn't recognize the Azure key.

Ragas version: 0.2.1
Python version: 3.12.2

**Code to Reproduce**
```
from langchain_openai.chat_models import AzureChatOpenAI
from langchain_openai.embeddings import AzureOpenAIEmbeddings
from ragas.llms import LangchainLLMWrapper
from ragas.embeddings import LangchainEmbeddingsWrapper
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision, context_recall, context_entity_recall, answer_similarity, answer_correctness
from datasets import Dataset 

azure_configs = {
    "base_url": "https://<your-endpoint>.openai.azure.com/",
    "model_deployment": "your-deployment-name",
    "model_name": "your-model-name",
    "embedding_deployment": "your-deployment-name",
    "embedding_name": "text-embedding-ada-002",  # most likely
}

azure_llm = AzureChatOpenAI(
    openai_api_version="2023-05-15",
    azure_endpoint=azure_configs["base_url"],
    azure_deployment=azure_configs["model_deployment"],
    model=azure_configs["model_name"],
    validate_base_url=False,
)

azure_llm = LangchainLLMWrapper(azure_llm)

d = {
    "question": questions, # my questions list
    "answer": results, # my answers list
    "contexts": contexts, # my contexts list
    "ground_truth": ground_truths # my ground_truths list
}
metrics = [faithfulness, answer_relevancy, context_precision, context_recall, context_entity_recall, answer_similarity, answer_correctness]
dataset = Dataset.from_dict(d)
score = evaluate(dataset,llm=azure_llm,metrics=metrics)
```

**Error trace**
It keeps repeating this error for each job (i've hidden key):
`Exception raised in Job[145]: AuthenticationError(Error code: 401 - {'error': {'message': 'Incorrect API key provided: ********************************. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}})`


**Expected behavior**
Evaluate the RAG correctly.


Short answer, yes you are correct, the code is trying to use a default embeddings model. 

I was able to reproduce the error with your code. I am assuming you are passing lists of strings into your dict `d` for the Dataset. 

If so, you need to specify an embedding model for the `embeddings` parameter in the `evaluate()` function. If you do not, the code will try to use the default embedding model which is OpenAI (not Azure OpenAI). If you don't have the credentials in your environment to satisfy the default connection, it will error out. 

Once I passed my embedding model to the `evaluate` function, it worked as expected.

The default LLMs/Embedding models have been causing a lot of issues, and this is being tracked and actively worked on in other issues and PRs. 

Let me know if providing the embedding model to the `evaluate()` function worked, if so, please close this issue. Thanks. 

It worked, thanks.