自定义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
相关产品推荐
相关产品推荐

