You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义MetadataFeatureExtractor报错:无法实例化含抽象方法class_name的抽象类

解决LlamaIndex自定义元数据提取器的抽象类实例化错误

你遇到的错误是因为MetadataFeatureExtractor作为抽象基类,强制要求子类必须实现class_name类属性,这是LlamaIndex框架内部用来标识和序列化提取器的必要字段,你的代码中缺少这个属性,所以无法实例化。

修改后的代码如下:

from llama_index.node_parser import SimpleNodeParser
from llama_index.node_parser.extractors import (
    MetadataExtractor,
    MetadataFeatureExtractor,
)

class CustomExtractor(MetadataFeatureExtractor):
    # 添加框架要求的class_name类属性
    class_name = "CustomExtractor"
    
    def extract(self, nodes):
        metadata_list = [
            {
                "custom": node.metadata["document_title"]
                + "\n"
                + node.metadata["excerpt_keywords"]
            }
            for node in nodes
        ]
        return metadata_list


metadata_extractor = MetadataExtractor(
    extractors=[
        CustomExtractor()
    ],
)

只需在自定义提取器类中添加class_name字符串属性即可解决问题,属性值可以根据你的需求自定义,只要保证是字符串类型就行。

内容的提问来源于stack exchange,提问作者John Markson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 18:21:06