定制超时与速率限制
在使用 collections API 与 llm_factory 时,直接在你的 LLM client 上配置超时和重试。
OpenAI Client 配置
from openai import AsyncOpenAI
from ragas.llms import llm_factory
from ragas.metrics.collections import Faithfulness
# Configure timeout and retries on the client
client = AsyncOpenAI(
timeout=60.0, # 60 second timeout
max_retries=5, # Retry up to 5 times on failures
)
llm = llm_factory("gpt-4o-mini", client=client)
# Use with metrics
scorer = Faithfulness(llm=llm)
result = scorer.score(
user_input="When was the first super bowl?",
response="The first superbowl was held on Jan 15, 1967",
retrieved_contexts=[
"The First AFL–NFL World Championship Game was an American football game played on January 15, 1967, at the Los Angeles Memorial Coliseum in Los Angeles."
]
)
可用选项
| 参数 | 默认值 | 描述 |
|---|---|---|
timeout |
600.0 | 请求超时(秒) |
max_retries |
2 | 失败请求的重试次数 |
细粒度超时控制
要对不同类型的超时有更多控制:
import httpx
from openai import AsyncOpenAI
client = AsyncOpenAI(
timeout=httpx.Timeout(
60.0, # Total timeout
connect=5.0, # Connection timeout
read=30.0, # Read timeout
write=10.0, # Write timeout
),
max_retries=3,
)
提供商文档
每个 LLM 提供商都有自己的 client 配置选项。请参考你的提供商的 SDK 文档:
旧版 Metrics API
以下示例使用带 RunConfig 的旧版 metrics API 模式。对于新项目,我们建议使用上文所示的基于 collections 的 API,在 client 级别进行配置。
弃用时间线
此 API 将在 0.4 版本中弃用,并在 1.0 版本中移除。请迁移到基于 collections 的 API。
RunConfig 参数
from ragas.run_config import RunConfig
run_config = RunConfig(
timeout=180, # Max seconds per operation (default: 180)
max_retries=10, # Retry attempts (default: 10)
max_wait=60, # Max seconds between retries (default: 60)
max_workers=16, # Concurrent workers (default: 16)
log_tenacity=False, # Log retry attempts (default: False)
seed=42, # Random seed (default: 42)
)
与 Evaluate 一起使用
from langchain_openai import ChatOpenAI
from ragas.llms import LangchainLLMWrapper
from ragas import EvaluationDataset, SingleTurnSample, evaluate
from ragas.metrics import Faithfulness
from ragas.run_config import RunConfig
# Legacy LLM setup
llm = LangchainLLMWrapper(ChatOpenAI(model="gpt-4o"))
# Configure run settings
run_config = RunConfig(max_workers=64, timeout=60)
# Use with evaluate
results = evaluate(
dataset=eval_dataset,
metrics=[Faithfulness(llm=llm)],
run_config=run_config,
)