模式
BaseSample
基类: BaseModel
评估样本的基类。
to_dict
get_features
SingleTurnSample
基类: BaseSample
表示单轮交互的评估样本。
属性
名称 | 类型 | 描述 |
---|---|---|
user_input |
可选[str]
|
用户的输入查询。 |
retrieved_contexts |
可选[列表[str]]
|
为查询检索到的上下文列表。 |
reference_contexts |
可选[列表[str]]
|
查询的参考上下文列表。 |
response |
可选[str]
|
为查询生成的响应。 |
multi_responses |
可选[列表[str]]
|
为查询生成的多个响应列表。 |
reference |
可选[str]
|
查询的参考答案。 |
rubric |
可选[字典[str, str]]
|
样本的评估评分标准。 |
MultiTurnSample
基类: BaseSample
表示多轮交互的评估样本。
属性
名称 | 类型 | 描述 |
---|---|---|
user_input |
列表[联合[HumanMessage, AIMessage, ToolMessage]]
|
表示对话轮次的消息列表。 |
reference |
(可选[str], 可选)
|
对话的参考答案或预期结果。 |
reference_tool_calls |
(可选[列表[ToolCall]], 可选)
|
对话的预期工具调用列表。 |
rubrics |
(可选[字典[str, str]], 可选)
|
对话的评估评分标准。 |
reference_topics |
(可选[列表[str]], 可选)
|
对话的参考主题列表。 |
validate_user_input classmethod
validate_user_input(messages: List[Union[HumanMessage, AIMessage, ToolMessage]]) -> List[Union[HumanMessage, AIMessage, ToolMessage]]
验证用户输入消息。
源代码位于 src/ragas/dataset_schema.py
to_messages
RagasDataset dataclass
基类: ABC
, Generic[Sample]
to_list abstractmethod
from_list abstractmethod
classmethod
validate_samples
验证所有样本类型相同。
源代码位于 src/ragas/dataset_schema.py
get_sample_type
to_hf_dataset
将数据集转换为 Hugging Face Dataset。
源代码位于 src/ragas/dataset_schema.py
from_hf_dataset classmethod
to_pandas
将数据集转换为 pandas DataFrame。
源代码位于 src/ragas/dataset_schema.py
from_pandas classmethod
features
from_dict classmethod
从字典创建一个 EvaluationDataset。
源代码位于 src/ragas/dataset_schema.py
to_csv
将数据集转换为 CSV 文件。
源代码位于 src/ragas/dataset_schema.py
to_jsonl
from_jsonl classmethod
从 JSONL 文件创建一个 EvaluationDataset。
EvaluationDataset dataclass
基类: RagasDataset[SingleTurnSampleOrMultiTurnSample]
表示评估样本数据集。
属性
名称 | 类型 | 描述 |
---|---|---|
samples |
列表[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 |
(数据集, 可选)
|
用于评估的原始数据集。默认为 None。 |
binary_columns |
字符串列表,可选
|
是二元指标的列列表。默认为空列表。 |
cost_cb |
(CostCallbackHandler, 可选)
|
用于成本计算的回调处理器。默认为 None。 |
to_pandas
将结果转换为 pandas DataFrame。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
batch_size
|
int
|
转换的批次大小。默认为 None。 |
None
|
batched
|
bool
|
是否按批次转换。默认为 False。 |
False
|
返回
类型 | 描述 |
---|---|
DataFrame
|
结果以 pandas DataFrame 形式返回。 |
引发
类型 | 描述 |
---|---|
ValueError
|
如果未提供数据集。 |
源代码位于 src/ragas/dataset_schema.py
total_tokens
计算评估中使用的总 token 数。
返回
类型 | 描述 |
---|---|
TokenUsage 列表或 TokenUsage
|
使用的总 token 数。 |
引发
类型 | 描述 |
---|---|
ValueError
|
如果未提供成本回调处理器。 |
源代码位于 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
|
每个输出 token 的成本。默认为 None。 |
None
|
per_model_costs
|
str 到 float 元组的字典
|
每个模型的成本。默认为空字典。 |
{}
|
返回
类型 | 描述 |
---|---|
float
|
评估的总成本。 |
引发
类型 | 描述 |
---|---|
ValueError
|
如果未提供成本回调处理器。 |
源代码位于 src/ragas/dataset_schema.py
MetricAnnotation
基类: BaseModel
from_json classmethod
from_app classmethod
使用评估结果或 run_id 从 URL 获取注释
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
run_id
|
str
|
直接运行 ID 获取注释 |
必需的 |
metric_name
|
str
|
要筛选的特定指标名称 |
None
|
返回
类型 | 描述 |
---|---|
MetricAnnotation
|
来自 API 的注释数据 |
引发
类型 | 描述 |
---|---|
ValueError
|
如果未提供 run_id |
源代码位于 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):用于分层拆分的列值。
源代码位于 src/ragas/dataset_schema.py
sample
创建数据集的子集。
参数:n (int):子集中包含的样本数量。stratify_key (str):用于对子集进行分层的列。
返回:SingleMetricAnnotation:包含 n
个样本的数据集子集。
源代码位于 src/ragas/dataset_schema.py
batch
创建批次迭代器。
参数:batch_size (int):每个批次中的样本数量。stratify (str):用于对批次进行分层的列。drop_last_batch (bool):如果最后一个批次小于指定批次大小,是否丢弃该批次。
源代码位于 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 对象列表。
源代码位于 src/ragas/dataset_schema.py
get_prompt_annotations
将每个 prompt 的所有 prompt 注释作为列表获取。
源代码位于 src/ragas/dataset_schema.py
Message
基类: BaseModel
表示通用消息。
属性
名称 | 类型 | 描述 |
---|---|---|
content |
str
|
消息内容。 |
metadata |
(可选[字典[str, Any]], 可选)
|
与消息相关的附加元数据。 |
ToolCall
基类: BaseModel
表示带名称和参数的工具调用。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
name
|
str
|
被调用的工具名称。 |
必需的 |
args
|
字典[str, Any]
|
工具调用的参数字典,其中键是参数名称,值可以是字符串、整数或浮点数。 |
必需的 |
HumanMessage
基类: Message
表示来自人类用户的消息。
属性
名称 | 类型 | 描述 |
---|---|---|
type |
Literal[human]
|
消息类型,始终设置为“human”。 |
方法
名称 | 描述 |
---|---|
pretty_repr |
返回人类消息的格式化字符串表示。 |
ToolMessage
基类: Message
表示来自工具的消息。
属性
名称 | 类型 | 描述 |
---|---|---|
type |
Literal[tool]
|
消息类型,始终设置为“tool”。 |
方法
名称 | 描述 |
---|---|
pretty_repr |
返回工具消息的格式化字符串表示。 |
AIMessage
基类: Message
表示来自 AI 的消息。
属性
名称 | 类型 | 描述 |
---|---|---|
type |
Literal[ai]
|
消息类型,始终设置为“ai”。 |
tool_calls |
可选[列表[ToolCall]]
|
AI 进行的工具调用列表(如果有)。 |
metadata |
可选[字典[str, Any]]
|
与 AI 消息相关的附加元数据。 |
方法
名称 | 描述 |
---|---|
dict |
返回 AI 消息的字典表示。 |
pretty_repr |
返回 AI 消息的格式化字符串表示。 |
to_dict
返回 AI 消息的字典表示。
源代码位于 src/ragas/messages.py
pretty_repr
返回 AI 消息的格式化字符串表示。
源代码位于 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 |
(数据集, 可选)
|
用于评估的原始数据集。默认为 None。 |
binary_columns |
字符串列表,可选
|
是二元指标的列列表。默认为空列表。 |
cost_cb |
(CostCallbackHandler, 可选)
|
用于成本计算的回调处理器。默认为 None。 |
to_pandas
将结果转换为 pandas DataFrame。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
batch_size
|
int
|
转换的批次大小。默认为 None。 |
None
|
batched
|
bool
|
是否按批次转换。默认为 False。 |
False
|
返回
类型 | 描述 |
---|---|
DataFrame
|
结果以 pandas DataFrame 形式返回。 |
引发
类型 | 描述 |
---|---|
ValueError
|
如果未提供数据集。 |
源代码位于 src/ragas/dataset_schema.py
total_tokens
计算评估中使用的总 token 数。
返回
类型 | 描述 |
---|---|
TokenUsage 列表或 TokenUsage
|
使用的总 token 数。 |
引发
类型 | 描述 |
---|---|
ValueError
|
如果未提供成本回调处理器。 |
源代码位于 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
|
每个输出 token 的成本。默认为 None。 |
None
|
per_model_costs
|
str 到 float 元组的字典
|
每个模型的成本。默认为空字典。 |
{}
|
返回
类型 | 描述 |
---|---|
float
|
评估的总成本。 |
引发
类型 | 描述 |
---|---|
ValueError
|
如果未提供成本回调处理器。 |