Mutiple text_splitter ignore the chunk_size parameter 
Labels: name: area: doc loader, name: auto:bug

### System Info

langchain=0.0.294
python=3.10

### Who can help?

@hwchase17 @mmz-001 @baskaryan

### Information

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

### Related Components

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

### Reproduction

I have tried multiple text splitters, but none of them seem to respect the chunk_size parameter. My document is a podcast transcript that I create from a simple text file that combines all transcript sentences into a single string.

The SpacyTextSplitter then formats the document into coherent sentences and paragraphs. But I end up with over five individual small documents, even when I test a small part of the transcript of only 13,000 characters.

The RecursiveCharacterTextSplitter and CharacterTextSplitter split the documents into simpler grouped sentences, but they also ignore the chunk_size parameter.

My test file
[3kiv08TDn4vywkNAdoT2In_short_v2.txt](https://github.com/langchain-ai/langchain/files/12908607/3kiv08TDn4vywkNAdoT2In_short_v2.txt)

```
import spacy
from langchain.text_splitter import RecursiveCharacterTextSplitter, CharacterTextSplitter, SpacyTextSplitter

@app.post("/reduce_file/", response_model=ItemResponse)
async def reduce_file(item: Item_Reduce_FileURL):
    logging.info("Entering function reduce_file")
    try:
        # Dynamic file type detection (from summarize_file)
        response = requests.get(item.file_link)
        if response.status_code != 200:
            raise HTTPException(status_code=400, detail="Failed to download file")
        
        content_type = response.headers.get('Content-Type')
        file_extension = mimetypes.guess_extension(content_type)
        
        if file_extension and file_extension.startswith('.'):
            file_extension = file_extension[1:]
        
        temp_file_name = f"temp_file.{file_extension}"
        
        with open(temp_file_name, "wb") as f:
            f.write(response.content)
        
        # Load the document
        file_loader = OnlinePDFLoader(file_path=temp_file_name) if file_extension == 'pdf' else UnstructuredAPIFileLoader(
            file_path=temp_file_name,
            infer_table_structure=True,
            strategy="fast",
            model_name="chipper",
            mode="elements",
            pdf_infer_table_structure=False,
            ocr_languages=["eng"],
            discard_invalid_pages=True,
            encoding="utf_8",
            api_key=unstructured_api_key
        )
        
        try:
            doc = file_loader.load()
        except Exception as load_exception:
            logging.error(f"Error in file_loader.load(): {load_exception}")
            return CustomError.handle_exception(load_exception, item, exception_type=str(type(load_exception)))

        # Initialize text splitter and split the document (from reduce_pdf)
        text_splitter = SpacyTextSplitter(
            chunk_size=5000,
            chunk_overlap=0,
            length_function=len,
        )
        split_docs = text_splitter.split_documents(doc)
     

### Expected behavior

I expect only two documents since the chunk_size parameter is set to 10000 characters. I have tested with increasing and decreasing the chunk_size, and I continue to get a consistent amount of smaller documents of 1200 to 1500 characters.