集成
ragas.integrations.langchain
EvaluatorChain
EvaluatorChain(metric: Metric, **kwargs: Any)
基类: Chain, RunEvaluator
用于将 ragas Metrics 与 langsmith 一起使用的包装器。
Source code in ragas/src/ragas/integrations/langchain.py
evaluate_run
评估一次 langsmith 运行
Source code in ragas/src/ragas/integrations/langchain.py
ragas.integrations.langsmith
upload_dataset
upload_dataset(dataset: Testset, dataset_name: str, dataset_desc: str = '') -> Dataset
将新的数据集上传到 LangSmith,在上传之前将其从 TestDataset object 转换为 pandas DataFrame。如果具有指定名称的数据集已存在,该函数会引发错误。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
dataset
|
TestDataset
|
要上传的数据集。 |
required |
dataset_name
|
str
|
在 LangSmith 中新数据集的名称。 |
required |
dataset_desc
|
str
|
新数据集的描述。默认值为空字符串。 |
''
|
返回:
| 类型 | 描述 |
|---|---|
Dataset
|
上传后在 LangSmith 中存储的数据集对象。 |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
如果 LangSmith 中已存在具有指定名称的数据集。 |
Notes
该函数尝试通过给定名称读取数据集以检查其是否存在。如果未找到,它会在将其转换为 pandas DataFrame 后继续上传该数据集。此过程涉及为被上传的数据集指定输入和输出键。
Source code in ragas/src/ragas/integrations/langsmith.py
评估
evaluate(dataset_name: str, llm_or_chain_factory: Any, experiment_name: Optional[str] = None, metrics: Optional[list] = None, verbose: bool = False) -> Dict[str, Any]
在指定的数据集上使用 LangSmith 评估语言模型或链工厂,并可选择自定义指标和详细程度。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
dataset_name
|
str
|
用于评估的数据集名称。此数据集必须存在于 LangSmith。 |
required |
llm_or_chain_factory
|
Any
|
要评估的语言模型或链工厂。该参数灵活,可根据实现接受多种对象。 |
required |
experiment_name
|
Optional[str]
|
实验的名称。可用于在 LangSmith 中对评估运行进行分类或标识。默认值为 None。 |
None
|
metrics
|
Optional[list]
|
自定义指标(函数或评估器)的列表,用于评估。如果为 None,则使用一组默认指标(答案相关性、上下文精确率、上下文召回率和忠实度)。默认值为 None。 |
None
|
verbose
|
bool
|
如果为 True,在评估过程中会打印详细的进度和结果。 默认是 False。 |
False
|
返回:
| 类型 | 描述 |
|---|---|
Dict[str, Any]
|
A dictionary containing the results of the evaluation. |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
如果指定的数据集在 LangSmith 中不存在。 |
See Also
Client.read_dataset : 用于读取现有数据集的方法。 Client.run_on_dataset : 用于在指定数据集上运行评估的方法。
示例:
>>> results = evaluate(
... dataset_name="MyDataset",
... llm_or_chain_factory=my_llm,
... experiment_name="experiment_1_with_vanila_rag",
... verbose=True
... )
>>> print(results)
{'evaluation_result': ...}
Notes
该函数初始化一个客户端以与 LangSmith 交互,验证指定数据集是否存在,准备评估指标并运行评估,最后返回结果。可以指定自定义评估指标;如果未提供,则使用默认的指标集。
Source code in ragas/src/ragas/integrations/langsmith.py
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | |
ragas.integrations.llama_index
convert_to_ragas_messages
convert_to_ragas_messages(events: List[Event]) -> List[Message]
将一系列 LlamIndex 智能体事件 转换为 Ragas 消息对象。
此函数处理一组 Event 对象(例如,AgentInput、AgentOutput、
和 ToolCallResult),并将它们转换为一组 Message 对象(HumanMessage、
AIMessage 和 ToolMessage),可用于与 Ragas 框架的评估。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
events
|
List[Event]
|
表示对话轨迹的智能体事件列表。这些可以包括用户输入 ( |
required |
返回:
| 类型 | 描述 |
|---|---|
List[Message]
|
Ragas |
Source code in ragas/src/ragas/integrations/llama_index.py
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | |
ragas.integrations.opik
OpikTracer
基类: OpikTracer
用于 Opik 的回调,可用于将跟踪和评估分数记录到 Opik 平台。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
tags |
list[string]
|
为每个跟踪设置的标签。 |
metadata |
dict
|
为每个跟踪要记录的附加元数据。 |
ragas.integrations.helicone
ragas.integrations.langgraph
convert_to_ragas_messages
convert_to_ragas_messages(messages: List[Union[HumanMessage, SystemMessage, AIMessage, ToolMessage]], metadata: bool = False) -> List[Union[HumanMessage, AIMessage, ToolMessage]]
将 LangChain 消息转换为 Ragas 消息,并包含用于智能体评估的元数据。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
messages
|
List[Union[HumanMessage, SystemMessage, AIMessage, ToolMessage]]
|
|
required |
metadata
|
(bool, optional(default=False))
|
是否在转换后的消息中包含元数据。 |
False
|
返回:
| 类型 | 描述 |
|---|---|
List[Union[HumanMessage, AIMessage, ToolMessage]]
|
带有元数据的相应 Ragas 消息对象列表。 |
引发:
| 类型 | 描述 |
|---|---|
ValueError
|
当遇到不受支持的消息类型时。 |
TypeError
|
如果消息内容不是字符串。 |
Notes
SystemMessages 在转换过程中被跳过。
Source code in ragas/src/ragas/integrations/langgraph.py
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | |