haixunMaster/haixun-backend/internal/library/knowledge/expand_strategy.go

36 lines
867 B
Go
Raw Normal View History

2026-06-24 16:48:56 +00:00
package knowledge
import "strings"
type ExpandStrategy string
const (
ExpandStrategyBrave ExpandStrategy = "brave"
ExpandStrategyLLM ExpandStrategy = "llm"
ExpandStrategyHybrid ExpandStrategy = "hybrid"
)
func ParseExpandStrategy(raw string) ExpandStrategy {
switch strings.ToLower(strings.TrimSpace(raw)) {
case string(ExpandStrategyLLM):
return ExpandStrategyLLM
case string(ExpandStrategyHybrid):
return ExpandStrategyHybrid
default:
return ExpandStrategyBrave
}
}
func (s ExpandStrategy) RequiresBrave() bool {
return s == ExpandStrategyBrave || s == ExpandStrategyHybrid
}
// UsesSupplementalBrave 廣度補充是否再打第二輪 Bravehybrid 改由 LLM 補廣度以省 API
func (s ExpandStrategy) UsesSupplementalBrave() bool {
return s == ExpandStrategyBrave
}
func (s ExpandStrategy) String() string {
return string(s)
}