Redis Vectorstore: cannot set custom keys - got an unexpected keyword argument 
Labels: name: area: vector store, name: auto:bug

### System Info

Langchain version: 0.0285 - langchain.vectorstores.redis import Redis
Python 3.10.11


### Who can help?

_No response_

### Information

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

### Related Components

- [ ] LLMs/Chat Models
- [ ] Embedding Models
- [ ] Prompts / Prompt Templates / Prompt Selectors
- [ ] Output Parsers
- [ ] Document Loaders
- [X] Vector Stores / Retrievers
- [ ] Memory
- [ ] Agents / Agent Executors
- [ ] Tools / Toolkits
- [ ] Chains
- [ ] Callbacks/Tracing
- [ ] Async

### Reproduction

Based on the [original documentation](https://python.langchain.com/docs/integrations/vectorstores/redis) the vectorstore is created using the Redis.from_documents() method


```
from langchain.vectorstores.redis import Redis
from langchain.embeddings import OpenAIEmbeddings
from langchain.chat_models import ChatOpenAI

documents_raw = [Document(page_content="This is Alice's phone number: 123-456-7890", lookup_str='', metadata=metadata, lookup_index=0), Document(page_content='Team: Angels "Payroll (millions)": 154.49 "Wins": 89', lookup_str='', metadata=metadata, lookup_index=0)]

embeddings = OpenAIEmbeddings()

llm = ChatOpenAI()

schema = {'text': [{'name': 'source'}, 
                    {'name': 'title'}, ], 
            'numeric': [{'name': 'created_at'}], 'tag': []}

index_name = "index_name_123"

rds = Redis.from_documents(
    documents=documents_raw, # a list of Document objects from loaders or created
    embedding=embeddings, # an Embeddings object
    redis_url="redis://localhost:6379",
    index_name=index_name,
    index_schema=schema,
    keys=["a", "b"] # this is my addition. Passing my custom keys, breaks the code
)
```




### Expected behavior

**Objective**:  be able to use custom keys in Redis
**Problem**:

The Redis.from_documents() method has --> **kwargs: Any

It calls the `from_texts()` method, which calls the `from_texts_return_keys()`. This calls ` add_texts()` which contains a line --> `keys_or_ids = kwargs.get("keys", kwargs.get("ids"))`

Therefore if I understand correctly, I assume that both "keys" or "ids" would be valid keyword arguments as well from the from_documents() method. This would achieve storing documents using custom keys. However it raises:

```
  File "C:\Users\user\.virtualenvs\project-c_T0zlg5\Lib\site-packages\redis\connection.py", line 1066, in get_connection
    connection = self._available_connections.pop()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
IndexError: pop from empty list

During handling of the above exception, another exception occurred:
```
```

Traceback (most recent call last):
  File "C:\Users\userabc\Music\project\pepe.py", line 98, in <module>
    rds = Redis.from_documents(
          ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\langchain\vectorstores\base.py", line 417, in from_documents
    return cls.from_texts(texts, embedding, metadatas=metadatas, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\langchain\vectorstores\redis\base.py", line 488, in from_texts
    instance, _ = cls.from_texts_return_keys(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\langchain\vectorstores\redis\base.py", line 405, in from_texts_return_keys
    instance = cls(
               ^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\langchain\vectorstores\redis\base.py", line 274, in __init__
    redis_client = get_client(redis_url=redis_url, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\langchain\utilities\redis.py", line 127, in get_client
    if _check_for_cluster(redis_client):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\langchain\utilities\redis.py", line 198, in _check_for_cluster
    cluster_info = redis_client.info("cluster")
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\redis\commands\core.py", line 1004, in info
    return self.execute_command("INFO", section, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\redis\client.py", line 505, in execute_command
    conn = self.connection or pool.get_connection(command_name, **options)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\redis\connection.py", line 1068, in get_connection
    connection = self.make_connection()
                 ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\redis\connection.py", line 1108, in make_connection
    return self.connection_class(**self.connection_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\userabc\.virtualenvs\project-c_T0zlg5\Lib\site-packages\redis\connection.py", line 571, in __init__    super().__init__(**kwargs)
TypeError: AbstractConnection.__init__() got an unexpected keyword argument 'keys'

```