Documentation
¶
Overview ¶
Package extractor 提供 RAG 系统的文档元数据提取器
MetadataExtractor 从文档中自动提取结构化元数据,如:
- 标题、摘要
- 关键词、主题
- 日期、作者
- 实体信息
参考 LlamaIndex 的 MetadataExtractor 设计
Index ¶
- type CompositeExtractor
- type EntityExtractor
- type EntityExtractorOption
- type KeywordExtractor
- type KeywordExtractorOption
- type MetadataExtractor
- type QuestionsExtractor
- type QuestionsExtractorOption
- type SimpleExtractor
- type SummaryExtractor
- type SummaryExtractorOption
- type TitleExtractor
- type TitleExtractorOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CompositeExtractor ¶
type CompositeExtractor struct {
// contains filtered or unexported fields
}
CompositeExtractor 复合提取器 组合多个提取器
func NewCompositeExtractor ¶
func NewCompositeExtractor(extractors ...MetadataExtractor) *CompositeExtractor
NewCompositeExtractor 创建复合提取器
func (*CompositeExtractor) AddExtractor ¶
func (e *CompositeExtractor) AddExtractor(extractor MetadataExtractor)
AddExtractor 添加提取器
type EntityExtractor ¶
type EntityExtractor struct {
// contains filtered or unexported fields
}
EntityExtractor 实体提取器
func NewEntityExtractor ¶
func NewEntityExtractor(llmComplete func(ctx context.Context, prompt string) (string, error), opts ...EntityExtractorOption) *EntityExtractor
NewEntityExtractor 创建实体提取器
type EntityExtractorOption ¶
type EntityExtractorOption func(*EntityExtractor)
EntityExtractorOption 配置选项
func WithEntityTypes ¶
func WithEntityTypes(types ...string) EntityExtractorOption
WithEntityTypes 设置要提取的实体类型
type KeywordExtractor ¶
type KeywordExtractor struct {
// contains filtered or unexported fields
}
KeywordExtractor 关键词提取器
func NewKeywordExtractor ¶
func NewKeywordExtractor(opts ...KeywordExtractorOption) *KeywordExtractor
NewKeywordExtractor 创建关键词提取器
type KeywordExtractorOption ¶
type KeywordExtractorOption func(*KeywordExtractor)
KeywordExtractorOption 配置选项
func WithKeywordLLM ¶
func WithKeywordLLM(fn func(ctx context.Context, prompt string) (string, error)) KeywordExtractorOption
WithKeywordLLM 设置 LLM
func WithSimpleExtraction ¶
func WithSimpleExtraction(enabled bool) KeywordExtractorOption
WithSimpleExtraction 使用简单提取(基于词频)
type MetadataExtractor ¶
type MetadataExtractor interface {
// Extract 从文档中提取元数据
Extract(ctx context.Context, doc rag.Document) (map[string]any, error)
// Name 返回提取器名称
Name() string
}
MetadataExtractor 元数据提取器接口
type QuestionsExtractor ¶
type QuestionsExtractor struct {
// contains filtered or unexported fields
}
QuestionsExtractor 问题生成器 生成可以由文档回答的问题,用于提高检索质量
func NewQuestionsExtractor ¶
func NewQuestionsExtractor(llmComplete func(ctx context.Context, prompt string) (string, error), opts ...QuestionsExtractorOption) *QuestionsExtractor
NewQuestionsExtractor 创建问题生成器
type QuestionsExtractorOption ¶
type QuestionsExtractorOption func(*QuestionsExtractor)
QuestionsExtractorOption 配置选项
func WithNumQuestions ¶
func WithNumQuestions(n int) QuestionsExtractorOption
WithNumQuestions 设置问题数量
type SimpleExtractor ¶
type SimpleExtractor struct{}
SimpleExtractor 简单元数据提取器 不依赖 LLM,从文档中提取基本信息
type SummaryExtractor ¶
type SummaryExtractor struct {
// contains filtered or unexported fields
}
SummaryExtractor 摘要提取器 使用 LLM 生成文档摘要
func NewSummaryExtractor ¶
func NewSummaryExtractor(llmComplete func(ctx context.Context, prompt string) (string, error), opts ...SummaryExtractorOption) *SummaryExtractor
NewSummaryExtractor 创建摘要提取器
参数:
- llmComplete: LLM 完成函数
- opts: 配置选项
type SummaryExtractorOption ¶
type SummaryExtractorOption func(*SummaryExtractor)
SummaryExtractorOption 配置选项
func WithSummaryMaxLen ¶
func WithSummaryMaxLen(length int) SummaryExtractorOption
WithSummaryMaxLen 设置最大摘要长度
func WithSummaryPrompt ¶
func WithSummaryPrompt(prompt string) SummaryExtractorOption
WithSummaryPrompt 设置自定义提示词
type TitleExtractor ¶
type TitleExtractor struct {
// contains filtered or unexported fields
}
TitleExtractor 标题提取器 从文档内容中提取或生成标题
func NewTitleExtractor ¶
func NewTitleExtractor(opts ...TitleExtractorOption) *TitleExtractor
NewTitleExtractor 创建标题提取器
type TitleExtractorOption ¶
type TitleExtractorOption func(*TitleExtractor)
TitleExtractorOption 配置选项
func WithMaxTitleLen ¶
func WithMaxTitleLen(length int) TitleExtractorOption
WithMaxTitleLen 设置最大标题长度
func WithTitleFromFirstLine ¶
func WithTitleFromFirstLine(enabled bool) TitleExtractorOption
WithTitleFromFirstLine 设置从首行提取标题
func WithTitleLLM ¶
WithTitleLLM 设置 LLM 用于生成标题