Repository: explodinggradients/ragas
Issue: Intermittent TypeError: ufunc 'bitwise_and' not supported in TopicAdherenceScore.multi_turn_ascore
Root cause: Validation Gap

[x] I have checked the [documentation](https://docs.ragas.io/) and related resources and couldn't resolve my bug.

**Describe the bug**
TopicAdherenceScore.multi_turn_ascore() intermittently throws a TypeError with numpy's bitwise_and operation. The error occurs randomly - some runs succeed while others fail with the same input data. This appears to be a type safety issue in RAGAS's internal array operations where incompatible data types are being passed to numpy's bitwise AND operator.

Ragas version: 0.3.2
Python version: 3.12.6

**Code to Reproduce**
```
import asyncio
from ragas.metrics import TopicAdherenceScore
from ragas.dataset_schema import MultiTurnSample
from ragas.llms import LangchainLLMWrapper
from langchain_openai import ChatOpenAI
from ragas.messages import HumanMessage, AIMessage

# Configuration - Replace with your OpenAI API key
LLM_CONFIG = {
    "model": "gpt-4o",
    "api_key": "YOUR_OPENAI_API_KEY",  # Replace with actual key
    "base_url": "https://api.openai.com/v1",
    "temperature": 0,
}

# Problematic conversation that triggers the error
PROBLEMATIC_CONVERSATION = [
    HumanMessage(content="what is 2*65"),
    AIMessage(content="2 multiplied by 65 is 130."),
]

REFERENCE_TOPICS = ["technology", "science", "business", "math"]

async def reproduce_error():
    """Reproduce the numpy bitwise_and error"""
    
    # Create RAGAS components
    sample = MultiTurnSample(
        user_input=PROBLEMATIC_CONVERSATION, 
        reference_topics=REFERENCE_TOPICS
    )
    
    llm = LangchainLLMWrapper(ChatOpenAI(**LLM_CONFIG))
    metric = TopicAdherenceScore(mode="f1", llm=llm)
    
    # This call may raise: ufunc 'bitwise_and' not supported for the input types
    score = await metric.multi_turn_ascore(sample)
    return score

if __name__ == "__main__":
    # Try multiple times to show intermittent nature
    for i in range(3):
        try:
            score = asyncio.run(reproduce_error())
            print(f"Run {i+1}: SUCCESS - Score: {score}")
        except Exception as e:
            if "bitwise_and" in str(e):
                print(f"Run {i+1}: NUMPY ERROR - {e}")
            else:
                print(f"Run {i+1}: OTHER ERROR - {e}")
```

**Error trace**
```
Traceback (most recent call last):
  File "/Users/saphanir/projects/examples/ragas_error_reproduction.py", line 55, in <module>
    score = asyncio.run(reproduce_error())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/saphanir/projects/.venv/lib/python3.12/site-packages/nest_asyncio.py", line 30, in run
    return loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/saphanir/projects/.venv/lib/python3.12/site-packages/nest_asyncio.py", line 98, in run_until_complete
    return f.result()
           ^^^^^^^^^^
  File "/Users/saphanir/.local/share/uv/python/cpython-3.12.6-macos-aarch64-none/lib/python3.12/asyncio/futures.py", line 203, in result
    raise self._exception.with_traceback(self._exception_tb)
  File "/Users/saphanir/.local/share/uv/python/cpython-3.12.6-macos-aarch64-none/lib/python3.12/asyncio/tasks.py", line 314, in __step_run_and_handle_result
    result = coro.send(None)
             ^^^^^^^^^^^^^^^
  File "/Users/saphanir/projects/examples/ragas_error_reproduction.py", line 47, in reproduce_error
    score = await metric.multi_turn_ascore(sample)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/saphanir/projects/.venv/lib/python3.12/site-packages/ragas/metrics/base.py", line 669, in multi_turn_ascore
    raise e
  File "/Users/saphanir/projects/.venv/lib/python3.12/site-packages/ragas/metrics/base.py", line 662, in multi_turn_ascore
    score = await asyncio.wait_for(
            ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/saphanir/.local/share/uv/python/cpython-3.12.6-macos-aarch64-none/lib/python3.12/asyncio/tasks.py", line 520, in wait_for
    return await fut
           ^^^^^^^^^
  File "/Users/saphanir/projects/.venv/lib/python3.12/site-packages/ragas/metrics/_topic_adherence.py", line 187, in _multi_turn_ascore
    true_positives = sum(topic_answered_verdict & topic_classifications)
                         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
TypeError: ufunc 'bitwise_and' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
```

**Expected behavior**
The TopicAdherenceScore metric should consistently return a score without throwing type errors. The internal array operations should handle type consistency properly, ensuring that arrays used with numpy's bitwise operations have compatible types.

**Additional context**
- Error occurs intermittently (not every run fails)
- Same input data produces different results on different runs
- Error location: `ragas/metrics/_topic_adherence.py`, line 187
- Appears to be related to LLM response variations affecting internal data type consistency
- The error specifically occurs in the bitwise AND operation between `topic_answered_verdict` and `topic_classifications` arrays
- This suggests the arrays sometimes have incompatible types

Thanks for reporting the bug @sahulphaniraj-cisco