自定义超时和速率限制
RunConfig 允许您将运行参数传递给诸如 evaluate() 和 TestsetGenerator.generate() 之类的函数。根据您的 LLM 提供商的速率限制、服务等级协议(SLA)和流量情况,控制这些参数可以提高 Ragas 运行的速度和可靠性,并设置容错能力。
如何在以下模块中配置 RunConfig:
- 评估
- [TestsetGenerator][ragas.testset.generator.TestsetGenerator]
速率限制
Ragas 利用 Python 中的 Async 实现并行处理,但 RunConfig 有一个名为 max_workers 的字段,它控制着允许同时发出的并发请求数量。您可以调整此参数以达到您的服务提供商所允许的最大并发度。
from ragas.run_config import RunConfig
# increasing max_workers to 64 and timeout to 60 seconds
my_run_config = RunConfig(max_workers=64, timeout=60)
评估
from ragas import EvaluationDataset, SingleTurnSample
from ragas.metrics import Faithfulness
from datasets import load_dataset
from ragas import evaluate
dataset = load_dataset("vibrantlabsai/amnesty_qa", "english_v3")
samples = []
for row in dataset["eval"]:
sample = SingleTurnSample(
user_input=row["user_input"],
reference=row["reference"],
response=row["response"],
retrieved_contexts=row["retrieved_contexts"],
)
samples.append(sample)
eval_dataset = EvaluationDataset(samples=samples)
metric = Faithfulness()
_ = evaluate(
dataset=eval_dataset,
metrics=[metric],
run_config=my_run_config,
)