VLLMOpenAI -- create() got an unexpected keyword argument 'api_key'
Labels: name: auto:bug, name: area: models

### System Info

Python 3.9
langchain 0.0.336
openai 1.3.2
pandas 2.1.3


### Who can help?

@EYU

### Information

- [X] The official example notebooks/scripts
- [ ] My own modified scripts

### Related Components

- [X] LLMs/Chat Models
- [ ] 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

First of all, thank you for this great library !

Concerning the bug,  I have a vllm openai server (0.2.1.post1)  running locally started with the following command:
```
python -m vllm.entrypoints.openai.api_server --model ./zephyr-7b-beta --served-model-name zephyr-7b-beta
```

On the client side, I have this piece of code, slightly adapted from the documentation (only the model name changes).

```python
from langchain.llms import VLLMOpenAI

llm = VLLMOpenAI(
    openai_api_key="EMPTY",
    openai_api_base="http://localhost:8000/v1",
    model_name="zephyr-7b-beta",
)
print(llm("Rome is"))
```

And I got the following error:

```text
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[19], line 6
      1 llm = VLLMOpenAI(
      2     openai_api_key="EMPTY",
      3     openai_api_base="http://localhost:8000/v1",
      4     model_name="zephyr-7b-beta",
      5 )
----> 6 llm("Rome is")

File ~/softwares/miniconda3/envs/demo/lib/python3.9/site-packages/langchain/llms/base.py:876, in BaseLLM.__call__(self, prompt, stop, callbacks, tags, metadata, **kwargs)
    869 if not isinstance(prompt, str):
    870     raise ValueError(
    871         "Argument `prompt` is expected to be a string. Instead found "
    872         f"{type(prompt)}. If you want to run the LLM on multiple prompts, use "
    873         "`generate` instead."
    874     )
    875 return (
--> 876     self.generate(
    877         [prompt],
    878         stop=stop,
    879         callbacks=callbacks,
    880         tags=tags,
    881         metadata=metadata,
    882         **kwargs,
    883     )
    884     .generations[0][0]
    885     .text
    886 )

File ~/softwares/miniconda3/envs/demo/lib/python3.9/site-packages/langchain/llms/base.py:656, in BaseLLM.generate(self, prompts, stop, callbacks, tags, metadata, run_name, **kwargs)
    641         raise ValueError(
    642             "Asked to cache, but no cache found at `langchain.cache`."
    643         )
    644     run_managers = [
    645         callback_manager.on_llm_start(
    646             dumpd(self),
   (...)
    654         )
    655     ]
--> 656     output = self._generate_helper(
    657         prompts, stop, run_managers, bool(new_arg_supported), **kwargs
    658     )
    659     return output
    660 if len(missing_prompts) > 0:

File ~/softwares/miniconda3/envs/demo/lib/python3.9/site-packages/langchain/llms/base.py:544, in BaseLLM._generate_helper(self, prompts, stop, run_managers, new_arg_supported, **kwargs)
    542     for run_manager in run_managers:
    543         run_manager.on_llm_error(e)
--> 544     raise e
    545 flattened_outputs = output.flatten()
    546 for manager, flattened_output in zip(run_managers, flattened_outputs):

File ~/softwares/miniconda3/envs/demo/lib/python3.9/site-packages/langchain/llms/base.py:531, in BaseLLM._generate_helper(self, prompts, stop, run_managers, new_arg_supported, **kwargs)
    521 def _generate_helper(
    522     self,
    523     prompts: List[str],
   (...)
    527     **kwargs: Any,
    528 ) -> LLMResult:
    529     try:
    530         output = (
--> 531             self._generate(
    532                 prompts,
    533                 stop=stop,
    534                 # TODO: support multiple run managers
    535                 run_manager=run_managers[0] if run_managers else None,
    536                 **kwargs,
    537             )
    538             if new_arg_supported
    539             else self._generate(prompts, stop=stop)
    540         )
    541     except BaseException as e:
    542         for run_manager in run_managers:

File ~/softwares/miniconda3/envs/demo/lib/python3.9/site-packages/langchain/llms/openai.py:454, in BaseOpenAI._generate(self, prompts, stop, run_manager, **kwargs)
    442     choices.append(
    443         {
    444             "text": generation.text,
   (...)
    451         }
    452     )
    453 else:
--> 454     response = completion_with_retry(
    455         self, prompt=_prompts, run_manager=run_manager, **params
    456     )
    457     if not isinstance(response, dict):
    458         # V1 client returns the response in an PyDantic object instead of
    459         # dict. For the transition period, we deep convert it to dict.
    460         response = response.dict()

File ~/softwares/miniconda3/envs/demo/lib/python3.9/site-packages/langchain/llms/openai.py:114, in completion_with_retry(llm, run_manager, **kwargs)
    112 """Use tenacity to retry the completion call."""
    113 if is_openai_v1():
--> 114     return llm.client.create(**kwargs)
    116 retry_decorator = _create_retry_decorator(llm, run_manager=run_manager)
    118 @retry_decorator
    119 def _completion_with_retry(**kwargs: Any) -> Any:

File ~/softwares/miniconda3/envs/demo/lib/python3.9/site-packages/openai/_utils/_utils.py:299, in required_args.<locals>.inner.<locals>.wrapper(*args, **kwargs)
    297             msg = f"Missing required argument: {quote(missing[0])}"
    298     raise TypeError(msg)
--> 299 return func(*args, **kwargs)

TypeError: create() got an unexpected keyword argument 'api_key'
```

It seems that if I remove the line 158 from `langchain/llms/vllm.py`, the code is working.

### Expected behavior

I expect a completion with no error.