索引
评估模块。
答案相关性评估器 #
基类:EventBaseEvaluator
答案相关性评估器。
评估响应与查询的相关性。 该评估器会考虑查询字符串和响应字符串。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
raise_error
|
Optional[bool]
|
如果响应无效,是否引发错误。 默认为 False。 |
False
|
eval_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于评估的模板。 |
None
|
refine_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于优化的模板。 |
required |
workflows/handler.py 中的源代码llama_index/core/evaluation/answer_relevancy.py
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 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 | |
评估
async
#
aevaluate(query: str | None = None, response: str | None = None, contexts: Sequence[str] | None = None, sleep_time_in_seconds: int = 0, **kwargs: Any) -> EvaluationResult
评估回复是否与查询相关。
workflows/handler.py 中的源代码llama_index/core/evaluation/answer_relevancy.py
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 | |
基础评估器 #
基类:EventPromptMixin
基础评估器类。
workflows/handler.py 中的源代码llama_index/core/evaluation/base.py
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 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 | |
评估 #
evaluate(query: Optional[str] = None, response: Optional[str] = None, contexts: Optional[Sequence[str]] = None, **kwargs: Any) -> EvaluationResult
使用查询字符串、检索到的上下文和生成的响应字符串运行评估。
子类可以重写此方法以提供自定义评估逻辑并接受额外参数。
workflows/handler.py 中的源代码llama_index/core/evaluation/base.py
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
评估
abstractmethod
async
#
aevaluate(query: Optional[str] = None, response: Optional[str] = None, contexts: Optional[Sequence[str]] = None, **kwargs: Any) -> EvaluationResult
使用查询字符串、检索到的上下文和生成的响应字符串运行评估。
子类可以重写此方法以提供自定义评估逻辑,并接受额外参数。
workflows/handler.py 中的源代码llama_index/core/evaluation/base.py
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
evaluate_response #
evaluate_response(query: Optional[str] = None, response: Optional[响应] = None, **kwargs: Any) -> EvaluationResult
使用查询字符串和生成的响应对象运行评估。
子类可以重写此方法以提供自定义评估逻辑并接收额外参数。
workflows/handler.py 中的源代码llama_index/core/evaluation/base.py
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | |
aevaluate_response
async
#
aevaluate_response(query: Optional[str] = None, response: Optional[响应] = None, **kwargs: Any) -> EvaluationResult
使用查询字符串和生成的响应对象运行评估。
子类可以重写此方法以提供自定义评估逻辑并接收额外参数。
workflows/handler.py 中的源代码llama_index/core/evaluation/base.py
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | |
评估结果 #
基类:EventBaseModel
评估结果。
BaseEvaluator 的输出。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
query
|
str | None
|
查询字符串 |
None
|
contexts
|
Sequence[str] | None
|
上下文字符串 |
None
|
response
|
str | None
|
响应字符串 |
None
|
passing
|
bool | None
|
二元评估结果(通过与否) |
None
|
feedback
|
str | None
|
对响应的反馈或推理 |
None
|
score
|
float | None
|
响应评分 |
None
|
pairwise_source
|
str | None
|
仅用于成对比较,并指定其是否来自呈现答案的原始顺序或翻转顺序 |
None
|
invalid_result
|
bool
|
评估结果是否为无效结果。 |
False
|
invalid_reason
|
str | None
|
无效评估的原因。 |
None
|
workflows/handler.py 中的源代码llama_index/core/evaluation/base.py
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 | |
批量评估运行器 #
批量评估运行器。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
evaluators
|
Dict[str, BaseEvaluator]
|
评估器字典。 |
required |
workers
|
int
|
用于并行化的工作线程数量。 默认为2。 |
2
|
show_progress
|
bool
|
是否显示进度条。默认为 False。 |
False
|
workflows/handler.py 中的源代码llama_index/core/evaluation/batch_runner.py
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 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 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 | |
aevaluate_response_strs
async
#
aevaluate_response_strs(queries: Optional[List[str]] = None, response_strs: Optional[List[str]] = None, contexts_list: Optional[List[List[str]]] = None, **eval_kwargs_lists: Dict[str, Any]) -> Dict[str, List[EvaluationResult]]
评估查询与响应对。
此功能将查询、响应和上下文作为字符串输入进行评估。 可以在eval_kwargs_lists中为评估器提供额外的关键字参数。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
queries
|
Optional[List[str]]
|
查询字符串列表。默认为 None。 |
None
|
response_strs
|
Optional[List[str]]
|
响应字符串列表。 默认为空。 |
None
|
contexts_list
|
Optional[List[List[str]]]
|
上下文列表清单。 默认为空。 |
None
|
**eval_kwargs_lists
|
Dict[str, Any]
|
传递给评估器的参数字典,可以是字典或列表的字典。默认为 None。 多个评估器:{评估器: {参数: [值列表]},...} 单个评估器:{参数: [值列表]} |
{}
|
workflows/handler.py 中的源代码llama_index/core/evaluation/batch_runner.py
195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 | |
aevaluate_responses
async
#
aevaluate_responses(queries: Optional[List[str]] = None, responses: Optional[List[响应]] = None, **eval_kwargs_lists: Dict[str, Any]) -> Dict[str, List[EvaluationResult]]
评估查询与响应对。
此功能用于评估查询和响应对象。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
queries
|
Optional[List[str]]
|
查询字符串列表。默认为 None。 |
None
|
responses
|
Optional[List[响应]]
|
响应对象列表。 默认为 None。 |
None
|
**eval_kwargs_lists
|
Dict[str, Any]
|
字典,包含要传递给评估器的关键字参数,可以是字典或列表。默认为 None。 多个评估器:{评估器: {关键字参数: [值列表]},...} 单个评估器:{关键字参数: [值列表]} |
{}
|
workflows/handler.py 中的源代码llama_index/core/evaluation/batch_runner.py
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 | |
aevaluate_queries
async
#
aevaluate_queries(query_engine: BaseQueryEngine, queries: Optional[List[str]] = None, **eval_kwargs_lists: Dict[str, Any]) -> Dict[str, List[EvaluationResult]]
评估查询。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
query_engine
|
BaseQueryEngine
|
查询引擎。 |
required |
queries
|
Optional[List[str]]
|
查询字符串列表。默认为 None。 |
None
|
**eval_kwargs_lists
|
Dict[str, Any]
|
传递给评估器的参数字典列表。默认为 None。 |
{}
|
workflows/handler.py 中的源代码llama_index/core/evaluation/batch_runner.py
319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 | |
evaluate_response_strs #
evaluate_response_strs(queries: Optional[List[str]] = None, response_strs: Optional[List[str]] = None, contexts_list: Optional[List[List[str]]] = None, **eval_kwargs_lists: Dict[str, Any]) -> Dict[str, List[EvaluationResult]]
评估查询与响应对。
aevaluate_response_strs 的同步版本。
workflows/handler.py 中的源代码llama_index/core/evaluation/batch_runner.py
350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 | |
evaluate_responses #
evaluate_responses(queries: Optional[List[str]] = None, responses: Optional[List[响应]] = None, **eval_kwargs_lists: Dict[str, Any]) -> Dict[str, List[EvaluationResult]]
评估查询和响应对象。
aevaluate_responses 的同步版本。
workflows/handler.py 中的源代码llama_index/core/evaluation/batch_runner.py
372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 | |
evaluate_queries #
evaluate_queries(query_engine: BaseQueryEngine, queries: Optional[List[str]] = None, **eval_kwargs_lists: Dict[str, Any]) -> Dict[str, List[EvaluationResult]]
评估查询。
aevaluate_queries 的同步版本。
workflows/handler.py 中的源代码llama_index/core/evaluation/batch_runner.py
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 | |
upload_eval_results #
upload_eval_results(project_name: str, app_name: str, results: Dict[str, List[EvaluationResult]]) -> None
将评估结果上传至LlamaCloud。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
project_name
|
str
|
项目名称。 |
required |
app_name
|
str
|
应用程序的名称。 |
required |
results
|
Dict[str, List[EvaluationResult]]
|
评估结果,一个从指标名称到 EvaluationResult 对象列表的映射。 |
required |
示例:
results = batch_runner.evaluate_responses(...)
batch_runner.upload_eval_results(
project_name="my_project",
app_name="my_app",
results=results
)
workflows/handler.py 中的源代码llama_index/core/evaluation/batch_runner.py
412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 | |
上下文相关性评估器 #
基类:EventBaseEvaluator
上下文相关性评估器。
评估检索到的上下文与查询的相关性。 该评估器会考虑查询字符串和检索到的上下文。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
raise_error
|
Optional[bool]
|
如果响应无效,是否引发错误。 默认为 False。 |
False
|
eval_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于评估的模板。 |
None
|
refine_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于优化的模板。 |
None
|
workflows/handler.py 中的源代码llama_index/core/evaluation/context_relevancy.py
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 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 | |
评估
async
#
aevaluate(query: str | None = None, response: str | None = None, contexts: Sequence[str] | None = None, sleep_time_in_seconds: int = 0, **kwargs: Any) -> EvaluationResult
评估上下文是否与查询相关。
workflows/handler.py 中的源代码llama_index/core/evaluation/context_relevancy.py
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 | |
正确性评估器 #
基类:EventBaseEvaluator
正确性评估器。
评估问答系统的正确性。
此评估器除了需要提供查询字符串和响应字符串外,还依赖于reference答案。
它输出一个介于1到5之间的分数,其中1表示最差,5表示最佳, 同时附上评分理由。 通过的定义是分数大于或等于给定阈值。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
eval_template
|
Optional[Union[BasePromptTemplate, str]]
|
评估提示模板。 |
None
|
score_threshold
|
float
|
通过评估的数值阈值,默认为4.0。 |
4.0
|
workflows/handler.py 中的源代码llama_index/core/evaluation/correctness.py
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 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 | |
数据集生成器 #
基类:EventPromptMixin
基于给定文档生成数据集(问题/问答对)。
注意:这是一个测试版功能,可能会有变动!
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
nodes
|
List[Node]
|
节点列表。(可选) |
required |
llm
|
大语言模型
|
语言模型。 |
None
|
callback_manager
|
CallbackManager
|
回调管理器。 |
None
|
num_questions_per_chunk
|
int
|
每个文本块生成的问题数量。每个文档被分割为512个单词大小的块。 |
10
|
text_question_template
|
BasePromptTemplate | None
|
问题生成模板。 |
None
|
question_gen_query
|
str | None
|
问题生成查询。 |
None
|
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
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 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 | |
from_documents
classmethod
#
from_documents(documents: List[文档], llm: Optional[大语言模型] = None, transformations: Optional[List[TransformComponent]] = None, callback_manager: Optional[CallbackManager] = None, num_questions_per_chunk: int = 10, text_question_template: BasePromptTemplate | None = None, text_qa_template: BasePromptTemplate | None = None, question_gen_query: str | None = None, required_keywords: List[str] | None = None, exclude_keywords: List[str] | None = None, show_progress: bool = False) -> DatasetGenerator
从文档生成数据集。
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
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 205 206 207 208 209 210 | |
agenerate_questions_from_nodes
async
#
agenerate_questions_from_nodes(num: int | None = None) -> List[str]
为每个文档生成问题。
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
299 300 301 302 303 304 | |
agenerate_dataset_from_nodes
async
#
agenerate_dataset_from_nodes(num: int | None = None) -> QueryResponseDataset
为每个文档生成问题。
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
306 307 308 309 310 311 312 | |
generate_questions_from_nodes #
generate_questions_from_nodes(num: int | None = None) -> List[str]
为每个文档生成问题。
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
314 315 316 | |
generate_dataset_from_nodes #
generate_dataset_from_nodes(num: int | None = None) -> QueryResponseDataset
为每个文档生成问题。
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
318 319 320 321 322 | |
查询响应数据集 #
基类:EventBaseModel
查询响应数据集。
如果数据集是从文档生成的,响应可能为空。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
queries
|
Dict[str, str]
|
查询标识符 -> 查询。 |
required |
responses
|
Dict[str, str]
|
查询标识符 -> 响应。 |
required |
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
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 | |
from_qr_pairs
classmethod
#
from_qr_pairs(qr_pairs: List[Tuple[str, str]]) -> QueryResponseDataset
从查询-响应对创建。
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
71 72 73 74 75 76 77 78 79 80 | |
save_json #
save_json(path: str) -> None
保存 json。
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
100 101 102 103 | |
from_json
classmethod
#
from_json(path: str) -> QueryResponseDataset
加载 JSON。
workflows/handler.py 中的源代码llama_index/core/evaluation/dataset_generation.py
105 106 107 108 109 110 | |
忠实度评估器 #
基类:EventBaseEvaluator
忠实度评估器。
评估一个回答是否忠实于上下文 (即该回答是否得到上下文支持或属于幻觉内容。)
此评估器仅考虑响应字符串和上下文字符串列表。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
raise_error
|
bool
|
当响应无效时是否引发错误。 默认为 False。 |
False
|
eval_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于评估的模板。 |
None
|
refine_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于优化评估的模板。 |
None
|
workflows/handler.py 中的源代码llama_index/core/evaluation/faithfulness.py
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 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 | |
评估
async
#
aevaluate(query: str | None = None, response: str | None = None, contexts: Sequence[str] | None = None, sleep_time_in_seconds: int = 0, **kwargs: Any) -> EvaluationResult
评估回答是否忠实于上下文。
workflows/handler.py 中的源代码llama_index/core/evaluation/faithfulness.py
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 | |
指南评估器 #
基类:EventBaseEvaluator
指南评估器。
评估查询与响应对是否符合给定的指导原则。
此评估器仅考虑查询字符串和响应字符串。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
guidelines
|
Optional[str]
|
用户添加的用于评估的指导准则。 默认为 None,表示使用默认指导准则。 |
None
|
eval_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于评估的模板。 |
None
|
workflows/handler.py 中的源代码llama_index/core/evaluation/guideline.py
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 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | |
评估
async
#
aevaluate(query: Optional[str] = None, response: Optional[str] = None, contexts: Optional[Sequence[str]] = None, sleep_time_in_seconds: int = 0, **kwargs: Any) -> EvaluationResult
评估查询与响应对是否符合指导原则。
workflows/handler.py 中的源代码llama_index/core/evaluation/guideline.py
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 | |
成对比较评估器 #
基类:EventBaseEvaluator
成对比较评估器。
通过让大型语言模型评判哪个回答更好,来评估给定问题下某个回答与“参考”回答的质量对比。
判断给定的 response 是否优于 reference 响应。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
eval_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于评估的模板。 |
None
|
enforce_consensus
|
bool
|
是否强制执行共识(如果我们调换答案顺序时的一致性)。默认为 True。 |
True
|
workflows/handler.py 中的源代码llama_index/core/evaluation/pairwise.py
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 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 | |
相关性评估器 #
基类:EventBaseEvaluator
相关性评估器。
评估检索到的上下文与查询的相关性以及响应的相关性。 该评估器会考虑查询字符串、检索到的上下文和响应字符串。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
raise_error
|
Optional[bool]
|
如果响应无效,是否引发错误。 默认为 False。 |
False
|
eval_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于评估的模板。 |
None
|
refine_template
|
Optional[Union[str, BasePromptTemplate]]
|
用于优化的模板。 |
None
|
workflows/handler.py 中的源代码llama_index/core/evaluation/relevancy.py
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 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 | |
评估
async
#
aevaluate(query: str | None = None, response: str | None = None, contexts: Sequence[str] | None = None, sleep_time_in_seconds: int = 0, **kwargs: Any) -> EvaluationResult
评估上下文和回答是否与查询相关。
workflows/handler.py 中的源代码llama_index/core/evaluation/relevancy.py
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 | |
基础检索评估器 #
基类:EventBaseModel
基础检索评估器类。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
metrics
|
List[BaseRetrievalMetric]
|
待评估指标列表 |
required |
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/base.py
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 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 193 194 195 196 197 198 199 200 | |
from_metric_names
classmethod
#
from_metric_names(metric_names: List[str], **kwargs: Any) -> BaseRetrievalEvaluator
根据指标名称创建评估器。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
metric_names
|
List[str]
|
指标名称列表 |
required |
**kwargs
|
Any
|
评估器的附加参数 |
{}
|
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/base.py
85 86 87 88 89 90 91 92 93 94 95 96 97 98 | |
评估 #
evaluate(query: str, expected_ids: List[str], expected_texts: Optional[List[str]] = None, mode: RetrievalEvalMode = TEXT, **kwargs: Any) -> RetrievalEvalResult
使用查询字符串和预期ID运行评估结果。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
query
|
str
|
查询字符串 |
required |
expected_ids
|
List[str]
|
预期标识符 |
required |
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
RetrievalEvalResult |
RetrievalEvalResult
|
评估结果 |
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/base.py
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 | |
评估
async
#
aevaluate(query: str, expected_ids: List[str], expected_texts: Optional[List[str]] = None, mode: RetrievalEvalMode = TEXT, **kwargs: Any) -> RetrievalEvalResult
使用查询字符串、检索到的上下文和生成的响应字符串运行评估。
子类可以重写此方法以提供自定义评估逻辑并接收额外参数。
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/base.py
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 | |
aevaluate_dataset
async
#
aevaluate_dataset(dataset: EmbeddingQAFinetuneDataset, workers: int = 2, show_progress: bool = False, **kwargs: Any) -> List[RetrievalEvalResult]
使用数据集运行评估。
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/base.py
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 | |
检索评估结果 #
基类:EventBaseModel
检索评估结果。
注意:此抽象概念未来可能会发生变化。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
query
|
str
|
查询字符串 |
required |
expected_ids
|
List[str]
|
预期标识符 |
required |
expected_texts
|
List[str] | None
|
与 |
None
|
retrieved_ids
|
List[str]
|
检索到的标识符 |
required |
retrieved_texts
|
List[str]
|
检索到的文本 |
required |
mode
|
RetrievalEvalMode
|
文本或图像 |
<RetrievalEvalMode.TEXT: 'text'>
|
metric_dict
|
Dict[str, RetrievalMetricResult]
|
用于评估的指标字典 |
required |
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
query |
str
|
查询字符串 |
expected_ids |
List[str]
|
预期标识符 |
retrieved_ids |
List[str]
|
检索到的标识符 |
metric_dict |
Dict[str, BaseRetrievalMetric]
|
用于评估的指标字典 |
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/base.py
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 | |
多模态检索器评估器 #
基类:EventBaseRetrievalEvaluator
检索器评估器。
本模块将使用一组指标来评估检索器。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
metrics
|
List[BaseRetrievalMetric]
|
待评估的指标序列 |
required |
retriever
|
BaseRetriever
|
待评估的检索器。 |
required |
node_postprocessors
|
Optional[List[BaseNodePostprocessor]]
|
检索后应用的后处理器。 |
None
|
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/evaluator.py
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 | |
检索器评估器 #
基类:EventBaseRetrievalEvaluator
检索器评估器。
本模块将使用一组指标来评估检索器。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
metrics
|
List[BaseRetrievalMetric]
|
待评估的指标序列 |
required |
retriever
|
BaseRetriever
|
待评估的检索器。 |
required |
node_postprocessors
|
Optional[List[BaseNodePostprocessor]]
|
检索后应用的后处理器。 |
None
|
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/evaluator.py
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 | |
月经常性收入 #
基类:EventBaseRetrievalMetric
MRR(平均倒数排名)指标提供两种计算选项。
- 默认方法计算第一个相关检索文档的倒数排名。
- 更细粒度的方法对所有相关检索文档的倒数排名求和,然后除以相关文档的数量。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
use_granular_mrr
|
bool
|
|
False
|
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
metric_name |
str
|
指标名称。 |
use_granular_mrr |
bool
|
确定是否使用细粒度方法进行计算。 |
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/metrics.py
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 | |
计算 #
compute(query: Optional[str] = None, expected_ids: Optional[List[str]] = None, retrieved_ids: Optional[List[str]] = None, expected_texts: Optional[List[str]] = None, retrieved_texts: Optional[List[str]] = None, **kwargs: Any) -> RetrievalMetricResult
根据提供的输入和所选方法计算平均倒数排名。
Parameters#
query (Optional[str]): The query string (not used in the current implementation).
expected_ids (Optional[List[str]]): Expected document IDs.
retrieved_ids (Optional[List[str]]): Retrieved document IDs.
expected_texts (Optional[List[str]]): Expected texts (not used in the current implementation).
retrieved_texts (Optional[List[str]]): Retrieved texts (not used in the current implementation).
引发#
ValueError: If the necessary IDs are not provided.
返回#
RetrievalMetricResult: The result with the computed MRR score.
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/metrics.py
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 | |
命中率 #
基类:EventBaseRetrievalMetric
命中率指标:提供两种计算选项来计算命中率。
- 默认方法检查检索到的文档与预期文档之间是否存在单一匹配。
- 更细粒度的方法检查检索到的文档与预期文档之间的所有潜在匹配。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
use_granular_hit_rate
|
bool
|
|
False
|
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
metric_name |
str
|
指标名称。 |
use_granular_hit_rate |
bool
|
确定是否使用细粒度方法进行计算。 |
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/metrics.py
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 | |
计算 #
compute(query: Optional[str] = None, expected_ids: Optional[List[str]] = None, retrieved_ids: Optional[List[str]] = None, expected_texts: Optional[List[str]] = None, retrieved_texts: Optional[List[str]] = None, **kwargs: Any) -> RetrievalMetricResult
根据提供的输入计算指标。
Parameters#
query (Optional[str]): The query string (not used in the current implementation).
expected_ids (Optional[List[str]]): Expected document IDs.
retrieved_ids (Optional[List[str]]): Retrieved document IDs.
expected_texts (Optional[List[str]]): Expected texts (not used in the current implementation).
retrieved_texts (Optional[List[str]]): Retrieved texts (not used in the current implementation).
引发#
ValueError: If the necessary IDs are not provided.
返回#
RetrievalMetricResult: The result with the computed hit rate score.
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/metrics.py
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 | |
检索指标结果 #
基类:EventBaseModel
指标结果。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
score
|
float
|
该指标的得分 |
required |
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
score |
float
|
该指标的得分 |
metadata |
Dict[str, Any]
|
指标结果的元数据 |
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/metrics_base.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
语义相似度评估器 #
基类:EventBaseEvaluator
嵌入相似度评估器。
通过比较生成答案与参考答案的嵌入向量之间的相似度,来评估问答系统的质量。
受此论文启发: - 用于评估问答模型的语义答案相似度 https://arxiv.org/pdf/2108.06130.pdf
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
similarity_threshold
|
float
|
用于“通过”的嵌入相似度阈值。 默认值为0.8。 |
0.8
|
workflows/handler.py 中的源代码llama_index/core/evaluation/semantic_similarity.py
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 | |
嵌入问答微调数据集 #
基类:EventBaseModel
嵌入问答微调数据集。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
queries
|
Dict[str, str]
|
字典ID -> 查询。 |
required |
corpus
|
Dict[str, str]
|
字典标识符 -> 字符串。 |
required |
relevant_docs
|
Dict[str, List[str]]
|
字典查询标识符 -> 文档标识符列表。 |
required |
mode
|
str
|
|
'text'
|
workflows/handler.py 中的源代码llama_index/core/llama_dataset/legacy/embedding.py
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 | |
save_json #
save_json(path: str) -> None
保存 json。
workflows/handler.py 中的源代码llama_index/core/llama_dataset/legacy/embedding.py
40 41 42 43 | |
from_json
classmethod
#
from_json(path: str) -> EmbeddingQAFinetuneDataset
加载 JSON。
workflows/handler.py 中的源代码llama_index/core/llama_dataset/legacy/embedding.py
45 46 47 48 49 50 | |
get_retrieval_results_df #
get_retrieval_results_df(names: List[str], results_arr: List[List[RetrievalEvalResult]], metric_keys: Optional[List[str]] = None) -> Any
显示检索结果。
workflows/handler.py 中的源代码llama_index/core/evaluation/notebook_utils.py
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 | |
resolve_metrics #
resolve_metrics(metrics: List[str]) -> List[Type[BaseRetrievalMetric]]
从指标名称列表中解析指标。
workflows/handler.py 中的源代码llama_index/core/evaluation/retrieval/metrics.py
507 508 509 510 511 512 513 | |
generate_qa_embedding_pairs #
generate_qa_embedding_pairs(nodes: List[TextNode], llm: Optional[大语言模型] = None, qa_generate_prompt_tmpl: str = DEFAULT_QA_GENERATE_PROMPT_TMPL, num_questions_per_chunk: int = 2) -> EmbeddingQAFinetuneDataset
根据一组节点生成示例。
workflows/handler.py 中的源代码llama_index/core/llama_dataset/legacy/embedding.py
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 111 112 113 114 115 116 | |
选项: 成员:- BaseEvaluator - EvaluationResult - BatchEvalRunner