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

40 lines
951 B
Go
Raw Permalink 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
}
}
2026-06-25 08:20:03 +00:00
func (s ExpandStrategy) RequiresWebSearch() bool {
2026-06-24 16:48:56 +00:00
return s == ExpandStrategyBrave || s == ExpandStrategyHybrid
}
2026-06-25 08:20:03 +00:00
func (s ExpandStrategy) RequiresBrave() bool {
return s.RequiresWebSearch()
}
2026-06-24 16:48:56 +00:00
// UsesSupplementalBrave 廣度補充是否再打第二輪 Bravehybrid 改由 LLM 補廣度以省 API
func (s ExpandStrategy) UsesSupplementalBrave() bool {
return s == ExpandStrategyBrave
}
func (s ExpandStrategy) String() string {
return string(s)
}