模式
BaseSample
基类:BaseModel
评估样本的基类。
to_dict
get_features
SingleTurnSample
基类:BaseSample
表示单轮交互的评估样本。
属性
| 名称 | 类型 | 描述 |
|---|---|---|
user_input |
Optional[str]
|
用户的输入查询。 |
retrieved_contexts |
Optional[List[str]]
|
为查询检索到的上下文列表。 |
reference_contexts |
Optional[List[str]]
|
查询的参考上下文列表。 |
retrieved_context_ids |
Optional[List[Union[str, int]]]
|
检索到的上下文的 ID 列表。 |
reference_context_ids |
Optional[List[Union[str, int]]]
|
参考上下文的 ID 列表。 |
response |
Optional[str]
|
为查询生成的响应。 |
multi_responses |
Optional[List[str]]
|
为查询生成的多个响应的列表。 |
reference |
Optional[str]
|
查询的参考答案。 |
rubric |
Optional[Dict[str, str]]
|
样本的评估准则。 |
persona_name |
Optional[str]
|
查询生成中使用的人设名称。 |
query_style |
Optional[str]
|
生成的查询风格(例如,正式、休闲)。 |
query_length |
Optional[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)
|
对话的评估准则。 |
reference_topics |
(Optional[List[str]], optional)
|
对话的参考主题列表。 |
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 数据集。
源代码位于 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 |
List[BaseSample]
|
评估样本的列表。 |
backend |
Optional[str]
|
用于存储数据集的后端(例如,“local/csv”)。默认为 None。 |
name |
Optional[str]
|
数据集的名称。默认为 None。 |
方法
| 名称 | 描述 |
|---|---|
validate_samples |
验证所有样本是否为同一类型。 |
get_sample_type |
返回数据集中样本的类型。 |
to_hf_dataset |
将数据集转换为 Hugging Face 数据集。 |
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, 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
|
如果未提供数据集。 |
源代码位于 src/ragas/dataset_schema.py
total_tokens
计算评估中使用的总 token 数。
返回
| 类型 | 描述 |
|---|---|
list of TokenUsage or 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
|
dict of str to tuple of float
|
每个模型的成本。默认为空字典。 |
{}
|
返回
| 类型 | 描述 |
|---|---|
float
|
评估的总成本。 |
抛出
| 类型 | 描述 |
|---|---|
ValueError
|
如果未提供成本回调处理程序。 |
源代码位于 src/ragas/dataset_schema.py
MetricAnnotation
基类:BaseModel
from_json classmethod
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
以列表形式获取每个提示的所有提示注释。
源代码位于 src/ragas/dataset_schema.py
Message
基类:BaseModel
表示一个通用消息。
属性
| 名称 | 类型 | 描述 |
|---|---|---|
content |
str
|
消息的内容。 |
metadata |
(Optional[Dict[str, Any]], optional)
|
与消息关联的附加元数据。 |
ToolCall
基类:BaseModel
表示一个带有名称和参数的工具调用。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
name
|
str
|
被调用工具的名称。 |
必需 |
args
|
Dict[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 |
Optional[List[ToolCall]]
|
AI 进行的工具调用列表(如果有)。 |
metadata |
Optional[Dict[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 |
(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
|
如果未提供数据集。 |
源代码位于 src/ragas/dataset_schema.py
total_tokens
计算评估中使用的总 token 数。
返回
| 类型 | 描述 |
|---|---|
list of TokenUsage or 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
|
dict of str to tuple of float
|
每个模型的成本。默认为空字典。 |
{}
|
返回
| 类型 | 描述 |
|---|---|
float
|
评估的总成本。 |
抛出
| 类型 | 描述 |
|---|---|
ValueError
|
如果未提供成本回调处理程序。 |