OpenAIEmbeddings doesn't allow specifying API key in parameters
Labels: name: area: embeddings, name: auto:bug

### System Info

Langchain Version: 0.0.331 (also tested 0.0.326)
Python Version: 3.11.6




### Who can help?

@hwchase17

### Information

- [ ] The official example notebooks/scripts
- [X] My own modified scripts

### Related Components

- [ ] LLMs/Chat Models
- [x] Embedding Models
- [ ] Prompts / Prompt Templates / Prompt Selectors
- [ ] Output Parsers
- [ ] Document Loaders
- [ ] Vector Stores / Retrievers
- [ ] Memory
- [ ] Agents / Agent Executors
- [ ] Tools / Toolkits
- [ ] Chains
- [ ] Callbacks/Tracing
- [ ] Async

### Reproduction


## The issue
It appears that `langchain.embeddings.OpenAIEmbeddings` does not support using parameters to define an API key, despite that being documented [here](https://api.python.langchain.com/en/latest/embeddings/langchain.embeddings.openai.OpenAIEmbeddings.html?highlight=azureopenai#langchain.embeddings.openai.OpenAIEmbeddings.openai_api_type). We are using Azure OpenAI, we've successfully configured the API with the same `openai_api_key` parameter for the `AzureOpenAI` method and the `AzureChatOpenAI` methods, but this doesn't work for the `OpenAIEmbeddings`. 

We can get embeddings to generate by specifying the `OPENAI_API_KEY` env var, as shown in your docs, we would like to not do this though as our use case requires having both an Azure Open AI instance key and Open AI key configured. 

Calling the OpenAIEmbeddings method as show below does not work

```python
from langchain.embeddings import OpenAIEmbeddings
....

            openAiEmbeddings = OpenAIEmbeddings(
                # model=LLmType.TEXT_EMBEDDING_ADA_002,
                deployment_name=deployment,
                openai_api_type="azure",
                openai_api_key=azure_openai_api_key,
                openai_api_base=azure_openai_api_base,
                chunk_size=1,
                openai_api_version=azure_openai_api_version,
                )
            return LangchainEmbedding(openAiEmbeddings)
```

The error I receive is here: 

```
No API key found for OpenAI.
Please set either the OPENAI_API_KEY environment variable or openai.api_key prior to initialization.
API keys can be found or created at https://platform.openai.com/account/api-keys

To disable the LLM entirely, set llm=None.
******
2023-11-06 21:14:53,499 - ERROR - Error processing documents: ******
Could not load OpenAI model. If you intended to use OpenAI, please check your OPENAI_API_KEY.
Original error:
No API key found for OpenAI.
Please set either the OPENAI_API_KEY environment variable or openai.api_key prior to initialization.
API keys can be found or created at https://platform.openai.com/account/api-keys

To disable the LLM entirely, set llm=None.
******
```

## Troubleshooting

Another valid workaround is this setting `openai.api_key`, such as below
```
import openai
...

            openai.api_key = self.azure_openai_api_key

            openAiEmbeddings = OpenAIEmbeddings(
                # model=LLmType.TEXT_EMBEDDING_ADA_002,
                deployment_name=deployment,
                openai_api_type="azure",
                openai_api_base=azure_openai_api_base,
                chunk_size=1,
                openai_api_version=azure_openai_api_version,
                )
            return LangchainEmbedding(openAiEmbeddings)
```

I added the following code to ensure an empty OPENAI_API_KEY environment variable wan't causing the issue, it make no effect.
```python
if 'OPENAI_API_KEY' in os.environ:
                print("did find OPENAI_API_KEY in os.environ")
                print("os.environ[OPENAI_API_KEY]: ", os.environ["OPENAI_API_KEY"])
                del os.environ['OPENAI_API_KEY']
            else:
                print("did not find OPENAI_API_KEY in os.environ")
```


### Expected behavior


I expected to be able to simply use the `openai_api_key` parameter of `langchain.embedding.OpenAIEmbeddings` without needing to define the `OPENAI_API_KEY` env var or import openai and use `openai.api_key =`