摘要
基础提取器 #
基类:EventTransformComponent
元数据提取器。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
is_text_node_only
|
bool
|
|
True
|
show_progress
|
bool
|
是否显示进度。 |
True
|
metadata_mode
|
MetadataMode
|
读取节点时使用的元数据模式。 |
<MetadataMode.ALL: 'all'>
|
node_text_template
|
str
|
用于表示节点文本如何与元数据文本混合的模板。 |
'[Excerpt from document]\n{metadata_str}\nExcerpt:\n-----\n{content}\n-----\n'
|
disable_template_rewrite
|
bool
|
禁用节点模板重写。 |
False
|
in_place
|
bool
|
是否原地处理节点。 |
True
|
num_workers
|
int
|
用于并发异步处理的工作线程数量。 |
4
|
workflows/handler.py 中的源代码llama_index/core/extractors/interface.py
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 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 | |
class_name
classmethod
#
class_name() -> str
获取类名。
workflows/handler.py 中的源代码llama_index/core/extractors/interface.py
73 74 75 76 | |
提取
abstractmethod
async
#
aextract(nodes: Sequence[BaseNode]) -> List[Dict]
提取一系列节点的元数据,返回与每个节点对应的元数据字典列表。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
nodes
|
Sequence[文档]
|
用于提取元数据的节点 |
required |
workflows/handler.py 中的源代码llama_index/core/extractors/interface.py
78 79 80 81 82 83 84 85 86 87 | |
extract #
extract(nodes: Sequence[BaseNode]) -> List[Dict]
提取一系列节点的元数据,返回与每个节点对应的元数据字典列表。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
nodes
|
Sequence[文档]
|
用于提取元数据的节点 |
required |
workflows/handler.py 中的源代码llama_index/core/extractors/interface.py
89 90 91 92 93 94 95 96 97 98 | |
aprocess_nodes
async
#
aprocess_nodes(nodes: Sequence[BaseNode], excluded_embed_metadata_keys: Optional[List[str]] = None, excluded_llm_metadata_keys: Optional[List[str]] = None, **kwargs: Any) -> List[BaseNode]
对从文档解析出的节点进行后处理。
允许将提取器串联起来。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
nodes
|
List[BaseNode]
|
需要后处理的节点 |
required |
excluded_embed_metadata_keys
|
Optional[List[str]]
|
从嵌入元数据中排除的键 |
None
|
excluded_llm_metadata_keys
|
Optional[List[str]]
|
从LLM元数据中排除的键 |
None
|
workflows/handler.py 中的源代码llama_index/core/extractors/interface.py
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 | |
acall
async
#
对从文档解析出的节点进行后处理。
允许将提取器串联起来。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
nodes
|
List[BaseNode]
|
需要后处理的节点 |
required |
workflows/handler.py 中的源代码llama_index/core/extractors/interface.py
168 169 170 171 172 173 174 175 176 177 178 | |
关键词提取器 #
基类:EventBaseExtractor
关键词提取器。节点级提取器。提取
excerpt_keywords 元数据字段。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
llm
|
Optional[大语言模型]
|
大语言模型 |
required |
keywords
|
int
|
要提取的关键词数量 |
5
|
prompt_template
|
str
|
关键词提取模板 |
'{context_str}. Give {keywords} unique keywords for this document. Format as comma separated. Keywords: '
|
workflows/handler.py 中的源代码llama_index/core/extractors/metadata_extractors.py
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 | |
Pydantic程序提取器 #
Bases: BaseExtractor, Generic[Model]
Pydantic 程序提取器。
使用大型语言模型提取一个Pydantic对象。以字典形式返回该对象的属性。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
program
|
BasePydanticProgram[TypeVar]
|
用于提取的Pydantic程序。 |
required |
input_key
|
str
|
用作程序输入的关键字(程序模板字符串必须暴露此关键字)。 |
'input'
|
extract_template_str
|
str
|
用于提取的模板。 |
'Here is the content of the section:\n----------------\n{context_str}\n----------------\nGiven the contextual information, extract out a {class_name} object.'
|
workflows/handler.py 中的源代码llama_index/core/extractors/metadata_extractors.py
482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 | |
提取
async
#
aextract(nodes: Sequence[BaseNode]) -> List[Dict]
提取 pydantic 程序。
workflows/handler.py 中的源代码llama_index/core/extractors/metadata_extractors.py
525 526 527 528 529 530 531 532 533 534 535 | |
问题解答提取器 #
基类:EventBaseExtractor
问题解答提取器。节点级提取器。
提取 questions_this_excerpt_can_answer 元数据字段。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
llm
|
Optional[大语言模型]
|
大语言模型 |
required |
questions
|
int
|
要提取的问题数量 |
5
|
prompt_template
|
str
|
问题提取模板, |
'Here is the context:\n{context_str}\n\nGiven the contextual information, generate {num_questions} questions this context can provide specific answers to which are unlikely to be found elsewhere.\n\nHigher-level summaries of surrounding context may be provided as well. Try using these summaries to generate better questions that this context can answer.\n\n'
|
embedding_only
|
bool
|
是否仅使用嵌入 |
True
|
workflows/handler.py 中的源代码llama_index/core/extractors/metadata_extractors.py
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 | |
摘要提取器 #
基类:EventBaseExtractor
摘要提取器。具有相邻共享功能的节点级提取器。
提取 section_summary、prev_section_summary、next_section_summary
元数据字段。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
llm
|
Optional[大语言模型]
|
大语言模型 |
required |
summaries
|
List[str]
|
要提取的摘要列表:'self', 'prev', 'next' |
required |
prompt_template
|
str
|
摘要提取模板 |
'Here is the content of the section:\n{context_str}\n\nSummarize the key topics and entities of the section. \nSummary: '
|
workflows/handler.py 中的源代码llama_index/core/extractors/metadata_extractors.py
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 444 445 446 447 448 449 | |
标题提取器 #
基类:EventBaseExtractor
标题提取器。适用于长文档。提取 document_title 元数据字段。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
llm
|
Optional[大语言模型]
|
大语言模型 |
required |
nodes
|
int
|
从前端用于标题提取的节点数量 |
5
|
node_template
|
str
|
节点级标题线索提取模板 |
'Context: {context_str}. Give a title that summarizes all of the unique entities, titles or themes found in the context. Title: '
|
combine_template
|
str
|
将节点级线索组合成文档级标题的模板 |
'{context_str}. Based on the above candidate titles and content, what is the comprehensive title for this document? Title: '
|
is_text_node_only
|
bool
|
|
False
|
workflows/handler.py 中的源代码llama_index/core/extractors/metadata_extractors.py
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 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 | |
文档上下文提取器 #
基类:EventBaseExtractor
一个基于LLM的上下文提取器,通过文档分析提升RAG准确性。
!已包含 'key' 在 node.metadata 中的节点将不会被处理 - 将被跳过!
该提取器处理文档及其节点以生成上下文元数据, 实现了Anthropic"上下文检索"博客文章中描述的方法。 它处理速率限制、文档大小约束和节点的并行处理。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
num_workers
|
int
|
|
4
|
llm
|
大语言模型
|
|
required |
docstore
|
BaseDocumentStore
|
|
required |
key
|
str
|
|
required |
prompt
|
str
|
|
required |
doc_ids
|
Set[str]
|
|
required |
max_context_length
|
int
|
|
required |
max_output_tokens
|
int
|
|
required |
oversized_document_strategy
|
Literal['warn', 'error', 'ignore']
|
|
required |
DEFAULT_KEY
|
str
|
|
'context'
|
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
llm |
大语言模型
|
用于生成上下文的大语言模型实例 |
docstore |
BaseDocumentStore
|
父文档存储 |
key |
str
|
用于存储提取上下文的元数据键 |
prompt |
str
|
上下文生成的提示模板 |
doc_ids |
Set[str]
|
已处理的文档ID集合 |
max_context_length |
int
|
允许的最大文档上下文长度 |
max_output_tokens |
int
|
生成上下文中的最大令牌数 |
oversized_document_strategy |
OversizeStrategy
|
处理大型文档的策略 |
示例
extractor = DocumentContextExtractor(
docstore=my_docstore,
llm=my_llm,
max_context_length=64000,
max_output_tokens=256
)
metadata_list = await extractor.aextract(nodes)
workflows/handler.py 中的源代码llama_index/core/extractors/document_context.py
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 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 | |
提取
async
#
aextract(nodes: Sequence[BaseNode]) -> List[Dict]
异步提取多个节点的上下文,针对松散排序的节点进行了优化。 每个节点独立处理,不保证按文档顺序处理。 假设节点按文档顺序传入,节点将大致按文档顺序处理。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
nodes
|
Sequence[BaseNode]
|
要处理的节点列表,理想情况下按源文档分组 |
required |
返回:
| 类型 | 描述 |
|---|---|
List[Dict]
|
包含生成上下文的元数据字典列表 |
workflows/handler.py 中的源代码llama_index/core/extractors/document_context.py
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 | |
选项: 成员:- SummaryExtractor