Documentation
¶
Overview ¶
Package decomposer implements query decomposition strategies.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CompositeDecomposer ¶
type CompositeDecomposer struct {
// contains filtered or unexported fields
}
@sk-task sub-query-decomposition#T3.1: CompositeDecomposer (AC-005) CompositeDecomposer объединяет несколько QueryDecomposer'ов в цепочку fallback.
Порядок:
- Primary decomposer (LLM).
- Если primary вернул ошибку или nil/пустой — Secondary decomposer (Rule).
- Если secondary вернул ошибку или nil/пустой — возвращается nil (single-query fallback).
func NewCompositeDecomposer ¶
func NewCompositeDecomposer(primary, secondary domain.QueryDecomposer) (*CompositeDecomposer, error)
NewCompositeDecomposer создаёт CompositeDecomposer с primary (LLM) и secondary (Rule) decomposer'ами. Оба decomposer'а должны быть не nil.
type LLMQueryDecomposer ¶
type LLMQueryDecomposer struct {
// contains filtered or unexported fields
}
@sk-task sub-query-decomposition#T2.1: LLMQueryDecomposer (AC-002) LLMQueryDecomposer разбивает запрос на под-вопросы через LLM.
func NewLLMQueryDecomposer ¶
func NewLLMQueryDecomposer(llm domain.LLMProvider, promptTemplate string) (*LLMQueryDecomposer, error)
NewLLMQueryDecomposer создаёт LLMQueryDecomposer. llm — обязательный LLMProvider. promptTemplate — опциональный system prompt (пустая строка = дефолтный).
type RuleQueryDecomposer ¶
type RuleQueryDecomposer struct{}
@sk-task sub-query-decomposition#T3.1: RuleQueryDecomposer (AC-003) RuleQueryDecomposer разбивает запрос на под-вопросы по союзам/разделителям.
Правила: - Разбивка по " и ", " или ", ", " (регистронезависимо). - Каждая часть возвращается как отдельный под-вопрос. - Если разделители не найдены — возвращается nil (single-query fallback). - Пустые части отбрасываются.
func NewRuleQueryDecomposer ¶
func NewRuleQueryDecomposer() *RuleQueryDecomposer
NewRuleQueryDecomposer создаёт RuleQueryDecomposer.