Open ARES3366 opened 3 months ago
Hey there, @ARES3366! I'm here to assist you with any bugs, questions, or contributions you have. Let's tackle this together!
To resolve the "Invalid n value (currently only n = 1 is supported)" error when using the ragas
library version 0.0.22, ensure that the dataset you are passing to the evaluate
function has the correct format and values. Specifically, the dataset should have the following columns: question
, contexts
, answer
, and ground_truth
.
Here is an example of how to structure your dataset and call the evaluate
function:
from ragas import evaluate
from datasets import Dataset
# Example dataset
data = {
'question': ['What is the capital of France?'],
'contexts': [['Paris is the capital of France.']],
'answer': ['Paris'],
'ground_truth': [['Paris']]
}
# Create a Dataset object
dataset = Dataset.from_dict(data)
# Call the evaluate function
result = evaluate(dataset)
print(result)
Ensure that the contexts
and ground_truth
columns are lists of strings, even if they contain only one string. This should resolve the error related to the "Invalid n value".
Additionally, the ragas
library currently supports only n = 1
for text generation. This is enforced in the library's code, where multiple completions are only supported for specific language models. If you are using a language model that does not support multiple completions, you will need to ensure that n
is set to 1 [1][2].
To continue talking to Dosu, mention @dosu.
File "/usr/local/lib/python3.10/dist-packages/ragas/langchain/evalchain.py", line 166, in evaluate dataset_with_scores = self.metric.score(dataset, callbacks=callbacks) File "/usr/local/lib/python3.10/dist-packages/ragas/metrics/base.py", line 76, in score score = self._score_batch(dataset.select(batch), callbacks=group) File "/usr/local/lib/python3.10/dist-packages/ragas/metrics/_answer_relevance.py", line 123, in _score_batch results = self.llm.generate( File "/usr/local/lib/python3.10/dist-packages/ragas/llms/langchain.py", line 209, in generate return self._generate_multiple_completions(prompts, n, callbacks) File "/usr/local/lib/python3.10/dist-packages/ragas/llms/langchain.py", line 120, in _generate_multiple_completions result = self.llm.generate(ps, callbacks=callbacks) File "/usr/local/lib/python3.10/dist-packages/langchain_core/language_models/chat_models.py", line 534, in generate raise e File "/usr/local/lib/python3.10/dist-packages/langchain_core/language_models/chat_models.py", line 524, in generate self._generate_with_cache( File "/usr/local/lib/python3.10/dist-packages/langchain_core/language_models/chat_models.py", line 749, in _generate_with_cache result = self._generate( File "/usr/local/lib/python3.10/dist-packages/langchain_community/chat_models/openai.py", line 442, in _generate response = self.completion_with_retry( File "/usr/local/lib/python3.10/dist-packages/langchain_community/chat_models/openai.py", line 357, in completion_with_retry return self.client.create(*kwargs) File "/usr/local/lib/python3.10/dist-packages/openai/_utils/_utils.py", line 277, in wrapper return func(args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/openai/resources/chat/completions.py", line 643, in create return self._post( File "/usr/local/lib/python3.10/dist-packages/openai/_base_client.py", line 1250, in post return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) File "/usr/local/lib/python3.10/dist-packages/openai/_base_client.py", line 931, in request return self._request( File "/usr/local/lib/python3.10/dist-packages/openai/_base_client.py", line 1030, in _request raise self._make_status_error_from_response(err.response) from None openai.BadRequestError: Error code: 400 - {'detail': 'Invalid n value (currently only n = 1 is supported)'}
ragas=0.0.22