前面我们再讲 Reader 的注册方式没有深入讲解,这里我们将更深入的讲解一下。
Reader 是通过 key - value 的方式进行注册,key 是用来说明 Reader 可以处理的数据格式,可以是直接指定对应的文件📄,也可以指定 Reader 要处理的数据模式,即可以使用通配符 * 来指定匹配规则,例如 “*.html” 表示可以处理任何以 “html” 为后缀的文件📄,“aaa/bbb/*.html” 表示要处理的是 “aaa/bbb” 目录下的任何以 “html” 为后缀的文件📄,“aaa/bbb/**/*.html” 表示要处理的是 “aaa/bbb” 目录下所有目录中任何以 “html” 为后缀的文件📄。value 就是对应的 Reader。
讲完了注册规则,我们再来讲一下注册方式。
LazyLLM 中 Reader 的注册机制分为两种不同的方式,一种是通过 Document 类进行注册,注册完之后,使用 Document 类实例化的对象都可以使用该 Reader;另一种是通过 Document 类的实例化对象进行注册 (这是前面讲的注册方式),注册完之后,只有该对象可以使用该 Reader,其他的 Document 类的实例化对象因为对该 Reader 不可见,则不能使用该 Reader。所以对于 LazyLLM 中的 Reader 的优先级从高到低为 “通过对象注册的 Reader”>“通过类注册的 Reader”>“LazyLLM 默认提供的 Reader”,如果匹配规则是一样的话,就会按照优先级顺序,优先级高的 Reader 会覆盖掉优先级低的 Reader。