Repository: explodinggradients/ragas
Issue: Getting exception when trying to generate test data with Bedrock and Anthropic claude2 combination
Root cause: Validation Gap

[Yes ] I have checked the [documentation](https://docs.ragas.io/) and related resources and couldn't resolve my bug.

**Describe the bug**
A clear and concise description of what the bug is.

Ragas version: Latest as of today.
Python version: Python3

**Code to Reproduce**
from ragas.testset.generator import TestsetGenerator
from ragas.testset.evolutions import simple, reasoning, multi_context

# generator with anthropic models

```py
test_generator = TestsetGenerator(
    generator_llm=ragas_bedrock_model,
    critic_llm=ragas_bedrock_model,
    embeddings=ragas_bedrock_embeddings,
    docstore=ragas_docstore,
)

testset = test_generator.generate_with_langchain_docs(documents, test_size=10, distributions={simple: 0.5, reasoning: 0.25, multi_context: 0.25},with_debugging_logs=True,is_async=True, raise_exceptions=True)
```

**Error trace**
```
Exception in thread Thread-10:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 96, in run
    results = self.loop.run_until_complete(self._aresults())
  File "/opt/conda/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
    return future.result()
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 84, in _aresults
    raise e
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 79, in _aresults
    r = await future
  File "/opt/conda/lib/python3.10/asyncio/tasks.py", line 571, in _wait_for_one
    return f.result()  # May raise f.exception().
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 38, in sema_coro
    return await coro
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 112, in wrapped_callable_async
    return counter, await callable(*args, **kwargs)
  File "/root/SabyWorkspace/ragas/src/ragas/testset/evolutions.py", line 141, in evolve
    ) = await self._aevolve(current_tries, current_nodes)
  File "/root/SabyWorkspace/ragas/src/ragas/testset/evolutions.py", line 291, in _aevolve
    return await self.aretry_evolve(
  File "/root/SabyWorkspace/ragas/src/ragas/testset/evolutions.py", line 119, in aretry_evolve
    return await self._aevolve(current_tries, current_nodes)
  File "/root/SabyWorkspace/ragas/src/ragas/testset/evolutions.py", line 287, in _aevolve
    merged_node = self.merge_nodes(current_nodes)
  File "/root/SabyWorkspace/ragas/src/ragas/testset/evolutions.py", line 73, in merge_nodes
    new_node = Node(
  File "/opt/conda/lib/python3.10/site-packages/langchain_core/documents/base.py", line 22, in __init__
    super().__init__(page_content=page_content, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/langchain_core/load/serializable.py", line 120, in __init__
    super().__init__(**kwargs)
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 2 validation errors for Node
keyphrases -> 0
  str type expected (type=type_error.str)
keyphrases -> 1
  str type expected (type=type_error.str)
**Expected behavior**
We would expect to get some test data ( questions, answers,with_groundth etc)
```

**Additional context**
Add any other context about the problem here.

<!-- PS: bugs suck but is also part of the process. We sincerely apologies for breaking your flow because of it, but don't worry, we got your back ❤️. We will get this fixed as fast as we can and thanks for helping us out by reporting it 🙏. -->


Hi,

I took the latest today and got below exception when I run the code.
```
Exception in thread Thread-8:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 96, in run
    results = self.loop.run_until_complete(self._aresults())
  File "/opt/conda/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
    return future.result()
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 84, in _aresults
    raise e
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 79, in _aresults
    r = await future
  File "/opt/conda/lib/python3.10/asyncio/tasks.py", line 571, in _wait_for_one
    return f.result()  # May raise f.exception().
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 38, in sema_coro
    return await coro
  File "/root/SabyWorkspace/ragas/src/ragas/executor.py", line 112, in wrapped_callable_async
    return counter, await callable(*args, **kwargs)
  File "/root/SabyWorkspace/ragas/src/ragas/testset/evolutions.py", line 143, in evolve
    return await self.generate_datarow(
  File "/root/SabyWorkspace/ragas/src/ragas/testset/evolutions.py", line 209, in generate_datarow
    selected_nodes = [
  File "/root/SabyWorkspace/ragas/src/ragas/testset/evolutions.py", line 212, in <listcomp>
    if i - 1 < len(current_nodes.nodes)
TypeError: unsupported operand type(s) for -: 'str' and 'int'
------------------------------------------------------------

Code reference aws-bedrock.ipynb in docs/customization/howto folder
```
Request you to please look into it ASAP.

Is there any update on the issue @shahules786 ? I always get nan in groundtruth even though the context has the answer. Please check.

I also got the same error ! 
However, I'm using the Cohere API

same issue, metrics return null, like this: https://github.com/explodinggradients/ragas/blob/ffebf4f064ba995cbf9652a56183ece7800170d8/docs/howtos/customisations/aws-bedrock.ipynb#L214


![image](https://github.com/user-attachments/assets/501731d6-df85-4105-937b-1009aabfbc53)


@ycjcl868 @mohammedsalah-ai @sabypc my sincere apologies for the late response but the main reason why this is because of the JSON response not working. Anthropic models sometimes put in some extra keywords. However We do have a retry mechanism that should help here

could you share which models you are using so that I can try and reproduce this and experiment with the retry mechanism?