- Introduced a new search configuration structure, allowing for detailed settings for web, knowledge base, database, citation, and weights. - Updated the `Assistant` model to include a `Search` field, enabling assistant-specific search configurations. - Enhanced the loading and merging logic for search configurations, ensuring global defaults can be overridden by assistant-specific settings. - Added comprehensive tests for loading, saving, and updating assistants with search configurations, verifying the integrity of search settings. - Updated documentation in DESIGN.md to reflect the new search configuration hierarchy and usage, clarifying the interaction between global and assistant-level settings.
33 lines
807 B
Go
33 lines
807 B
Go
package kb
|
|
|
|
import (
|
|
"github.com/yaoapp/yao/agent/search/types"
|
|
)
|
|
|
|
// Handler implements KB search
|
|
type Handler struct {
|
|
config *types.KBConfig // KB search configuration
|
|
}
|
|
|
|
// NewHandler creates a new KB search handler
|
|
func NewHandler(cfg *types.KBConfig) *Handler {
|
|
return &Handler{config: cfg}
|
|
}
|
|
|
|
// Type returns the search type this handler supports
|
|
func (h *Handler) Type() types.SearchType {
|
|
return types.SearchTypeKB
|
|
}
|
|
|
|
// Search executes vector search and optional graph association
|
|
// TODO: Implement actual search logic
|
|
func (h *Handler) Search(req *types.Request) (*types.Result, error) {
|
|
// Skeleton implementation - returns empty result
|
|
return &types.Result{
|
|
Type: types.SearchTypeKB,
|
|
Query: req.Query,
|
|
Source: req.Source,
|
|
Items: []*types.ResultItem{},
|
|
Total: 0,
|
|
}, nil
|
|
}
|