Repository: explodinggradients/ragas
Issue: Getting issue with manually framing the dataset
Root cause: Validation Gap

**Describe the bug**
I am trying to provide own datasetdict and it throws error. I have an existing Gen AI applications and the custom chatbot will provide the question, context, answer and I want to evaluate using ragas. For that I have framed a datasetdict manually and I am getting below error. 

Am I missing anything?

Ragas version:
Python version:

**Code to Reproduce**
Share code to reproduce the issue
from datasets.dataset_dict import DatasetDict
from datasets import Dataset

fiqa_eval1 =  {"baseline" : Dataset.from_dict({"features": ["question", "ground_truths", "answer", "contexts"]}),
     "data" : Dataset.from_dict({"question": "How to deposit a cheque issued to an associate in my business into my business account?",
    "ground_truths": "Have the check reissued to the proper payee.Just have the as.terertdf g gr drgd drdgdgd",
    "answer": "\nThe best way to deposit a cheque issued to an associate in your business into your business account is to open a business account with the bank. You will need a state-issued \"dba\" certificate from the county clerk's office as well as an Employer ID Number (EIN) issued by the IRS. Once you have opened the business account, you can have the associate sign the back of the cheque and deposit it into the business account.",
    "contexts": "Just have the associate sign the back and then deposit it.  It's called a third party cheque and is perfectly legal.  I wouldn't be surprised if it has a longer hold period and, as always, you don't get the money if the cheque doesn't clear. Now, you may have problems if it's a large amount or you're not very well known at the bank.  In that case you can have the associate go to the bank and endorse it in front of the teller with some ID.  You don't even technically have to be there.  Anybody can deposit money to your account if they have the account number. He could also just deposit it in his account and write a cheque to the business.\"I have checked with Bank of America, and they say the ONLY way to cash (or deposit, or otherwise get access to the funds represented by a check made out to my business) is to open a business account. They tell me this is a Federal regulation, and every bank will say the same thing.  To do this, I need a state-issued \"\"dba\"\" certificate (from the county clerk's office) as well as an Employer ID Number (EIN) issued by the IRS. AND their CHEAPEST business banking account costs $15 / month. I think I can go to the bank that the check is drawn upon, and they will cash it, assuming I have documentation showing that I am the sole proprietor. But I'm not sure.... What a racket!!\"When a business asks me to make out a cheque to a person rather than the business name, I take that as a red flag. Frankly it usually means that the person doesn't want the money going through their business account for some reason - probably tax evasion. I'm not saying you are doing that, but it is a frequent issue. If the company makes the cheque out to a person they may run the risk of being party to fraud. Worse still they only have your word for it that you actually own the company, and aren't ripping off your employer by pocketing their payment. Even worse, when the company is audited and finds that cheque, the person who wrote it will have to justify and document why they made it out to you or risk being charged with embezzlement. It's very much in their interests to make the cheque out to the company they did business with. Given that, you should really have an account in the name of your business. It's going to make your life much simpler in the long run."
})}
newset = DatasetDict(fiqa_eval1)

**Error trace**
Traceback (most recent call last):
  File "C:\tetes\evaulation_1.py", line 22, in <module>
    "data" : Dataset.from_dict({"question": "How to deposit a cheque issued to an associate in my business into my business account?",
  File "C:\....\asets\arrow_dataset.py", line 911, in from_dict
    pa_table = InMemoryTable.from_pydict(mapping=mapping)
  File "C:\.....\asets\table.py", line 762, in from_pydict
    return cls(pa.Table.from_pydict(*args, **kwargs))
  File "pyarrow\table.pxi", line 1812, in pyarrow.lib._Tabular.from_pydict
  File "pyarrow\table.pxi", line 5276, in pyarrow.lib._from_pydict
  File "pyarrow\table.pxi", line 3986, in pyarrow.lib.Table.from_arrays
  File "pyarrow\table.pxi", line 3266, in pyarrow.lib.Table.validate
  File "pyarrow\error.pxi", line 91, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Column 2 named answer expected length 87 but got length 421
**Expected behavior**
It should accept any length and continue.

**Additional context**
Add any other context about the problem here.


Found myself on how to manually frame a input, It may help others

#  Manually create a similar dataset with features
custom_dataset = {
    'question': [
            'Who is the Prime Minister of the India in 2020?',
            # Add more questions
        ],
        'ground_truths': [
            [''],
            # Options , Can add more ground truths
        ],
        'answer': [
            'Narendra Modi',
            # Add more answers
        ],
        'contexts': [
            ['Narendra Modi was the Prime Minister of India in 2020.'],
            # Add more contexts
        ],
    }