集成
ragas.integrations.langchain
EvaluatorChain
EvaluatorChain(metric: Metric, **kwargs: Any)
Bases: Chain, RunEvaluator
对 ragas Metrics 的封装,以便与 langsmith 一起使用。
源代码位于 src/ragas/integrations/langchain.py
evaluate_run
评估一个 langsmith 运行
源代码位于 src/ragas/integrations/langchain.py
ragas.integrations.langsmith
upload_dataset
upload_dataset(dataset: Testset, dataset_name: str, dataset_desc: str = '') -> Dataset
将一个新的数据集上传到 LangSmith,上传前将其从 TestDataset 对象转换为 pandas DataFrame。如果指定名称的数据集已存在,则该函数会引发错误。
参数
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
dataset
|
TestDataset
|
待上传的数据集。 |
必需 |
dataset_name
|
str
|
在 LangSmith 中新数据集的名称。 |
必需 |
dataset_desc
|
str
|
新数据集的描述。默认为空字符串。 |
''
|
返回
| 类型 | 描述 |
|---|---|
数据集
|
上传后存储在 LangSmith 中的数据集对象。 |
抛出
| 类型 | 描述 |
|---|---|
ValueError
|
如果 LangSmith 中已存在指定名称的数据集。 |
备注
该函数会尝试按给定名称读取数据集以检查其是否存在。如果未找到,它会在将数据集转换为 pandas DataFrame 后继续上传。这涉及为正在上传的数据集指定输入和输出键。
源代码位于 src/ragas/integrations/langsmith.py
evaluate
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 中。 |
必需 |
llm_or_chain_factory
|
Any
|
待评估的语言模型或链工厂。该参数非常灵活,可以接受各种对象,具体取决于实现。 |
必需 |
experiment_name
|
Optional[str]
|
实验的名称。可用于在 LangSmith 中对评估运行进行分类或识别。默认为 None。 |
None
|
metrics
|
Optional[list]
|
用于评估的自定义指标(函数或评估器)列表。如果为 None,则使用一组默认指标(答案相关性、上下文精确率、上下文召回率和忠实度)。默认为 None。 |
None
|
verbose
|
bool
|
如果为 True,则在评估过程中会打印详细的进度和结果。默认为 False。 |
False
|
返回
| 类型 | 描述 |
|---|---|
Dict[str, Any]
|
包含评估结果的字典。 |
抛出
| 类型 | 描述 |
|---|---|
ValueError
|
如果指定的数据集在 LangSmith 中不存在。 |
另请参阅
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': ...}
备注
该函数初始化一个用于与 LangSmith 交互的客户端,验证指定数据集的存在性,准备评估指标,并运行评估,最终返回结果。可以指定自定义评估指标,如果未提供,则将使用一组默认指标。
源代码位于 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]
|
一个代表对话轨迹的代理事件列表。这些事件可以包括用户输入( |
必需 |
返回
| 类型 | 描述 |
|---|---|
List[Message]
|
与结构化对话相对应的 Ragas |
源代码位于 src/ragas/integrations/llama_index.py
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 193 194 195 196 197 198 199 200 201 202 203 204 | |
ragas.integrations.opik
OpikTracer
Bases: 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]]
|
待转换的 LangChain 消息对象列表。 |
必需 |
metadata
|
(bool, optional(default=False))
|
是否在转换后的消息中包含元数据。 |
False
|
返回
| 类型 | 描述 |
|---|---|
List[Union[HumanMessage, AIMessage, ToolMessage]]
|
带有元数据的相应 Ragas 消息对象列表。 |
抛出
| 类型 | 描述 |
|---|---|
ValueError
|
如果遇到不支持的消息类型。 |
TypeError
|
如果消息内容不是字符串。 |
备注
在转换过程中会跳过 SystemMessages。
源代码位于 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 | |