模式
BaseSample
基类: BaseModel
用于评估样本的基类。
to_dict
get_features
SingleTurnSample
基类: BaseSample
表示用于单轮交互的评估样本。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
user_input |
Optional[str]
|
用户的输入查询。 |
retrieved_contexts |
Optional[List[str]]
|
为查询检索到的上下文列表。 |
reference_contexts |
Optional[List[str]]
|
查询的参考上下文列表。 |
response |
Optional[str]
|
针对该查询生成的响应。 |
multi_responses |
Optional[List[str]]
|
为该查询生成的多个响应列表。 |
reference |
Optional[str]
|
查询的参考答案。 |
rubric |
Optional[Dict[str, str]]
|
样本的评估标准。 |
MultiTurnSample
基类: BaseSample
表示用于多轮交互的评估样本。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
user_input |
List[Union[HumanMessage, AIMessage, ToolMessage]]
|
表示对话轮次的消息列表。 |
reference |
(Optional[str], optional)
|
会话的参考答案或预期结果。 |
reference_tool_calls |
(Optional[List[ToolCall]], optional)
|
该对话的预期工具调用列表。 |
rubrics |
(Optional[Dict[str, str]], optional)
|
Evaluation rubrics for the conversation. |
reference_topics |
(Optional[List[str]], optional)
|
供对话参考的主题列表。 |
validate_user_input
classmethod
validate_user_input(messages: List[Union[HumanMessage, AIMessage, ToolMessage]]) -> List[Union[HumanMessage, AIMessage, ToolMessage]]
验证用户输入的消息。
Source code in ragas/src/ragas/dataset_schema.py
to_messages
RagasDataset
dataclass
基类: ABC, Generic[Sample]
to_list
abstractmethod
from_list
abstractmethod
classmethod
validate_samples
验证所有样本是否为相同类型。
Source code in ragas/src/ragas/dataset_schema.py
get_sample_type
to_hf_dataset
将数据集转换为 Hugging Face Dataset。
Source code in ragas/src/ragas/dataset_schema.py
from_hf_dataset
classmethod
to_pandas
将数据集转换为 pandas DataFrame。
Source code in ragas/src/ragas/dataset_schema.py
from_pandas
classmethod
功能
from_dict
classmethod
从字典创建一个 EvaluationDataset。
Source code in ragas/src/ragas/dataset_schema.py
to_csv
将数据集转换为 CSV 文件。
Source code in ragas/src/ragas/dataset_schema.py
to_jsonl
将数据集转换为 JSONL 文件。
from_jsonl
classmethod
从 JSONL 文件创建 EvaluationDataset。
Source code in ragas/src/ragas/dataset_schema.py
评估数据集
dataclass
基类: RagasDataset[SingleTurnSampleOrMultiTurnSample]
表示评估样本的数据集。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
samples |
List[BaseSample]
|
评估样本列表。 |
方法:
| 名称 | 描述 |
|---|---|
validate_samples |
验证所有样本是否为相同类型。 |
get_sample_type |
返回数据集中样本的类型。 |
to_hf_dataset |
将数据集转换为 Hugging Face Dataset。 |
to_pandas |
将数据集转换为 pandas DataFrame。 |
features |
返回样本的特征。 |
from_list |
从字典列表创建 EvaluationDataset。 |
from_dict |
从字典创建一个 EvaluationDataset。 |
to_csv |
将数据集转换为 CSV 文件。 |
to_jsonl |
将数据集转换为 JSONL 文件。 |
from_jsonl |
从 JSONL 文件创建一个 EvaluationDataset。 |
EvaluationResult
dataclass
EvaluationResult(scores: List[Dict[str, Any]], dataset: EvaluationDataset, binary_columns: List[str] = list(), cost_cb: Optional[CostCallbackHandler] = None, traces: List[Dict[str, Any]] = list(), ragas_traces: Dict[str, ChainRun] = dict(), run_id: Optional[UUID] = None)
一个用于存储和处理评估结果的类。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
scores |
Dataset
|
包含评估分数的数据集。 |
dataset |
(Dataset, optional)
|
用于评估的原始数据集。默认值为 None. |
binary_columns |
list of str, optional
|
二元指标的列列表。默认是空列表。 |
cost_cb |
(CostCallbackHandler, optional)
|
用于成本计算的回调处理程序。默认值为 None。 |
to_pandas
将结果转换为 pandas DataFrame。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
batch_size
|
int
|
用于转换的批量大小。默认值为 None。 |
None
|
batched
|
bool
|
是否批量转换。默认值为 False。 |
False
|
返回:
| 类型 | 描述 |
|---|---|
DataFrame
|
结果为 pandas DataFrame。 |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
如果未提供数据集。 |
Source code in ragas/src/ragas/dataset_schema.py
total_tokens
计算评估中使用的总令牌数。
返回:
| 类型 | 描述 |
|---|---|
list of TokenUsage or TokenUsage
|
使用的总令牌数。 |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
如果未提供成本回调处理程序。 |
Source code in ragas/src/ragas/dataset_schema.py
total_cost
total_cost(cost_per_input_token: Optional[float] = None, cost_per_output_token: Optional[float] = None, per_model_costs: Dict[str, Tuple[float, float]] = {}) -> float
计算评估的总成本。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
cost_per_input_token
|
float
|
每个输入 token 的费用。默认是 None。 |
None
|
cost_per_output_token
|
float
|
每个输出令牌的成本。默认值为 None。 |
None
|
per_model_costs
|
dict of str to tuple of float
|
每个模型的费用。默认是一个空字典。 |
{}
|
返回:
| 类型 | 描述 |
|---|---|
float
|
评估的总成本。 |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
如果未提供成本回调处理程序。 |
Source code in ragas/src/ragas/dataset_schema.py
MetricAnnotation
基类: BaseModel
from_json
classmethod
from_app
classmethod
从 URL 获取注释,可使用评估结果或 run_id
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
run_id
|
str
|
直接指定 run ID 以获取注释 |
required |
metric_name
|
str
|
要筛选的特定指标的名称 |
None
|
返回:
| 类型 | 描述 |
|---|---|
MetricAnnotation
|
来自 API 的标注数据 |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
如果未提供 run_id |
Source code in ragas/src/ragas/dataset_schema.py
SingleMetricAnnotation
基类: BaseModel
train_test_split
train_test_split(test_size: float = 0.2, seed: int = 42, stratify: Optional[List[Any]] = None) -> Tuple['SingleMetricAnnotation', 'SingleMetricAnnotation']
将数据集分为训练集和测试集。
参数: test_size (float): 数据集中包含在测试划分中的比例。 seed (int): 用于可重现性的随机种子。 stratify (list): 要在其上进行分层划分的列值。
Source code in ragas/src/ragas/dataset_schema.py
示例
创建数据集的子集。
参数: n (int): 要包括在子集中的样本数量。 stratify_key (str): 用于对该子集进行分层的列。
返回:SingleMetricAnnotation:数据集的一个子集,包含 n 个样本。
Source code in ragas/src/ragas/dataset_schema.py
批次
创建一个批次迭代器。
参数: batch_size (int): 每个批次中的样本数量。 stratify (str): 用于对批次进行分层的列。 drop_last_batch (bool): 如果最后一个批次小于指定的批次大小,是否丢弃该批次。
Source code in ragas/src/ragas/dataset_schema.py
stratified_batches
stratified_batches(batch_size: int, stratify_key: str, drop_last_batch: bool = False, replace: bool = False) -> List[List[SampleAnnotation]]
根据指定键创建分层批次,确保各类别按比例表示。
参数:
batch_size (int): 每个批次的样本数量。
stratify_key (str): 用于分层的 metric_input 中的键(例如,类别标签)。
drop_last_batch (bool): 如果为 True,当最后一个批次的样本少于 batch_size 时,丢弃最后一个批次。
replace (bool): 如果为 True,在必要时允许重用同一类的样本来填充批次。
返回: List[List[SampleAnnotation]]: 分层批次的列表,每个批次都是一组 SampleAnnotation 对象。
Source code in ragas/src/ragas/dataset_schema.py
get_prompt_annotations
以列表形式获取每个提示的所有注释。
Source code in ragas/src/ragas/dataset_schema.py
消息
基类: BaseModel
表示一个通用的消息。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
content |
str
|
消息的内容。 |
metadata |
(Optional[Dict[str, Any]], optional)
|
与消息相关的附加元数据。 |
工具调用
基类: BaseModel
表示具有名称和参数的工具调用。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
name
|
str
|
被调用的工具的名称。 |
required |
args
|
Dict[str, Any]
|
一个用于工具调用的参数字典,其中键是参数名称,值可以是字符串、整数或浮点数。 |
required |
HumanMessage
基类: Message
表示来自人类用户的一条消息。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
type |
Literal[human]
|
消息的类型,始终设置为 "human". |
方法:
| 名称 | 描述 |
|---|---|
pretty_repr |
返回人类消息的格式化字符串表示。 |
工具消息
基类: Message
表示来自工具的消息。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
type |
Literal[tool]
|
消息的类型,始终设置为 "tool". |
方法:
| 名称 | 描述 |
|---|---|
pretty_repr |
返回工具消息的格式化字符串表示。 |
AI消息
基类: Message
表示来自人工智能的消息。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
type |
Literal[ai]
|
消息的类型,始终设置为 "ai". |
tool_calls |
Optional[List[ToolCall]]
|
由 AI 发出的工具调用列表(如果有)。 |
metadata |
Optional[Dict[str, Any]]
|
与 AI 消息关联的附加元数据。 |
方法:
| 名称 | 描述 |
|---|---|
dict |
返回AI消息的字典表示形式。 |
pretty_repr |
返回 AI 消息的格式化字符串表示。 |
to_dict
返回AI消息的字典表示形式。
Source code in ragas/src/ragas/messages.py
pretty_repr
返回 AI 消息的格式化字符串表示。
Source code in ragas/src/ragas/messages.py
ragas.evaluation.EvaluationResult
dataclass
EvaluationResult(scores: List[Dict[str, Any]], dataset: EvaluationDataset, binary_columns: List[str] = list(), cost_cb: Optional[CostCallbackHandler] = None, traces: List[Dict[str, Any]] = list(), ragas_traces: Dict[str, ChainRun] = dict(), run_id: Optional[UUID] = None)
一个用于存储和处理评估结果的类。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
scores |
Dataset
|
包含评估分数的数据集。 |
dataset |
(Dataset, optional)
|
用于评估的原始数据集。默认值为 None. |
binary_columns |
list of str, optional
|
二元指标的列列表。默认是空列表。 |
cost_cb |
(CostCallbackHandler, optional)
|
用于成本计算的回调处理程序。默认值为 None。 |
to_pandas
将结果转换为 pandas DataFrame。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
batch_size
|
int
|
用于转换的批量大小。默认值为 None。 |
None
|
batched
|
bool
|
是否批量转换。默认值为 False。 |
False
|
返回:
| 类型 | 描述 |
|---|---|
DataFrame
|
结果为 pandas DataFrame。 |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
如果未提供数据集。 |
Source code in ragas/src/ragas/dataset_schema.py
total_tokens
计算评估中使用的总令牌数。
返回:
| 类型 | 描述 |
|---|---|
list of TokenUsage or TokenUsage
|
使用的总令牌数。 |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
如果未提供成本回调处理程序。 |
Source code in ragas/src/ragas/dataset_schema.py
total_cost
total_cost(cost_per_input_token: Optional[float] = None, cost_per_output_token: Optional[float] = None, per_model_costs: Dict[str, Tuple[float, float]] = {}) -> float
计算评估的总成本。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
cost_per_input_token
|
float
|
每个输入 token 的费用。默认是 None。 |
None
|
cost_per_output_token
|
float
|
每个输出令牌的成本。默认值为 None。 |
None
|
per_model_costs
|
dict of str to tuple of float
|
每个模型的费用。默认是一个空字典。 |
{}
|
返回:
| 类型 | 描述 |
|---|---|
float
|
评估的总成本。 |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
如果未提供成本回调处理程序。 |